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 d206c97..6eaa2c3 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
@@ -6,7 +6,6 @@
 import java.util.LinkedList;
 import java.util.List;
 
-import org.onlab.onos.net.PortNumber;
 import org.slf4j.Logger;
 
 @SuppressWarnings("rawtypes")
@@ -33,29 +32,33 @@
 
         private final Logger log = getLogger(getClass());
 
-        List<Instruction<PortNumber>> outputs = new LinkedList<>();
+        boolean drop = false;
+
+        List<Instruction> outputs = new LinkedList<>();
 
         // TODO: should be a list of instructions based on group objects
-        List<Instruction<Object>> groups = new LinkedList<>();
+        List<Instruction> groups = new LinkedList<>();
 
         // TODO: should be a list of instructions based on modification objects
-        List<Instruction<Object>> modifications = new LinkedList<>();
+        List<Instruction> modifications = new LinkedList<>();
 
 
-        @SuppressWarnings("unchecked")
         @Override
         public Builder add(Instruction instruction) {
             switch (instruction.type()) {
-            case OUTPUT:
             case DROP:
-                // TODO: should check that there is only one drop instruction.
+                drop = true;
+                break;
+            case OUTPUT:
                 outputs.add(instruction);
                 break;
             case MODIFICATION:
                 // TODO: enforce modification order if any
                 modifications.add(instruction);
+                break;
             case GROUP:
                 groups.add(instruction);
+                break;
             default:
                 log.warn("Unknown instruction type {}", instruction.type());
             }
@@ -64,10 +67,14 @@
 
         @Override
         public TrafficTreatment build() {
+
+            //If we are dropping should we just return an emptry list?
             List<Instruction> instructions = new LinkedList<Instruction>();
             instructions.addAll(modifications);
             instructions.addAll(groups);
-            instructions.addAll(outputs);
+            if (!drop) {
+                instructions.addAll(outputs);
+            }
 
             return new DefaultTrafficTreatment(instructions);
         }
