diff --git a/drivers/bmv2/BUCK b/drivers/bmv2/BUCK
index b406b08..3726829 100644
--- a/drivers/bmv2/BUCK
+++ b/drivers/bmv2/BUCK
@@ -27,6 +27,7 @@
     '//incubator/bmv2/model:onos-incubator-bmv2-model',
     '//incubator/grpc-dependencies:grpc-core-repkg-1.3.0',
     '//lib:grpc-netty-1.3.0',
+    '//drivers/default:onos-drivers-default',
 ]
 
 TEST_DEPS = [
@@ -43,6 +44,7 @@
     '//protocols/grpc/ctl:onos-protocols-grpc-ctl',
     '//protocols/grpc/proto:onos-protocols-grpc-proto',
     '//incubator/bmv2/model:onos-incubator-bmv2-model',
+    '//drivers/default:onos-drivers-default',
 ] + GRPC_DEPS
 
 osgi_jar_with_tests(
diff --git a/drivers/bmv2/src/main/java/org/onosproject/drivers/bmv2/Bmv2DefaultPipeconfFactory.java b/drivers/bmv2/src/main/java/org/onosproject/drivers/bmv2/Bmv2DefaultPipeconfFactory.java
index 4903c3e..3004627 100644
--- a/drivers/bmv2/src/main/java/org/onosproject/drivers/bmv2/Bmv2DefaultPipeconfFactory.java
+++ b/drivers/bmv2/src/main/java/org/onosproject/drivers/bmv2/Bmv2DefaultPipeconfFactory.java
@@ -17,12 +17,14 @@
 package org.onosproject.drivers.bmv2;
 
 import org.onosproject.bmv2.model.Bmv2PipelineModelParser;
+import org.onosproject.driver.pipeline.DefaultSingleTablePipeline;
+import org.onosproject.net.behaviour.Pipeliner;
 import org.onosproject.net.pi.model.DefaultPiPipeconf;
 import org.onosproject.net.pi.model.PiPipeconf;
 import org.onosproject.net.pi.model.PiPipeconfId;
 import org.onosproject.net.pi.model.PiPipelineInterpreter;
 
-import java.io.InputStream;
+import java.net.URL;
 
 import static org.onosproject.net.pi.model.PiPipeconf.ExtensionType.BMV2_JSON;
 import static org.onosproject.net.pi.model.PiPipeconf.ExtensionType.P4_INFO_TEXT;
@@ -42,16 +44,16 @@
 
     static PiPipeconf get() {
 
-        final InputStream jsonConfigStream = Bmv2DefaultPipeconfFactory.class.getResourceAsStream(JSON_PATH);
-        final InputStream p4InfoStream = Bmv2DefaultPipeconfFactory.class.getResourceAsStream(P4INFO_PATH);
+        final URL jsonUrl = Bmv2DefaultPipeconfFactory.class.getResource(JSON_PATH);
+        final URL p4InfoUrl = Bmv2DefaultPipeconfFactory.class.getResource(P4INFO_PATH);
 
         return DefaultPiPipeconf.builder()
                 .withId(new PiPipeconfId(PIPECONF_ID))
-                .withPipelineModel(Bmv2PipelineModelParser.parse(jsonConfigStream))
-                // TODO: reuse default single table pipeliner.
+                .withPipelineModel(Bmv2PipelineModelParser.parse(jsonUrl))
                 .addBehaviour(PiPipelineInterpreter.class, Bmv2DefaultInterpreter.class)
-                .addExtension(P4_INFO_TEXT, p4InfoStream)
-                .addExtension(BMV2_JSON, jsonConfigStream)
+                .addBehaviour(Pipeliner.class, DefaultSingleTablePipeline.class)
+                .addExtension(P4_INFO_TEXT, p4InfoUrl)
+                .addExtension(BMV2_JSON, jsonUrl)
                 .build();
     }
 }
