diff --git a/src/main/java/net/onrc/onos/core/datagrid/HazelcastDatagrid.java b/src/main/java/net/onrc/onos/core/datagrid/HazelcastDatagrid.java
index 4a59cbf..eb1ae83 100644
--- a/src/main/java/net/onrc/onos/core/datagrid/HazelcastDatagrid.java
+++ b/src/main/java/net/onrc/onos/core/datagrid/HazelcastDatagrid.java
@@ -6,8 +6,6 @@
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.ConcurrentMap;
-
 import net.floodlightcontroller.core.IFloodlightProviderService;
 import net.floodlightcontroller.core.module.FloodlightModuleContext;
 import net.floodlightcontroller.core.module.FloodlightModuleException;
@@ -23,6 +21,7 @@
 import com.hazelcast.config.FileSystemXmlConfig;
 import com.hazelcast.core.Hazelcast;
 import com.hazelcast.core.HazelcastInstance;
+import com.hazelcast.core.IMap;
 
 /**
  * A datagrid service that uses Hazelcast as a datagrid.
@@ -41,7 +40,7 @@
     private IRestApiService restApi;
 
     static final String HAZELCAST_CONFIG_FILE = "datagridConfig";
-    private static final String HAZELCAST_DEFAULT_XML = "conf/hazelcast.default.xml";
+    public static final String HAZELCAST_DEFAULT_XML = "conf/hazelcast.default.xml";
     private HazelcastInstance hazelcastInstance;
     private Config hazelcastConfig;
 
@@ -321,7 +320,7 @@
      * @return the shared map for the channel name.
      */
     @Override
-    public <K, V> ConcurrentMap<K, V> getConcurrentMap(String mapName, Class<K> typeK,
+    public <K, V> IMap<K, V> getConcurrentMap(String mapName, Class<K> typeK,
             Class<V> typeV) {
         return hazelcastInstance.getMap(mapName);
     }
diff --git a/src/main/java/net/onrc/onos/core/datagrid/ISharedCollectionsService.java b/src/main/java/net/onrc/onos/core/datagrid/ISharedCollectionsService.java
index 30e5596..a398635 100644
--- a/src/main/java/net/onrc/onos/core/datagrid/ISharedCollectionsService.java
+++ b/src/main/java/net/onrc/onos/core/datagrid/ISharedCollectionsService.java
@@ -1,7 +1,7 @@
 package net.onrc.onos.core.datagrid;
 
 import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.ConcurrentMap;
+import com.hazelcast.core.IMap;
 
 import net.floodlightcontroller.core.module.IFloodlightService;
 
@@ -9,6 +9,8 @@
  * Interface for providing shared maps and queues to other modules.
  */
 public interface ISharedCollectionsService extends IFloodlightService {
+
+    // FIXME Refactor and change IMap to interface defined by us later.
     /**
      * Create an shared, concurrent map.
      *
@@ -17,7 +19,7 @@
      * @param typeV the type of the Value in the map.
      * @return the shared map for the channel name.
      */
-    <K, V> ConcurrentMap<K, V> getConcurrentMap(String mapName,
+    <K, V> IMap<K, V> getConcurrentMap(String mapName,
             Class<K> typeK, Class<V> typeV);
 
     /**
