diff --git a/providers/bmv2/device/pom.xml b/providers/bmv2/device/pom.xml
index 021d90f..80f42e1 100644
--- a/providers/bmv2/device/pom.xml
+++ b/providers/bmv2/device/pom.xml
@@ -39,7 +39,7 @@
         <dependency>
             <groupId>org.onosproject</groupId>
             <artifactId>onos-core-common</artifactId>
-            <version>1.6.0-SNAPSHOT</version>
+            <version>${project.version}</version>
         </dependency>
     </dependencies>
 </project>
\ No newline at end of file
diff --git a/providers/bmv2/device/src/main/java/org/onosproject/provider/bmv2/device/impl/Bmv2DeviceProvider.java b/providers/bmv2/device/src/main/java/org/onosproject/provider/bmv2/device/impl/Bmv2DeviceProvider.java
index 2d16ff2..d9ac3a4 100644
--- a/providers/bmv2/device/src/main/java/org/onosproject/provider/bmv2/device/impl/Bmv2DeviceProvider.java
+++ b/providers/bmv2/device/src/main/java/org/onosproject/provider/bmv2/device/impl/Bmv2DeviceProvider.java
@@ -50,8 +50,6 @@
 import org.onosproject.net.provider.ProviderId;
 import org.slf4j.Logger;
 
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.util.List;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ExecutorService;
@@ -63,6 +61,9 @@
 import static org.onosproject.bmv2.ctl.Bmv2ThriftClient.ping;
 import static org.onosproject.net.config.basics.SubjectFactories.APP_SUBJECT_FACTORY;
 import static org.slf4j.LoggerFactory.getLogger;
+import static org.onosproject.bmv2.api.runtime.Bmv2Device.SCHEME;
+import static org.onosproject.bmv2.api.runtime.Bmv2Device.MANUFACTURER;
+import static org.onosproject.bmv2.api.runtime.Bmv2Device.HW_VERSION;
 
 /**
  * BMv2 device provider.
@@ -72,9 +73,6 @@
 
     private static final Logger LOG = getLogger(Bmv2DeviceProvider.class);
 
-    public static final String MANUFACTURER = "p4.org";
-    public static final String HW_VERSION = "bmv2";
-    public static final String SCHEME = "bmv2";
     private static final String APP_NAME = "org.onosproject.bmv2";
     private static final String UNKNOWN = "unknown";
     private static final int POLL_INTERVAL = 5; // seconds
@@ -108,25 +106,6 @@
         super(new ProviderId("bmv2", "org.onosproject.provider.device"));
     }
 
-    private static DeviceId deviceIdOf(String ip, int port) {
-        try {
-            return DeviceId.deviceId(new URI(SCHEME, ip + ":" + port, null));
-        } catch (URISyntaxException e) {
-            throw new IllegalArgumentException("Unable to build deviceID for device " + ip + ":" + port, e);
-        }
-    }
-
-    /**
-     * Creates a new device ID for the given BMv2 device.
-     *
-     * @param device a BMv2 device object
-     *
-     * @return a new device ID
-     */
-    public static DeviceId deviceIdOf(Bmv2Device device) {
-        return deviceIdOf(device.thriftServerHost(), device.thriftServerPort());
-    }
-
     @Override
     protected void activate() {
         appId = coreService.registerApplication(APP_NAME);
@@ -258,7 +237,9 @@
             if (cfg != null) {
                 try {
                     cfg.getDevicesInfo().stream().forEach(info -> {
-                        triggerProbe(deviceIdOf(info.ip().toString(), info.port()));
+                        // TODO: require also bmv2 internal device id from net-cfg (now is default 0)
+                        Bmv2Device bmv2Device = new Bmv2Device(info.ip().toString(), info.port(), 0);
+                        triggerProbe(bmv2Device.asDeviceId());
                     });
                 } catch (ConfigException e) {
                     LOG.error("Unable to read config: " + e);
@@ -283,7 +264,7 @@
         @Override
         public void handleHello(Bmv2Device device) {
             log.debug("Received hello from {}", device);
-            triggerProbe(deviceIdOf(device));
+            triggerProbe(device.asDeviceId());
         }
     }
 
