diff --git a/src/main/java/net/floodlightcontroller/core/internal/Controller.java b/src/main/java/net/floodlightcontroller/core/internal/Controller.java
index 8a35b54..6f2d166 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/Controller.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/Controller.java
@@ -2065,7 +2065,7 @@
         initVendorMessages();
         this.systemStartTime = System.currentTimeMillis();
         this.swStore = new SwitchStorageImpl();
-        this.swStore.init("");
+        this.swStore.init("/tmp/cassandra.titan");
     }
     
     /**
diff --git a/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java b/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java
index 67dc6b1..0636400 100644
--- a/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java
+++ b/src/main/java/net/floodlightcontroller/core/internal/SwitchStorageImpl.java
@@ -7,8 +7,6 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.commons.configuration.BaseConfiguration;
-import org.apache.commons.configuration.Configuration;
 import org.openflow.protocol.OFPhysicalPort;
 
 import com.thinkaurelius.titan.core.TitanException;
@@ -193,13 +191,8 @@
 
 	@Override
 	public void init(String conf) {
-		//TODO extract the DB location from conf
-		Configuration db = new BaseConfiguration();
-		
-		// Local storage gets locked for single process
-		db.setProperty("storage.backend","cassandra");
-		db.setProperty("storage.hostname","127.0.0.1");
-        graph = TitanFactory.open(db);
+
+        graph = TitanFactory.open(conf);
         
         // FIXME: Creation on Indexes should be done only once
         Set<String> s = graph.getIndexedKeys(Vertex.class);
diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
index e227b71..8ad31c2 100644
--- a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
@@ -1869,7 +1869,7 @@
 
         // Initialize the link storage connector to the network map
         this.linkStore = new LinkStorageImpl();
-        this.linkStore.init("");
+        this.linkStore.init("/tmp/cassandra.titan");
         
         ScheduledExecutorService ses = threadPool.getScheduledExecutor();
 
diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImpl.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImpl.java
index c17c710..65b832c 100644
--- a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImpl.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkStorageImpl.java
@@ -10,8 +10,6 @@
 import net.floodlightcontroller.routing.Link;
 import net.floodlightcontroller.linkdiscovery.ILinkStorage;
 
-import org.apache.commons.configuration.BaseConfiguration;
-import org.apache.commons.configuration.Configuration;
 import com.thinkaurelius.titan.core.TitanException;
 import com.thinkaurelius.titan.core.TitanFactory;
 import com.thinkaurelius.titan.core.TitanGraph;
@@ -122,14 +120,10 @@
 	@Override
 	public void init(String conf) {
 		//TODO extract the DB location from conf
-		Configuration db = new BaseConfiguration();
-		
-		// Local storage gets locked for single process
-		db.setProperty("storage.backend","cassandra");
-		db.setProperty("storage.hostname","127.0.0.1");
-        graph = TitanFactory.open(db);
+	
+        graph = TitanFactory.open(conf);
         
-        // FIXME: 
+        // FIXME: These keys are not needed for Links but we better create it before using it as per titan
         Set<String> s = graph.getIndexedKeys(Vertex.class);
         if (!s.contains("dpid")) {
            graph.createKeyIndex("dpid", Vertex.class);
