diff --git a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
index 3df8bb8..f67bfea 100644
--- a/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
+++ b/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
@@ -193,7 +193,17 @@
     int lldpTimeCount = 0;
 
     // Storage
-    protected LinkStorageImpl linkStore;
+
+    ThreadLocal<LinkStorageImpl> store = new ThreadLocal<LinkStorageImpl>() {
+		@Override
+		protected LinkStorageImpl initialValue() {
+			LinkStorageImpl swStore = new LinkStorageImpl();
+			//TODO: Get the file path from global properties
+			swStore.init("/tmp/cassandra.titan");
+			return swStore;
+		}
+	};
+    protected LinkStorageImpl linkStore = store.get();
    // protected SwitchStorageImpl swStore;
     
     /**
@@ -525,7 +535,8 @@
     	
     	// add a switch if we have not seen it before
     	remotesw = remoteSwitches.get(sw);
-        if (remotesw == null) {
+
+    	if (remotesw == null) {
         	remotesw = new OFSwitchImpl();
         	remotesw.setupRemoteSwitch(sw);
         	remoteSwitches.put(remotesw.getId(), remotesw);
@@ -1861,7 +1872,7 @@
         this.quarantineQueue = new LinkedBlockingQueue<NodePortTuple>();
         this.maintenanceQueue = new LinkedBlockingQueue<NodePortTuple>();
         this.remoteSwitches = new HashMap<Long, IOFSwitch>();
-        
+
         this.evHistTopologySwitch =
                 new EventHistory<EventHistoryTopologySwitch>("Topology: Switch");
         this.evHistTopologyLink =
@@ -1911,16 +1922,7 @@
             log.error("Error in installing listener for " +
             		  "switch table {}", SWITCH_CONFIG_TABLE_NAME);
         }
-
-        // Initialize the link storage connector to the network map
-        this.linkStore = new LinkStorageImpl();
-        this.linkStore.init("/tmp/cassandra.titan");
-        
-        // Initialieze the switch storage connector to the network map. We may need to delete switches.
-        // TODO find a better place to delete switches and ports from network map
-        // this.swStore = new SwitchStorageImpl();
-        // this.swStore.init("/tmp/cassandra.titan");
-        
+                
         ScheduledExecutorService ses = threadPool.getScheduledExecutor();
 
         // To be started by the first switch connection
