diff --git a/src/main/java/net/floodlightcontroller/core/INetMapStorage.java b/src/main/java/net/floodlightcontroller/core/INetMapStorage.java
index 8de368d..642bf4d 100644
--- a/src/main/java/net/floodlightcontroller/core/INetMapStorage.java
+++ b/src/main/java/net/floodlightcontroller/core/INetMapStorage.java
@@ -14,5 +14,5 @@
 		DELETE, // Delete the object
 		UPDATE  // Update the object if exists or CREATE/INSERT if does not exist
 	}
-
+	public void init(String conf);
 }
diff --git a/src/main/java/net/floodlightcontroller/core/ISwitchStorage.java b/src/main/java/net/floodlightcontroller/core/ISwitchStorage.java
index 920d29e..7aa0169 100644
--- a/src/main/java/net/floodlightcontroller/core/ISwitchStorage.java
+++ b/src/main/java/net/floodlightcontroller/core/ISwitchStorage.java
@@ -9,11 +9,11 @@
 	/*
 	 * Update the switch details
 	 */
-	public void update(long dpid,DM_OPERATION op);
+	public void update(String dpid,DM_OPERATION op);
 	/*
 	 * Associate a port on switch
 	 */
-	public void addPort(long dpid, OFPhysicalPort port);
+	public void addPort(String dpid, OFPhysicalPort port);
 	/*
 	 * Get all ports associated on a switch
 	 */
@@ -21,21 +21,30 @@
 	/*
 	 * Get Port by Number
 	 */
-	public OFPhysicalPort getPort(long dpid, short portnum);
+	public OFPhysicalPort getPort(String dpid, short portnum);
 	/*
 	 * Get port by name
 	 */
-	public OFPhysicalPort getPort(long dpid, String portName);
+	public OFPhysicalPort getPort(String dpid, String portName);
+	/*
+	 * Add a switch
+	 */
+	public void addSwitch(String dpid);
 	/*
 	 * Delete switch and associated ports
 	 */
-	public void deleteSwitch(long dpid);
+	public void deleteSwitch(String dpid);
 	/*
 	 * Delete a port on a switch by num
 	 */
-	public void deletePort(long dpid, short port);
+	public void deletePort(String dpid, short port);
 	/*
 	 * Delete port on a switch by name
 	 */
-	public void deletePort(long dpid, String portName);
+	public void deletePort(String dpid, String portName);
+	
+	/*
+	 * Initialize
+	 */
+	public void init(String conf);
 }
diff --git a/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImplStubs.java b/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImplStubs.java
index 688abd1..8c3c833 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImplStubs.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImplStubs.java
@@ -19,7 +19,7 @@
 	 * @see net.floodlightcontroller.core.ISwitchStorage#update(long, net.floodlightcontroller.core.INetMapStorage.DM_OPERATION)
 	 */
 	@Override
-	public void update(long dpid, DM_OPERATION op) {
+	public void update(String dpid, DM_OPERATION op) {
 		// TODO Auto-generated method stub
 
 	}
@@ -28,7 +28,7 @@
 	 * @see net.floodlightcontroller.core.ISwitchStorage#addPort(long, org.openflow.protocol.OFPhysicalPort)
 	 */
 	@Override
-	public void addPort(long dpid, OFPhysicalPort port) {
+	public void addPort(String dpid, OFPhysicalPort port) {
 		// TODO Auto-generated method stub
 
 	}
@@ -46,7 +46,7 @@
 	 * @see net.floodlightcontroller.core.ISwitchStorage#getPort(long, short)
 	 */
 	@Override
-	public OFPhysicalPort getPort(long dpid, short portnum) {
+	public OFPhysicalPort getPort(String dpid, short portnum) {
 		// TODO Auto-generated method stub
 		return null;
 	}
@@ -55,7 +55,7 @@
 	 * @see net.floodlightcontroller.core.ISwitchStorage#getPort(long, java.lang.String)
 	 */
 	@Override
-	public OFPhysicalPort getPort(long dpid, String portName) {
+	public OFPhysicalPort getPort(String dpid, String portName) {
 		// TODO Auto-generated method stub
 		return null;
 	}
@@ -64,7 +64,7 @@
 	 * @see net.floodlightcontroller.core.ISwitchStorage#addSwitch(long)
 	 */
 	@Override
-	public void addSwitch(long dpid) {
+	public void addSwitch(String dpid) {
 		// TODO Auto-generated method stub
 
 	}
@@ -73,7 +73,7 @@
 	 * @see net.floodlightcontroller.core.ISwitchStorage#deleteSwitch(long)
 	 */
 	@Override
-	public void deleteSwitch(long dpid) {
+	public void deleteSwitch(String dpid) {
 		// TODO Auto-generated method stub
 
 	}
@@ -82,7 +82,7 @@
 	 * @see net.floodlightcontroller.core.ISwitchStorage#deletePort(long, short)
 	 */
 	@Override
-	public void deletePort(long dpid, short port) {
+	public void deletePort(String dpid, short port) {
 		// TODO Auto-generated method stub
 
 	}
@@ -91,7 +91,7 @@
 	 * @see net.floodlightcontroller.core.ISwitchStorage#deletePort(long, java.lang.String)
 	 */
 	@Override
-	public void deletePort(long dpid, String portName) {
+	public void deletePort(String dpid, String portName) {
 		// TODO Auto-generated method stub
 
 	}
