diff --git a/src/main/java/org/onosproject/olt/Olt.java b/src/main/java/org/onosproject/olt/Olt.java
index bdff1fa..fdf82a0 100644
--- a/src/main/java/org/onosproject/olt/Olt.java
+++ b/src/main/java/org/onosproject/olt/Olt.java
@@ -147,7 +147,13 @@
         }
 
         provisionVlans(olt.deviceId(), olt.uplink(), port.port(), vlan, olt.vlan(),
-                olt.defaultVlan());
+                       olt.defaultVlan());
+    }
+
+    @Override
+    public void removeSubscriber(ConnectPoint port) {
+        throw new UnsupportedOperationException();
+
     }
 
     private void provisionVlans(DeviceId deviceId, PortNumber uplinkPort,
@@ -166,6 +172,7 @@
         TrafficSelector downstream = DefaultTrafficSelector.builder()
                 .matchVlanId(deviceVlan)
                 .matchInPort(uplinkPort)
+                .matchInnerVlanId(subscriberVlan)
                 .build();
 
         TrafficTreatment upstreamTreatment = DefaultTrafficTreatment.builder()
@@ -243,11 +250,6 @@
 
     }
 
-    @Override
-    public void removeSubscriber(ConnectPoint port) {
-        throw new UnsupportedOperationException("Not yet implemented");
-    }
-
     private class InternalDeviceListener implements DeviceListener {
         @Override
         public void event(DeviceEvent event) {
