Eliminating some performance bottlenecks; more to be done.
diff --git a/core/api/src/main/java/org/onlab/onos/net/ElementId.java b/core/api/src/main/java/org/onlab/onos/net/ElementId.java
index d2cd398..3f9c88d 100644
--- a/core/api/src/main/java/org/onlab/onos/net/ElementId.java
+++ b/core/api/src/main/java/org/onlab/onos/net/ElementId.java
@@ -9,10 +9,12 @@
 public abstract class ElementId {
 
     private final URI uri;
+    private final String str;
 
     // Default constructor for serialization
     protected ElementId() {
         this.uri = null;
+        this.str = null;
     }
 
     /**
@@ -22,6 +24,7 @@
      */
     protected ElementId(URI uri) {
         this.uri = uri;
+        this.str = uri.toString();
     }
 
     /**
@@ -35,7 +38,7 @@
 
     @Override
     public int hashCode() {
-        return Objects.hash(uri);
+        return Objects.hash(str);
     }
 
     @Override
@@ -46,14 +49,14 @@
         if (obj instanceof ElementId) {
             final ElementId that = (ElementId) obj;
             return this.getClass() == that.getClass() &&
-                    Objects.equals(this.uri, that.uri);
+                    Objects.equals(this.str, that.str);
         }
         return false;
     }
 
     @Override
     public String toString() {
-        return uri.toString();
+        return str;
     }
 
 }
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/DefaultTrafficTreatment.java b/core/api/src/main/java/org/onlab/onos/net/flow/DefaultTrafficTreatment.java
index 7182916..269347a 100644
--- a/core/api/src/main/java/org/onlab/onos/net/flow/DefaultTrafficTreatment.java
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/DefaultTrafficTreatment.java
@@ -1,19 +1,16 @@
 package org.onlab.onos.net.flow;
 
-import static org.slf4j.LoggerFactory.getLogger;
-
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Objects;
-
 import org.onlab.onos.net.PortNumber;
 import org.onlab.onos.net.flow.instructions.Instruction;
 import org.onlab.onos.net.flow.instructions.Instructions;
 import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
-import org.slf4j.Logger;
+
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Objects;
 
 /**
  * Default traffic treatment implementation.
@@ -58,7 +55,7 @@
         }
         if (obj instanceof DefaultTrafficTreatment) {
             DefaultTrafficTreatment that = (DefaultTrafficTreatment) obj;
-            return  Objects.equals(instructions, that.instructions);
+            return Objects.equals(instructions, that.instructions);
 
         }
         return false;
@@ -70,8 +67,6 @@
      */
     public static final class Builder implements TrafficTreatment.Builder {
 
-        private final Logger log = getLogger(getClass());
-
         boolean drop = false;
 
         List<Instruction> outputs = new LinkedList<>();
@@ -107,7 +102,8 @@
                     groups.add(instruction);
                     break;
                 default:
-                    log.warn("Unknown instruction type {}", instruction.type());
+                    throw new IllegalArgumentException("Unknown instruction type: " +
+                                                               instruction.type());
             }
             return this;
         }