Renamed datagrid and datastore packages

net.onrc.onos.datagrid.* => net.onrc.onos.core.datagrid.*
net.onrc.onos.datastore.* => net.onrc.onos.core.datastore.*

Change-Id: Ibe1894a6fabae08ea7cfcbf6595f0c91b05ef497
diff --git a/conf/findbugs/exclude.xml b/conf/findbugs/exclude.xml
index 7fe430a..ce20793 100644
--- a/conf/findbugs/exclude.xml
+++ b/conf/findbugs/exclude.xml
@@ -7,7 +7,7 @@
           (under build and reporting)
      -->
      <Match>
-       <Class name="~net.onrc.onos.datastore.RCProtos(.*)?" />
+       <Class name="~net.onrc.onos.core.datastore.RCProtos(.*)?" />
      </Match>
      <Match>
        <Class name="~.*edu\.stanford\..*"/>
diff --git a/conf/onos.properties b/conf/onos.properties
index 953ab78..129551b 100644
--- a/conf/onos.properties
+++ b/conf/onos.properties
@@ -1,7 +1,7 @@
 floodlight.modules = net.floodlightcontroller.core.FloodlightProvider,\
 net.floodlightcontroller.threadpool.ThreadPool,\
 net.onrc.onos.ofcontroller.floodlightlistener.NetworkGraphPublisher, \
-net.onrc.onos.datagrid.HazelcastDatagrid,\
+net.onrc.onos.core.datagrid.HazelcastDatagrid,\
 net.onrc.onos.ofcontroller.flowprogrammer.FlowProgrammer,\
 net.onrc.onos.intent.runtime.PathCalcRuntimeModule,\
 net.onrc.onos.intent.runtime.PlanInstallModule,\
@@ -11,4 +11,4 @@
 net.floodlightcontroller.core.FloodlightProvider.workerthreads = 16
 net.floodlightcontroller.forwarding.Forwarding.idletimeout = 5
 net.floodlightcontroller.forwarding.Forwarding.hardtimeout = 0
-net.onrc.onos.datagrid.HazelcastDatagrid.datagridConfig = conf/hazelcast.xml
+net.onrc.onos.core.datagrid.HazelcastDatagrid.datagridConfig = conf/hazelcast.xml
diff --git a/src/main/java/net/onrc/onos/apps/forwarding/Forwarding.java b/src/main/java/net/onrc/onos/apps/forwarding/Forwarding.java
index 3d1623c..e2efdbb 100644
--- a/src/main/java/net/onrc/onos/apps/forwarding/Forwarding.java
+++ b/src/main/java/net/onrc/onos/apps/forwarding/Forwarding.java
@@ -21,9 +21,9 @@
 import net.floodlightcontroller.util.MACAddress;
 import net.onrc.onos.apps.proxyarp.BroadcastPacketOutNotification;
 import net.onrc.onos.apps.proxyarp.IProxyArpService;
-import net.onrc.onos.datagrid.IDatagridService;
-import net.onrc.onos.datagrid.IEventChannel;
-import net.onrc.onos.datagrid.IEventChannelListener;
+import net.onrc.onos.core.datagrid.IDatagridService;
+import net.onrc.onos.core.datagrid.IEventChannel;
+import net.onrc.onos.core.datagrid.IEventChannelListener;
 import net.onrc.onos.intent.Intent;
 import net.onrc.onos.intent.IntentMap;
 import net.onrc.onos.intent.IntentOperation;
diff --git a/src/main/java/net/onrc/onos/apps/proxyarp/ProxyArpManager.java b/src/main/java/net/onrc/onos/apps/proxyarp/ProxyArpManager.java
index ef3bb83..2a897a5 100644
--- a/src/main/java/net/onrc/onos/apps/proxyarp/ProxyArpManager.java
+++ b/src/main/java/net/onrc/onos/apps/proxyarp/ProxyArpManager.java
@@ -23,9 +23,9 @@
 import net.floodlightcontroller.restserver.IRestApiService;
 import net.floodlightcontroller.util.MACAddress;
 import net.onrc.onos.apps.bgproute.Interface;
-import net.onrc.onos.datagrid.IDatagridService;
-import net.onrc.onos.datagrid.IEventChannel;
-import net.onrc.onos.datagrid.IEventChannelListener;
+import net.onrc.onos.core.datagrid.IDatagridService;
+import net.onrc.onos.core.datagrid.IEventChannel;
+import net.onrc.onos.core.datagrid.IEventChannelListener;
 import net.onrc.onos.ofcontroller.core.config.IConfigInfoService;
 import net.onrc.onos.ofcontroller.devicemanager.IOnosDeviceService;
 import net.onrc.onos.ofcontroller.flowprogrammer.IFlowPusherService;
diff --git a/src/main/java/net/onrc/onos/datagrid/HazelcastDatagrid.java b/src/main/java/net/onrc/onos/core/datagrid/HazelcastDatagrid.java
similarity index 98%
rename from src/main/java/net/onrc/onos/datagrid/HazelcastDatagrid.java
rename to src/main/java/net/onrc/onos/core/datagrid/HazelcastDatagrid.java
index 31de685..7d2b7f3 100755
--- a/src/main/java/net/onrc/onos/datagrid/HazelcastDatagrid.java
+++ b/src/main/java/net/onrc/onos/core/datagrid/HazelcastDatagrid.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datagrid;
+package net.onrc.onos.core.datagrid;
 
 import java.io.FileNotFoundException;
 import java.util.ArrayList;
@@ -12,7 +12,7 @@
 import net.floodlightcontroller.core.module.IFloodlightModule;
 import net.floodlightcontroller.core.module.IFloodlightService;
 import net.floodlightcontroller.restserver.IRestApiService;
-import net.onrc.onos.datagrid.web.DatagridWebRoutable;
+import net.onrc.onos.core.datagrid.web.DatagridWebRoutable;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/src/main/java/net/onrc/onos/datagrid/HazelcastEventChannel.java b/src/main/java/net/onrc/onos/core/datagrid/HazelcastEventChannel.java
similarity index 99%
rename from src/main/java/net/onrc/onos/datagrid/HazelcastEventChannel.java
rename to src/main/java/net/onrc/onos/core/datagrid/HazelcastEventChannel.java
index 88fb544..8797dba 100644
--- a/src/main/java/net/onrc/onos/datagrid/HazelcastEventChannel.java
+++ b/src/main/java/net/onrc/onos/core/datagrid/HazelcastEventChannel.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datagrid;
+package net.onrc.onos.core.datagrid;
 
 import java.util.Collection;
 import java.util.LinkedList;
diff --git a/src/main/java/net/onrc/onos/datagrid/IDatagridService.java b/src/main/java/net/onrc/onos/core/datagrid/IDatagridService.java
similarity index 97%
rename from src/main/java/net/onrc/onos/datagrid/IDatagridService.java
rename to src/main/java/net/onrc/onos/core/datagrid/IDatagridService.java
index 7c067ae..5fe52cc 100755
--- a/src/main/java/net/onrc/onos/datagrid/IDatagridService.java
+++ b/src/main/java/net/onrc/onos/core/datagrid/IDatagridService.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datagrid;
+package net.onrc.onos.core.datagrid;
 
 import net.floodlightcontroller.core.module.IFloodlightService;
 
diff --git a/src/main/java/net/onrc/onos/datagrid/IEventChannel.java b/src/main/java/net/onrc/onos/core/datagrid/IEventChannel.java
similarity index 98%
rename from src/main/java/net/onrc/onos/datagrid/IEventChannel.java
rename to src/main/java/net/onrc/onos/core/datagrid/IEventChannel.java
index c76c7a6..5874b31 100644
--- a/src/main/java/net/onrc/onos/datagrid/IEventChannel.java
+++ b/src/main/java/net/onrc/onos/core/datagrid/IEventChannel.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datagrid;
+package net.onrc.onos.core.datagrid;
 
 import java.util.Collection;
 
diff --git a/src/main/java/net/onrc/onos/datagrid/IEventChannelListener.java b/src/main/java/net/onrc/onos/core/datagrid/IEventChannelListener.java
similarity index 93%
rename from src/main/java/net/onrc/onos/datagrid/IEventChannelListener.java
rename to src/main/java/net/onrc/onos/core/datagrid/IEventChannelListener.java
index 3f785ee..ca18aa7 100644
--- a/src/main/java/net/onrc/onos/datagrid/IEventChannelListener.java
+++ b/src/main/java/net/onrc/onos/core/datagrid/IEventChannelListener.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datagrid;
+package net.onrc.onos.core.datagrid;
 
 /**
  * Event Channel Listener Interface.
diff --git a/src/main/java/net/onrc/onos/datagrid/web/DatagridWebRoutable.java b/src/main/java/net/onrc/onos/core/datagrid/web/DatagridWebRoutable.java
similarity index 96%
rename from src/main/java/net/onrc/onos/datagrid/web/DatagridWebRoutable.java
rename to src/main/java/net/onrc/onos/core/datagrid/web/DatagridWebRoutable.java
index 5491d34..672f66d 100755
--- a/src/main/java/net/onrc/onos/datagrid/web/DatagridWebRoutable.java
+++ b/src/main/java/net/onrc/onos/core/datagrid/web/DatagridWebRoutable.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datagrid.web;
+package net.onrc.onos.core.datagrid.web;
 
 import net.floodlightcontroller.restserver.RestletRoutable;
 
diff --git a/src/main/java/net/onrc/onos/datagrid/web/GetNGEventsResource.java b/src/main/java/net/onrc/onos/core/datagrid/web/GetNGEventsResource.java
similarity index 88%
rename from src/main/java/net/onrc/onos/datagrid/web/GetNGEventsResource.java
rename to src/main/java/net/onrc/onos/core/datagrid/web/GetNGEventsResource.java
index bbf03cb..f319d23 100644
--- a/src/main/java/net/onrc/onos/datagrid/web/GetNGEventsResource.java
+++ b/src/main/java/net/onrc/onos/core/datagrid/web/GetNGEventsResource.java
@@ -1,9 +1,9 @@
-package net.onrc.onos.datagrid.web;
+package net.onrc.onos.core.datagrid.web;
 
 import java.util.Collection;
 
-import net.onrc.onos.datagrid.IDatagridService;
-import net.onrc.onos.datagrid.IEventChannel;
+import net.onrc.onos.core.datagrid.IDatagridService;
+import net.onrc.onos.core.datagrid.IEventChannel;
 import net.onrc.onos.ofcontroller.networkgraph.TopologyEvent;
 import net.onrc.onos.ofcontroller.networkgraph.TopologyManager;
 
diff --git a/src/main/java/net/onrc/onos/datagrid/web/GetNGFlowsSummaryResource.java b/src/main/java/net/onrc/onos/core/datagrid/web/GetNGFlowsSummaryResource.java
similarity index 98%
rename from src/main/java/net/onrc/onos/datagrid/web/GetNGFlowsSummaryResource.java
rename to src/main/java/net/onrc/onos/core/datagrid/web/GetNGFlowsSummaryResource.java
index 2b38caa..0ebeec9 100644
--- a/src/main/java/net/onrc/onos/datagrid/web/GetNGFlowsSummaryResource.java
+++ b/src/main/java/net/onrc/onos/core/datagrid/web/GetNGFlowsSummaryResource.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datagrid.web;
+package net.onrc.onos.core.datagrid.web;
 
 import java.util.ArrayList;
 import java.util.SortedMap;
diff --git a/src/main/java/net/onrc/onos/datagrid/web/IntentResource.java b/src/main/java/net/onrc/onos/core/datagrid/web/IntentResource.java
similarity index 99%
rename from src/main/java/net/onrc/onos/datagrid/web/IntentResource.java
rename to src/main/java/net/onrc/onos/core/datagrid/web/IntentResource.java
index dd73704..7d338b5 100755
--- a/src/main/java/net/onrc/onos/datagrid/web/IntentResource.java
+++ b/src/main/java/net/onrc/onos/core/datagrid/web/IntentResource.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package net.onrc.onos.datagrid.web;
+package net.onrc.onos.core.datagrid.web;
 
 import java.io.IOException;
 import java.util.Collection;
diff --git a/src/main/java/net/onrc/onos/datastore/DataStoreClient.java b/src/main/java/net/onrc/onos/core/datastore/DataStoreClient.java
similarity index 74%
rename from src/main/java/net/onrc/onos/datastore/DataStoreClient.java
rename to src/main/java/net/onrc/onos/core/datastore/DataStoreClient.java
index bdf5df5..7ec6251 100644
--- a/src/main/java/net/onrc/onos/datastore/DataStoreClient.java
+++ b/src/main/java/net/onrc/onos/core/datastore/DataStoreClient.java
@@ -1,11 +1,11 @@
-package net.onrc.onos.datastore;
+package net.onrc.onos.core.datastore;
 
-import net.onrc.onos.datastore.hazelcast.HZClient;
-import net.onrc.onos.datastore.ramcloud.RCClient;
+import net.onrc.onos.core.datastore.hazelcast.HZClient;
+import net.onrc.onos.core.datastore.ramcloud.RCClient;
 
 // This class probably need to be a service
 public class DataStoreClient {
-    private static final String BACKEND = System.getProperty("net.onrc.onos.datastore.backend", "hazelcast");
+    private static final String BACKEND = System.getProperty("net.onrc.onos.core.datastore.backend", "hazelcast");
 
     // Suppresses default constructor, ensuring non-instantiability.
     private DataStoreClient() {}
diff --git a/src/main/java/net/onrc/onos/datastore/IKVClient.java b/src/main/java/net/onrc/onos/core/datastore/IKVClient.java
similarity index 97%
rename from src/main/java/net/onrc/onos/datastore/IKVClient.java
rename to src/main/java/net/onrc/onos/core/datastore/IKVClient.java
index d2602c9..e298548 100644
--- a/src/main/java/net/onrc/onos/datastore/IKVClient.java
+++ b/src/main/java/net/onrc/onos/core/datastore/IKVClient.java
@@ -1,9 +1,9 @@
-package net.onrc.onos.datastore;
+package net.onrc.onos.core.datastore;
 
 import java.util.Collection;
 import java.util.List;
 
-import net.onrc.onos.datastore.IKVTable.IKVEntry;
+import net.onrc.onos.core.datastore.IKVTable.IKVEntry;
 
 /**
  * Interface for a client class used to access the Key-Value store
diff --git a/src/main/java/net/onrc/onos/datastore/IKVTable.java b/src/main/java/net/onrc/onos/core/datastore/IKVTable.java
similarity index 98%
rename from src/main/java/net/onrc/onos/datastore/IKVTable.java
rename to src/main/java/net/onrc/onos/core/datastore/IKVTable.java
index 3151808..864b270 100644
--- a/src/main/java/net/onrc/onos/datastore/IKVTable.java
+++ b/src/main/java/net/onrc/onos/core/datastore/IKVTable.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datastore;
+package net.onrc.onos.core.datastore;
 
 
 /**
diff --git a/src/main/java/net/onrc/onos/datastore/IKVTableID.java b/src/main/java/net/onrc/onos/core/datastore/IKVTableID.java
similarity index 64%
rename from src/main/java/net/onrc/onos/datastore/IKVTableID.java
rename to src/main/java/net/onrc/onos/core/datastore/IKVTableID.java
index d66370c..c736908 100644
--- a/src/main/java/net/onrc/onos/datastore/IKVTableID.java
+++ b/src/main/java/net/onrc/onos/core/datastore/IKVTableID.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datastore;
+package net.onrc.onos.core.datastore;
 
 public interface IKVTableID {
 
diff --git a/src/main/java/net/onrc/onos/datastore/IMultiEntryOperation.java b/src/main/java/net/onrc/onos/core/datastore/IMultiEntryOperation.java
similarity index 93%
rename from src/main/java/net/onrc/onos/datastore/IMultiEntryOperation.java
rename to src/main/java/net/onrc/onos/core/datastore/IMultiEntryOperation.java
index dab1aad..535fe95 100644
--- a/src/main/java/net/onrc/onos/datastore/IMultiEntryOperation.java
+++ b/src/main/java/net/onrc/onos/core/datastore/IMultiEntryOperation.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datastore;
+package net.onrc.onos.core.datastore;
 
 /**
  * Interface for a class to specify which K-V pair to batch read/write/delete.
diff --git a/src/main/java/net/onrc/onos/core/datastore/IMultiObjectOperation.java b/src/main/java/net/onrc/onos/core/datastore/IMultiObjectOperation.java
new file mode 100644
index 0000000..898327f
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/datastore/IMultiObjectOperation.java
@@ -0,0 +1,9 @@
+package net.onrc.onos.core.datastore;
+
+import net.onrc.onos.core.datastore.utils.KVObject;
+
+public interface IMultiObjectOperation {
+
+    public KVObject getObject();
+
+}
\ No newline at end of file
diff --git a/src/main/java/net/onrc/onos/datastore/ObjectDoesntExistException.java b/src/main/java/net/onrc/onos/core/datastore/ObjectDoesntExistException.java
similarity index 88%
rename from src/main/java/net/onrc/onos/datastore/ObjectDoesntExistException.java
rename to src/main/java/net/onrc/onos/core/datastore/ObjectDoesntExistException.java
index 030680f..06d21ca 100644
--- a/src/main/java/net/onrc/onos/datastore/ObjectDoesntExistException.java
+++ b/src/main/java/net/onrc/onos/core/datastore/ObjectDoesntExistException.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.datastore;
+package net.onrc.onos.core.datastore;
 
-import net.onrc.onos.datastore.utils.ByteArrayUtil;
+import net.onrc.onos.core.datastore.utils.ByteArrayUtil;
 
 /**
  * Exception thrown when object was expected, but not found in data store.
diff --git a/src/main/java/net/onrc/onos/datastore/ObjectExistsException.java b/src/main/java/net/onrc/onos/core/datastore/ObjectExistsException.java
similarity index 88%
rename from src/main/java/net/onrc/onos/datastore/ObjectExistsException.java
rename to src/main/java/net/onrc/onos/core/datastore/ObjectExistsException.java
index 8ce6055..75c4e4d 100644
--- a/src/main/java/net/onrc/onos/datastore/ObjectExistsException.java
+++ b/src/main/java/net/onrc/onos/core/datastore/ObjectExistsException.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.datastore;
+package net.onrc.onos.core.datastore;
 
-import net.onrc.onos.datastore.utils.ByteArrayUtil;
+import net.onrc.onos.core.datastore.utils.ByteArrayUtil;
 
 /**
  * Exception thrown when object was not expected to be in data store.
diff --git a/src/main/java/net/onrc/onos/datastore/RCProtos.java b/src/main/java/net/onrc/onos/core/datastore/RCProtos.java
similarity index 86%
rename from src/main/java/net/onrc/onos/datastore/RCProtos.java
rename to src/main/java/net/onrc/onos/core/datastore/RCProtos.java
index a451b05..5e823ee 100644
--- a/src/main/java/net/onrc/onos/datastore/RCProtos.java
+++ b/src/main/java/net/onrc/onos/core/datastore/RCProtos.java
@@ -1,7 +1,7 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
 // source: protobuf/ramcloud.proto
 
-package net.onrc.onos.datastore;
+package net.onrc.onos.core.datastore;
 
 public final class RCProtos {
   private RCProtos() {}
@@ -121,14 +121,14 @@
     }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
-      return net.onrc.onos.datastore.RCProtos.internal_static_ProtoBuffer_SwitchProperty_descriptor;
+      return net.onrc.onos.core.datastore.RCProtos.internal_static_ProtoBuffer_SwitchProperty_descriptor;
     }
 
     protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
         internalGetFieldAccessorTable() {
-      return net.onrc.onos.datastore.RCProtos.internal_static_ProtoBuffer_SwitchProperty_fieldAccessorTable
+      return net.onrc.onos.core.datastore.RCProtos.internal_static_ProtoBuffer_SwitchProperty_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              net.onrc.onos.datastore.RCProtos.SwitchProperty.class, net.onrc.onos.datastore.RCProtos.SwitchProperty.Builder.class);
+              net.onrc.onos.core.datastore.RCProtos.SwitchProperty.class, net.onrc.onos.core.datastore.RCProtos.SwitchProperty.Builder.class);
     }
 
     public static com.google.protobuf.Parser<SwitchProperty> PARSER =
@@ -262,53 +262,53 @@
       return super.writeReplace();
     }
 
-    public static net.onrc.onos.datastore.RCProtos.SwitchProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.SwitchProperty parseFrom(
         com.google.protobuf.ByteString data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static net.onrc.onos.datastore.RCProtos.SwitchProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.SwitchProperty parseFrom(
         com.google.protobuf.ByteString data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static net.onrc.onos.datastore.RCProtos.SwitchProperty parseFrom(byte[] data)
+    public static net.onrc.onos.core.datastore.RCProtos.SwitchProperty parseFrom(byte[] data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static net.onrc.onos.datastore.RCProtos.SwitchProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.SwitchProperty parseFrom(
         byte[] data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static net.onrc.onos.datastore.RCProtos.SwitchProperty parseFrom(java.io.InputStream input)
+    public static net.onrc.onos.core.datastore.RCProtos.SwitchProperty parseFrom(java.io.InputStream input)
         throws java.io.IOException {
       return PARSER.parseFrom(input);
     }
-    public static net.onrc.onos.datastore.RCProtos.SwitchProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.SwitchProperty parseFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return PARSER.parseFrom(input, extensionRegistry);
     }
-    public static net.onrc.onos.datastore.RCProtos.SwitchProperty parseDelimitedFrom(java.io.InputStream input)
+    public static net.onrc.onos.core.datastore.RCProtos.SwitchProperty parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return PARSER.parseDelimitedFrom(input);
     }
-    public static net.onrc.onos.datastore.RCProtos.SwitchProperty parseDelimitedFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.SwitchProperty parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return PARSER.parseDelimitedFrom(input, extensionRegistry);
     }
-    public static net.onrc.onos.datastore.RCProtos.SwitchProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.SwitchProperty parseFrom(
         com.google.protobuf.CodedInputStream input)
         throws java.io.IOException {
       return PARSER.parseFrom(input);
     }
-    public static net.onrc.onos.datastore.RCProtos.SwitchProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.SwitchProperty parseFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -317,7 +317,7 @@
 
     public static Builder newBuilder() { return Builder.create(); }
     public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(net.onrc.onos.datastore.RCProtos.SwitchProperty prototype) {
+    public static Builder newBuilder(net.onrc.onos.core.datastore.RCProtos.SwitchProperty prototype) {
       return newBuilder().mergeFrom(prototype);
     }
     public Builder toBuilder() { return newBuilder(this); }
@@ -333,20 +333,20 @@
      */
     public static final class Builder extends
         com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements net.onrc.onos.datastore.RCProtos.SwitchPropertyOrBuilder {
+       implements net.onrc.onos.core.datastore.RCProtos.SwitchPropertyOrBuilder {
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
-        return net.onrc.onos.datastore.RCProtos.internal_static_ProtoBuffer_SwitchProperty_descriptor;
+        return net.onrc.onos.core.datastore.RCProtos.internal_static_ProtoBuffer_SwitchProperty_descriptor;
       }
 
       protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
           internalGetFieldAccessorTable() {
-        return net.onrc.onos.datastore.RCProtos.internal_static_ProtoBuffer_SwitchProperty_fieldAccessorTable
+        return net.onrc.onos.core.datastore.RCProtos.internal_static_ProtoBuffer_SwitchProperty_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                net.onrc.onos.datastore.RCProtos.SwitchProperty.class, net.onrc.onos.datastore.RCProtos.SwitchProperty.Builder.class);
+                net.onrc.onos.core.datastore.RCProtos.SwitchProperty.class, net.onrc.onos.core.datastore.RCProtos.SwitchProperty.Builder.class);
       }
 
-      // Construct using net.onrc.onos.datastore.RCProtos.SwitchProperty.newBuilder()
+      // Construct using net.onrc.onos.core.datastore.RCProtos.SwitchProperty.newBuilder()
       private Builder() {
         maybeForceBuilderInitialization();
       }
@@ -381,23 +381,23 @@
 
       public com.google.protobuf.Descriptors.Descriptor
           getDescriptorForType() {
-        return net.onrc.onos.datastore.RCProtos.internal_static_ProtoBuffer_SwitchProperty_descriptor;
+        return net.onrc.onos.core.datastore.RCProtos.internal_static_ProtoBuffer_SwitchProperty_descriptor;
       }
 
-      public net.onrc.onos.datastore.RCProtos.SwitchProperty getDefaultInstanceForType() {
-        return net.onrc.onos.datastore.RCProtos.SwitchProperty.getDefaultInstance();
+      public net.onrc.onos.core.datastore.RCProtos.SwitchProperty getDefaultInstanceForType() {
+        return net.onrc.onos.core.datastore.RCProtos.SwitchProperty.getDefaultInstance();
       }
 
-      public net.onrc.onos.datastore.RCProtos.SwitchProperty build() {
-        net.onrc.onos.datastore.RCProtos.SwitchProperty result = buildPartial();
+      public net.onrc.onos.core.datastore.RCProtos.SwitchProperty build() {
+        net.onrc.onos.core.datastore.RCProtos.SwitchProperty result = buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
         return result;
       }
 
-      public net.onrc.onos.datastore.RCProtos.SwitchProperty buildPartial() {
-        net.onrc.onos.datastore.RCProtos.SwitchProperty result = new net.onrc.onos.datastore.RCProtos.SwitchProperty(this);
+      public net.onrc.onos.core.datastore.RCProtos.SwitchProperty buildPartial() {
+        net.onrc.onos.core.datastore.RCProtos.SwitchProperty result = new net.onrc.onos.core.datastore.RCProtos.SwitchProperty(this);
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
@@ -418,16 +418,16 @@
       }
 
       public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof net.onrc.onos.datastore.RCProtos.SwitchProperty) {
-          return mergeFrom((net.onrc.onos.datastore.RCProtos.SwitchProperty)other);
+        if (other instanceof net.onrc.onos.core.datastore.RCProtos.SwitchProperty) {
+          return mergeFrom((net.onrc.onos.core.datastore.RCProtos.SwitchProperty)other);
         } else {
           super.mergeFrom(other);
           return this;
         }
       }
 
-      public Builder mergeFrom(net.onrc.onos.datastore.RCProtos.SwitchProperty other) {
-        if (other == net.onrc.onos.datastore.RCProtos.SwitchProperty.getDefaultInstance()) return this;
+      public Builder mergeFrom(net.onrc.onos.core.datastore.RCProtos.SwitchProperty other) {
+        if (other == net.onrc.onos.core.datastore.RCProtos.SwitchProperty.getDefaultInstance()) return this;
         if (other.hasDpid()) {
           setDpid(other.getDpid());
         }
@@ -457,11 +457,11 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        net.onrc.onos.datastore.RCProtos.SwitchProperty parsedMessage = null;
+        net.onrc.onos.core.datastore.RCProtos.SwitchProperty parsedMessage = null;
         try {
           parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (net.onrc.onos.datastore.RCProtos.SwitchProperty) e.getUnfinishedMessage();
+          parsedMessage = (net.onrc.onos.core.datastore.RCProtos.SwitchProperty) e.getUnfinishedMessage();
           throw e;
         } finally {
           if (parsedMessage != null) {
@@ -713,14 +713,14 @@
     }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
-      return net.onrc.onos.datastore.RCProtos.internal_static_ProtoBuffer_PortProperty_descriptor;
+      return net.onrc.onos.core.datastore.RCProtos.internal_static_ProtoBuffer_PortProperty_descriptor;
     }
 
     protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
         internalGetFieldAccessorTable() {
-      return net.onrc.onos.datastore.RCProtos.internal_static_ProtoBuffer_PortProperty_fieldAccessorTable
+      return net.onrc.onos.core.datastore.RCProtos.internal_static_ProtoBuffer_PortProperty_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              net.onrc.onos.datastore.RCProtos.PortProperty.class, net.onrc.onos.datastore.RCProtos.PortProperty.Builder.class);
+              net.onrc.onos.core.datastore.RCProtos.PortProperty.class, net.onrc.onos.core.datastore.RCProtos.PortProperty.Builder.class);
     }
 
     public static com.google.protobuf.Parser<PortProperty> PARSER =
@@ -882,53 +882,53 @@
       return super.writeReplace();
     }
 
-    public static net.onrc.onos.datastore.RCProtos.PortProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.PortProperty parseFrom(
         com.google.protobuf.ByteString data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static net.onrc.onos.datastore.RCProtos.PortProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.PortProperty parseFrom(
         com.google.protobuf.ByteString data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static net.onrc.onos.datastore.RCProtos.PortProperty parseFrom(byte[] data)
+    public static net.onrc.onos.core.datastore.RCProtos.PortProperty parseFrom(byte[] data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static net.onrc.onos.datastore.RCProtos.PortProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.PortProperty parseFrom(
         byte[] data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static net.onrc.onos.datastore.RCProtos.PortProperty parseFrom(java.io.InputStream input)
+    public static net.onrc.onos.core.datastore.RCProtos.PortProperty parseFrom(java.io.InputStream input)
         throws java.io.IOException {
       return PARSER.parseFrom(input);
     }
-    public static net.onrc.onos.datastore.RCProtos.PortProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.PortProperty parseFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return PARSER.parseFrom(input, extensionRegistry);
     }
-    public static net.onrc.onos.datastore.RCProtos.PortProperty parseDelimitedFrom(java.io.InputStream input)
+    public static net.onrc.onos.core.datastore.RCProtos.PortProperty parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return PARSER.parseDelimitedFrom(input);
     }
-    public static net.onrc.onos.datastore.RCProtos.PortProperty parseDelimitedFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.PortProperty parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return PARSER.parseDelimitedFrom(input, extensionRegistry);
     }
-    public static net.onrc.onos.datastore.RCProtos.PortProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.PortProperty parseFrom(
         com.google.protobuf.CodedInputStream input)
         throws java.io.IOException {
       return PARSER.parseFrom(input);
     }
-    public static net.onrc.onos.datastore.RCProtos.PortProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.PortProperty parseFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -937,7 +937,7 @@
 
     public static Builder newBuilder() { return Builder.create(); }
     public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(net.onrc.onos.datastore.RCProtos.PortProperty prototype) {
+    public static Builder newBuilder(net.onrc.onos.core.datastore.RCProtos.PortProperty prototype) {
       return newBuilder().mergeFrom(prototype);
     }
     public Builder toBuilder() { return newBuilder(this); }
@@ -953,20 +953,20 @@
      */
     public static final class Builder extends
         com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements net.onrc.onos.datastore.RCProtos.PortPropertyOrBuilder {
+       implements net.onrc.onos.core.datastore.RCProtos.PortPropertyOrBuilder {
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
-        return net.onrc.onos.datastore.RCProtos.internal_static_ProtoBuffer_PortProperty_descriptor;
+        return net.onrc.onos.core.datastore.RCProtos.internal_static_ProtoBuffer_PortProperty_descriptor;
       }
 
       protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
           internalGetFieldAccessorTable() {
-        return net.onrc.onos.datastore.RCProtos.internal_static_ProtoBuffer_PortProperty_fieldAccessorTable
+        return net.onrc.onos.core.datastore.RCProtos.internal_static_ProtoBuffer_PortProperty_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                net.onrc.onos.datastore.RCProtos.PortProperty.class, net.onrc.onos.datastore.RCProtos.PortProperty.Builder.class);
+                net.onrc.onos.core.datastore.RCProtos.PortProperty.class, net.onrc.onos.core.datastore.RCProtos.PortProperty.Builder.class);
       }
 
-      // Construct using net.onrc.onos.datastore.RCProtos.PortProperty.newBuilder()
+      // Construct using net.onrc.onos.core.datastore.RCProtos.PortProperty.newBuilder()
       private Builder() {
         maybeForceBuilderInitialization();
       }
@@ -1003,23 +1003,23 @@
 
       public com.google.protobuf.Descriptors.Descriptor
           getDescriptorForType() {
-        return net.onrc.onos.datastore.RCProtos.internal_static_ProtoBuffer_PortProperty_descriptor;
+        return net.onrc.onos.core.datastore.RCProtos.internal_static_ProtoBuffer_PortProperty_descriptor;
       }
 
-      public net.onrc.onos.datastore.RCProtos.PortProperty getDefaultInstanceForType() {
-        return net.onrc.onos.datastore.RCProtos.PortProperty.getDefaultInstance();
+      public net.onrc.onos.core.datastore.RCProtos.PortProperty getDefaultInstanceForType() {
+        return net.onrc.onos.core.datastore.RCProtos.PortProperty.getDefaultInstance();
       }
 
-      public net.onrc.onos.datastore.RCProtos.PortProperty build() {
-        net.onrc.onos.datastore.RCProtos.PortProperty result = buildPartial();
+      public net.onrc.onos.core.datastore.RCProtos.PortProperty build() {
+        net.onrc.onos.core.datastore.RCProtos.PortProperty result = buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
         return result;
       }
 
-      public net.onrc.onos.datastore.RCProtos.PortProperty buildPartial() {
-        net.onrc.onos.datastore.RCProtos.PortProperty result = new net.onrc.onos.datastore.RCProtos.PortProperty(this);
+      public net.onrc.onos.core.datastore.RCProtos.PortProperty buildPartial() {
+        net.onrc.onos.core.datastore.RCProtos.PortProperty result = new net.onrc.onos.core.datastore.RCProtos.PortProperty(this);
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
@@ -1044,16 +1044,16 @@
       }
 
       public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof net.onrc.onos.datastore.RCProtos.PortProperty) {
-          return mergeFrom((net.onrc.onos.datastore.RCProtos.PortProperty)other);
+        if (other instanceof net.onrc.onos.core.datastore.RCProtos.PortProperty) {
+          return mergeFrom((net.onrc.onos.core.datastore.RCProtos.PortProperty)other);
         } else {
           super.mergeFrom(other);
           return this;
         }
       }
 
-      public Builder mergeFrom(net.onrc.onos.datastore.RCProtos.PortProperty other) {
-        if (other == net.onrc.onos.datastore.RCProtos.PortProperty.getDefaultInstance()) return this;
+      public Builder mergeFrom(net.onrc.onos.core.datastore.RCProtos.PortProperty other) {
+        if (other == net.onrc.onos.core.datastore.RCProtos.PortProperty.getDefaultInstance()) return this;
         if (other.hasDpid()) {
           setDpid(other.getDpid());
         }
@@ -1090,11 +1090,11 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        net.onrc.onos.datastore.RCProtos.PortProperty parsedMessage = null;
+        net.onrc.onos.core.datastore.RCProtos.PortProperty parsedMessage = null;
         try {
           parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (net.onrc.onos.datastore.RCProtos.PortProperty) e.getUnfinishedMessage();
+          parsedMessage = (net.onrc.onos.core.datastore.RCProtos.PortProperty) e.getUnfinishedMessage();
           throw e;
         } finally {
           if (parsedMessage != null) {
@@ -1409,14 +1409,14 @@
     }
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
-      return net.onrc.onos.datastore.RCProtos.internal_static_ProtoBuffer_LinkProperty_descriptor;
+      return net.onrc.onos.core.datastore.RCProtos.internal_static_ProtoBuffer_LinkProperty_descriptor;
     }
 
     protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
         internalGetFieldAccessorTable() {
-      return net.onrc.onos.datastore.RCProtos.internal_static_ProtoBuffer_LinkProperty_fieldAccessorTable
+      return net.onrc.onos.core.datastore.RCProtos.internal_static_ProtoBuffer_LinkProperty_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              net.onrc.onos.datastore.RCProtos.LinkProperty.class, net.onrc.onos.datastore.RCProtos.LinkProperty.Builder.class);
+              net.onrc.onos.core.datastore.RCProtos.LinkProperty.class, net.onrc.onos.core.datastore.RCProtos.LinkProperty.Builder.class);
     }
 
     public static com.google.protobuf.Parser<LinkProperty> PARSER =
@@ -1634,53 +1634,53 @@
       return super.writeReplace();
     }
 
-    public static net.onrc.onos.datastore.RCProtos.LinkProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.LinkProperty parseFrom(
         com.google.protobuf.ByteString data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static net.onrc.onos.datastore.RCProtos.LinkProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.LinkProperty parseFrom(
         com.google.protobuf.ByteString data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static net.onrc.onos.datastore.RCProtos.LinkProperty parseFrom(byte[] data)
+    public static net.onrc.onos.core.datastore.RCProtos.LinkProperty parseFrom(byte[] data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static net.onrc.onos.datastore.RCProtos.LinkProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.LinkProperty parseFrom(
         byte[] data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static net.onrc.onos.datastore.RCProtos.LinkProperty parseFrom(java.io.InputStream input)
+    public static net.onrc.onos.core.datastore.RCProtos.LinkProperty parseFrom(java.io.InputStream input)
         throws java.io.IOException {
       return PARSER.parseFrom(input);
     }
-    public static net.onrc.onos.datastore.RCProtos.LinkProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.LinkProperty parseFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return PARSER.parseFrom(input, extensionRegistry);
     }
-    public static net.onrc.onos.datastore.RCProtos.LinkProperty parseDelimitedFrom(java.io.InputStream input)
+    public static net.onrc.onos.core.datastore.RCProtos.LinkProperty parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return PARSER.parseDelimitedFrom(input);
     }
-    public static net.onrc.onos.datastore.RCProtos.LinkProperty parseDelimitedFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.LinkProperty parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return PARSER.parseDelimitedFrom(input, extensionRegistry);
     }
-    public static net.onrc.onos.datastore.RCProtos.LinkProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.LinkProperty parseFrom(
         com.google.protobuf.CodedInputStream input)
         throws java.io.IOException {
       return PARSER.parseFrom(input);
     }
-    public static net.onrc.onos.datastore.RCProtos.LinkProperty parseFrom(
+    public static net.onrc.onos.core.datastore.RCProtos.LinkProperty parseFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -1689,7 +1689,7 @@
 
     public static Builder newBuilder() { return Builder.create(); }
     public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(net.onrc.onos.datastore.RCProtos.LinkProperty prototype) {
+    public static Builder newBuilder(net.onrc.onos.core.datastore.RCProtos.LinkProperty prototype) {
       return newBuilder().mergeFrom(prototype);
     }
     public Builder toBuilder() { return newBuilder(this); }
@@ -1705,20 +1705,20 @@
      */
     public static final class Builder extends
         com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements net.onrc.onos.datastore.RCProtos.LinkPropertyOrBuilder {
+       implements net.onrc.onos.core.datastore.RCProtos.LinkPropertyOrBuilder {
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
-        return net.onrc.onos.datastore.RCProtos.internal_static_ProtoBuffer_LinkProperty_descriptor;
+        return net.onrc.onos.core.datastore.RCProtos.internal_static_ProtoBuffer_LinkProperty_descriptor;
       }
 
       protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
           internalGetFieldAccessorTable() {
-        return net.onrc.onos.datastore.RCProtos.internal_static_ProtoBuffer_LinkProperty_fieldAccessorTable
+        return net.onrc.onos.core.datastore.RCProtos.internal_static_ProtoBuffer_LinkProperty_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                net.onrc.onos.datastore.RCProtos.LinkProperty.class, net.onrc.onos.datastore.RCProtos.LinkProperty.Builder.class);
+                net.onrc.onos.core.datastore.RCProtos.LinkProperty.class, net.onrc.onos.core.datastore.RCProtos.LinkProperty.Builder.class);
       }
 
-      // Construct using net.onrc.onos.datastore.RCProtos.LinkProperty.newBuilder()
+      // Construct using net.onrc.onos.core.datastore.RCProtos.LinkProperty.newBuilder()
       private Builder() {
         maybeForceBuilderInitialization();
       }
@@ -1759,23 +1759,23 @@
 
       public com.google.protobuf.Descriptors.Descriptor
           getDescriptorForType() {
-        return net.onrc.onos.datastore.RCProtos.internal_static_ProtoBuffer_LinkProperty_descriptor;
+        return net.onrc.onos.core.datastore.RCProtos.internal_static_ProtoBuffer_LinkProperty_descriptor;
       }
 
-      public net.onrc.onos.datastore.RCProtos.LinkProperty getDefaultInstanceForType() {
-        return net.onrc.onos.datastore.RCProtos.LinkProperty.getDefaultInstance();
+      public net.onrc.onos.core.datastore.RCProtos.LinkProperty getDefaultInstanceForType() {
+        return net.onrc.onos.core.datastore.RCProtos.LinkProperty.getDefaultInstance();
       }
 
-      public net.onrc.onos.datastore.RCProtos.LinkProperty build() {
-        net.onrc.onos.datastore.RCProtos.LinkProperty result = buildPartial();
+      public net.onrc.onos.core.datastore.RCProtos.LinkProperty build() {
+        net.onrc.onos.core.datastore.RCProtos.LinkProperty result = buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
         return result;
       }
 
-      public net.onrc.onos.datastore.RCProtos.LinkProperty buildPartial() {
-        net.onrc.onos.datastore.RCProtos.LinkProperty result = new net.onrc.onos.datastore.RCProtos.LinkProperty(this);
+      public net.onrc.onos.core.datastore.RCProtos.LinkProperty buildPartial() {
+        net.onrc.onos.core.datastore.RCProtos.LinkProperty result = new net.onrc.onos.core.datastore.RCProtos.LinkProperty(this);
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
@@ -1808,16 +1808,16 @@
       }
 
       public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof net.onrc.onos.datastore.RCProtos.LinkProperty) {
-          return mergeFrom((net.onrc.onos.datastore.RCProtos.LinkProperty)other);
+        if (other instanceof net.onrc.onos.core.datastore.RCProtos.LinkProperty) {
+          return mergeFrom((net.onrc.onos.core.datastore.RCProtos.LinkProperty)other);
         } else {
           super.mergeFrom(other);
           return this;
         }
       }
 
-      public Builder mergeFrom(net.onrc.onos.datastore.RCProtos.LinkProperty other) {
-        if (other == net.onrc.onos.datastore.RCProtos.LinkProperty.getDefaultInstance()) return this;
+      public Builder mergeFrom(net.onrc.onos.core.datastore.RCProtos.LinkProperty other) {
+        if (other == net.onrc.onos.core.datastore.RCProtos.LinkProperty.getDefaultInstance()) return this;
         if (other.hasSrcSwId()) {
           setSrcSwId(other.getSrcSwId());
         }
@@ -1868,11 +1868,11 @@
           com.google.protobuf.CodedInputStream input,
           com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        net.onrc.onos.datastore.RCProtos.LinkProperty parsedMessage = null;
+        net.onrc.onos.core.datastore.RCProtos.LinkProperty parsedMessage = null;
         try {
           parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
         } catch (com.google.protobuf.InvalidProtocolBufferException e) {
-          parsedMessage = (net.onrc.onos.datastore.RCProtos.LinkProperty) e.getUnfinishedMessage();
+          parsedMessage = (net.onrc.onos.core.datastore.RCProtos.LinkProperty) e.getUnfinishedMessage();
           throw e;
         } finally {
           if (parsedMessage != null) {
diff --git a/src/main/java/net/onrc/onos/datastore/RejectRulesException.java b/src/main/java/net/onrc/onos/core/datastore/RejectRulesException.java
similarity index 93%
rename from src/main/java/net/onrc/onos/datastore/RejectRulesException.java
rename to src/main/java/net/onrc/onos/core/datastore/RejectRulesException.java
index 1777ef6..351d1a1 100644
--- a/src/main/java/net/onrc/onos/datastore/RejectRulesException.java
+++ b/src/main/java/net/onrc/onos/core/datastore/RejectRulesException.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datastore;
+package net.onrc.onos.core.datastore;
 
 //
 // Not sure if we really need this base class.
diff --git a/src/main/java/net/onrc/onos/datastore/WrongVersionException.java b/src/main/java/net/onrc/onos/core/datastore/WrongVersionException.java
similarity index 91%
rename from src/main/java/net/onrc/onos/datastore/WrongVersionException.java
rename to src/main/java/net/onrc/onos/core/datastore/WrongVersionException.java
index 441409f..568f5e1 100644
--- a/src/main/java/net/onrc/onos/datastore/WrongVersionException.java
+++ b/src/main/java/net/onrc/onos/core/datastore/WrongVersionException.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.datastore;
+package net.onrc.onos.core.datastore;
 
-import net.onrc.onos.datastore.utils.ByteArrayUtil;
+import net.onrc.onos.core.datastore.utils.ByteArrayUtil;
 
 /**
  * Exception thrown when conditional operation failed due to version mismatch.
diff --git a/src/main/java/net/onrc/onos/datastore/hazelcast/HZClient.java b/src/main/java/net/onrc/onos/core/datastore/hazelcast/HZClient.java
similarity index 91%
rename from src/main/java/net/onrc/onos/datastore/hazelcast/HZClient.java
rename to src/main/java/net/onrc/onos/core/datastore/hazelcast/HZClient.java
index aec9f9d..b21ef8e 100644
--- a/src/main/java/net/onrc/onos/datastore/hazelcast/HZClient.java
+++ b/src/main/java/net/onrc/onos/core/datastore/hazelcast/HZClient.java
@@ -1,21 +1,21 @@
-package net.onrc.onos.datastore.hazelcast;
+package net.onrc.onos.core.datastore.hazelcast;
 
 import java.io.FileNotFoundException;
 import java.util.Collection;
 import java.util.List;
 
-import net.onrc.onos.datastore.IKVClient;
-import net.onrc.onos.datastore.IKVTable;
-import net.onrc.onos.datastore.IKVTable.IKVEntry;
-import net.onrc.onos.datastore.IKVTableID;
-import net.onrc.onos.datastore.IMultiEntryOperation;
-import net.onrc.onos.datastore.IMultiEntryOperation.OPERATION;
-import net.onrc.onos.datastore.IMultiEntryOperation.STATUS;
-import net.onrc.onos.datastore.ObjectDoesntExistException;
-import net.onrc.onos.datastore.ObjectExistsException;
-import net.onrc.onos.datastore.WrongVersionException;
-import net.onrc.onos.datastore.hazelcast.HZTable.VersionedValue;
-import net.onrc.onos.datastore.internal.IModifiableMultiEntryOperation;
+import net.onrc.onos.core.datastore.IKVClient;
+import net.onrc.onos.core.datastore.IKVTable;
+import net.onrc.onos.core.datastore.IKVTableID;
+import net.onrc.onos.core.datastore.IMultiEntryOperation;
+import net.onrc.onos.core.datastore.ObjectDoesntExistException;
+import net.onrc.onos.core.datastore.ObjectExistsException;
+import net.onrc.onos.core.datastore.WrongVersionException;
+import net.onrc.onos.core.datastore.IKVTable.IKVEntry;
+import net.onrc.onos.core.datastore.IMultiEntryOperation.OPERATION;
+import net.onrc.onos.core.datastore.IMultiEntryOperation.STATUS;
+import net.onrc.onos.core.datastore.hazelcast.HZTable.VersionedValue;
+import net.onrc.onos.core.datastore.internal.IModifiableMultiEntryOperation;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -38,11 +38,11 @@
     private static final String MAP_PREFIX = "datastore://";
 
     // make this path configurable
-    private static final String BASE_CONFIG_FILENAME = System.getProperty("net.onrc.onos.datastore.hazelcast.baseConfig", "conf/hazelcast.xml");
-    private static boolean useClientMode = Boolean.parseBoolean(System.getProperty("net.onrc.onos.datastore.hazelcast.clientMode", "true"));
+    private static final String BASE_CONFIG_FILENAME = System.getProperty("net.onrc.onos.core.datastore.hazelcast.baseConfig", "conf/hazelcast.xml");
+    private static boolean useClientMode = Boolean.parseBoolean(System.getProperty("net.onrc.onos.core.datastore.hazelcast.clientMode", "true"));
 
     // Note: xml configuration will overwrite this value if present
-    private static int backupCount = Integer.valueOf(System.getProperty("net.onrc.onos.datastore.hazelcast.backupCount", "3"));
+    private static int backupCount = Integer.valueOf(System.getProperty("net.onrc.onos.core.datastore.hazelcast.backupCount", "3"));
 
     private final HazelcastInstance hazelcastInstance;
 
@@ -77,7 +77,7 @@
             ClientConfig clientConfig = new ClientConfig();
             final int port = baseHzConfig.getNetworkConfig().getPort();
 
-            String server = System.getProperty("net.onrc.onos.datastore.hazelcast.client.server", "localhost");
+            String server = System.getProperty("net.onrc.onos.core.datastore.hazelcast.client.server", "localhost");
             clientConfig.addAddress(server + ":" + port);
 
             // copy group config from base Hazelcast configuration
diff --git a/src/main/java/net/onrc/onos/datastore/hazelcast/HZMultiEntryOperation.java b/src/main/java/net/onrc/onos/core/datastore/hazelcast/HZMultiEntryOperation.java
similarity index 91%
rename from src/main/java/net/onrc/onos/datastore/hazelcast/HZMultiEntryOperation.java
rename to src/main/java/net/onrc/onos/core/datastore/hazelcast/HZMultiEntryOperation.java
index 67a868e..a4842ef 100644
--- a/src/main/java/net/onrc/onos/datastore/hazelcast/HZMultiEntryOperation.java
+++ b/src/main/java/net/onrc/onos/core/datastore/hazelcast/HZMultiEntryOperation.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datastore.hazelcast;
+package net.onrc.onos.core.datastore.hazelcast;
 
 import java.util.concurrent.CancellationException;
 import java.util.concurrent.ExecutionException;
@@ -7,11 +7,11 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import net.onrc.onos.datastore.IKVTableID;
-import net.onrc.onos.datastore.IMultiEntryOperation;
-import net.onrc.onos.datastore.hazelcast.HZTable.VersionedValue;
-import net.onrc.onos.datastore.internal.IModifiableMultiEntryOperation;
-import net.onrc.onos.datastore.utils.ByteArrayUtil;
+import net.onrc.onos.core.datastore.IKVTableID;
+import net.onrc.onos.core.datastore.IMultiEntryOperation;
+import net.onrc.onos.core.datastore.hazelcast.HZTable.VersionedValue;
+import net.onrc.onos.core.datastore.internal.IModifiableMultiEntryOperation;
+import net.onrc.onos.core.datastore.utils.ByteArrayUtil;
 
 public class HZMultiEntryOperation implements IMultiEntryOperation, IModifiableMultiEntryOperation {
     private static final Logger log = LoggerFactory.getLogger(HZMultiEntryOperation.class);
diff --git a/src/main/java/net/onrc/onos/datastore/hazelcast/HZTable.java b/src/main/java/net/onrc/onos/core/datastore/hazelcast/HZTable.java
similarity index 96%
rename from src/main/java/net/onrc/onos/datastore/hazelcast/HZTable.java
rename to src/main/java/net/onrc/onos/core/datastore/hazelcast/HZTable.java
index 894854c..f071ecc 100644
--- a/src/main/java/net/onrc/onos/datastore/hazelcast/HZTable.java
+++ b/src/main/java/net/onrc/onos/core/datastore/hazelcast/HZTable.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datastore.hazelcast;
+package net.onrc.onos.core.datastore.hazelcast;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -7,11 +7,11 @@
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
 
-import net.onrc.onos.datastore.IKVTable;
-import net.onrc.onos.datastore.IKVTableID;
-import net.onrc.onos.datastore.ObjectDoesntExistException;
-import net.onrc.onos.datastore.ObjectExistsException;
-import net.onrc.onos.datastore.WrongVersionException;
+import net.onrc.onos.core.datastore.IKVTable;
+import net.onrc.onos.core.datastore.IKVTableID;
+import net.onrc.onos.core.datastore.ObjectDoesntExistException;
+import net.onrc.onos.core.datastore.ObjectExistsException;
+import net.onrc.onos.core.datastore.WrongVersionException;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/src/main/java/net/onrc/onos/datastore/hazelcast/VersionedValueSerializableFactory.java b/src/main/java/net/onrc/onos/core/datastore/hazelcast/VersionedValueSerializableFactory.java
similarity index 92%
rename from src/main/java/net/onrc/onos/datastore/hazelcast/VersionedValueSerializableFactory.java
rename to src/main/java/net/onrc/onos/core/datastore/hazelcast/VersionedValueSerializableFactory.java
index 3326890..7e77be7 100644
--- a/src/main/java/net/onrc/onos/datastore/hazelcast/VersionedValueSerializableFactory.java
+++ b/src/main/java/net/onrc/onos/core/datastore/hazelcast/VersionedValueSerializableFactory.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datastore.hazelcast;
+package net.onrc.onos.core.datastore.hazelcast;
 
 import com.hazelcast.nio.serialization.DataSerializableFactory;
 import com.hazelcast.nio.serialization.IdentifiedDataSerializable;
diff --git a/src/main/java/net/onrc/onos/datastore/internal/IModifiableMultiEntryOperation.java b/src/main/java/net/onrc/onos/core/datastore/internal/IModifiableMultiEntryOperation.java
similarity index 91%
rename from src/main/java/net/onrc/onos/datastore/internal/IModifiableMultiEntryOperation.java
rename to src/main/java/net/onrc/onos/core/datastore/internal/IModifiableMultiEntryOperation.java
index 8a23330..a607add 100644
--- a/src/main/java/net/onrc/onos/datastore/internal/IModifiableMultiEntryOperation.java
+++ b/src/main/java/net/onrc/onos/core/datastore/internal/IModifiableMultiEntryOperation.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.datastore.internal;
+package net.onrc.onos.core.datastore.internal;
 
-import net.onrc.onos.datastore.IMultiEntryOperation;
+import net.onrc.onos.core.datastore.IMultiEntryOperation;
 
 /**
  * Interface for backend to realize IMultiEntryOperation.
diff --git a/src/main/java/net/onrc/onos/datastore/ramcloud/RCClient.java b/src/main/java/net/onrc/onos/core/datastore/ramcloud/RCClient.java
similarity index 96%
rename from src/main/java/net/onrc/onos/datastore/ramcloud/RCClient.java
rename to src/main/java/net/onrc/onos/core/datastore/ramcloud/RCClient.java
index c33cb74..18ef642 100644
--- a/src/main/java/net/onrc/onos/datastore/ramcloud/RCClient.java
+++ b/src/main/java/net/onrc/onos/core/datastore/ramcloud/RCClient.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datastore.ramcloud;
+package net.onrc.onos.core.datastore.ramcloud;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -8,18 +8,18 @@
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
 
-import net.onrc.onos.datastore.IKVClient;
-import net.onrc.onos.datastore.IKVTable;
-import net.onrc.onos.datastore.IKVTable.IKVEntry;
-import net.onrc.onos.datastore.IKVTableID;
-import net.onrc.onos.datastore.IMultiEntryOperation;
-import net.onrc.onos.datastore.IMultiEntryOperation.STATUS;
-import net.onrc.onos.datastore.ObjectDoesntExistException;
-import net.onrc.onos.datastore.ObjectExistsException;
-import net.onrc.onos.datastore.WrongVersionException;
-import net.onrc.onos.datastore.internal.IModifiableMultiEntryOperation;
-import net.onrc.onos.datastore.ramcloud.RCTable.Entry;
-import net.onrc.onos.datastore.utils.ByteArrayUtil;
+import net.onrc.onos.core.datastore.IKVClient;
+import net.onrc.onos.core.datastore.IKVTable;
+import net.onrc.onos.core.datastore.IKVTableID;
+import net.onrc.onos.core.datastore.IMultiEntryOperation;
+import net.onrc.onos.core.datastore.ObjectDoesntExistException;
+import net.onrc.onos.core.datastore.ObjectExistsException;
+import net.onrc.onos.core.datastore.WrongVersionException;
+import net.onrc.onos.core.datastore.IKVTable.IKVEntry;
+import net.onrc.onos.core.datastore.IMultiEntryOperation.STATUS;
+import net.onrc.onos.core.datastore.internal.IModifiableMultiEntryOperation;
+import net.onrc.onos.core.datastore.ramcloud.RCTable.Entry;
+import net.onrc.onos.core.datastore.utils.ByteArrayUtil;
 
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationException;
diff --git a/src/main/java/net/onrc/onos/datastore/ramcloud/RCMultiEntryOperation.java b/src/main/java/net/onrc/onos/core/datastore/ramcloud/RCMultiEntryOperation.java
similarity index 91%
rename from src/main/java/net/onrc/onos/datastore/ramcloud/RCMultiEntryOperation.java
rename to src/main/java/net/onrc/onos/core/datastore/ramcloud/RCMultiEntryOperation.java
index 28c5a0b..9b8c8b6 100644
--- a/src/main/java/net/onrc/onos/datastore/ramcloud/RCMultiEntryOperation.java
+++ b/src/main/java/net/onrc/onos/core/datastore/ramcloud/RCMultiEntryOperation.java
@@ -1,9 +1,9 @@
-package net.onrc.onos.datastore.ramcloud;
+package net.onrc.onos.core.datastore.ramcloud;
 
-import net.onrc.onos.datastore.IKVTableID;
-import net.onrc.onos.datastore.IMultiEntryOperation;
-import net.onrc.onos.datastore.internal.IModifiableMultiEntryOperation;
-import net.onrc.onos.datastore.ramcloud.RCTable.Entry;
+import net.onrc.onos.core.datastore.IKVTableID;
+import net.onrc.onos.core.datastore.IMultiEntryOperation;
+import net.onrc.onos.core.datastore.internal.IModifiableMultiEntryOperation;
+import net.onrc.onos.core.datastore.ramcloud.RCTable.Entry;
 
 // FIXME move or extract this
 public class RCMultiEntryOperation implements IMultiEntryOperation, IModifiableMultiEntryOperation {
diff --git a/src/main/java/net/onrc/onos/datastore/ramcloud/RCTable.java b/src/main/java/net/onrc/onos/core/datastore/ramcloud/RCTable.java
similarity index 90%
rename from src/main/java/net/onrc/onos/datastore/ramcloud/RCTable.java
rename to src/main/java/net/onrc/onos/core/datastore/ramcloud/RCTable.java
index 741df0a..098215e 100644
--- a/src/main/java/net/onrc/onos/datastore/ramcloud/RCTable.java
+++ b/src/main/java/net/onrc/onos/core/datastore/ramcloud/RCTable.java
@@ -1,10 +1,10 @@
-package net.onrc.onos.datastore.ramcloud;
+package net.onrc.onos.core.datastore.ramcloud;
 
-import net.onrc.onos.datastore.IKVTable;
-import net.onrc.onos.datastore.IKVTableID;
-import net.onrc.onos.datastore.ObjectDoesntExistException;
-import net.onrc.onos.datastore.ObjectExistsException;
-import net.onrc.onos.datastore.WrongVersionException;
+import net.onrc.onos.core.datastore.IKVTable;
+import net.onrc.onos.core.datastore.IKVTableID;
+import net.onrc.onos.core.datastore.ObjectDoesntExistException;
+import net.onrc.onos.core.datastore.ObjectExistsException;
+import net.onrc.onos.core.datastore.WrongVersionException;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/src/main/java/net/onrc/onos/datastore/ramcloud/RCTableID.java b/src/main/java/net/onrc/onos/core/datastore/ramcloud/RCTableID.java
similarity index 92%
rename from src/main/java/net/onrc/onos/datastore/ramcloud/RCTableID.java
rename to src/main/java/net/onrc/onos/core/datastore/ramcloud/RCTableID.java
index 83ff854..f69addc 100644
--- a/src/main/java/net/onrc/onos/datastore/ramcloud/RCTableID.java
+++ b/src/main/java/net/onrc/onos/core/datastore/ramcloud/RCTableID.java
@@ -1,8 +1,8 @@
-package net.onrc.onos.datastore.ramcloud;
+package net.onrc.onos.core.datastore.ramcloud;
 
 import java.util.Objects;
 
-import net.onrc.onos.datastore.IKVTableID;
+import net.onrc.onos.core.datastore.IKVTableID;
 
 public class RCTableID implements IKVTableID {
     private final String tableName;
diff --git a/src/main/java/net/onrc/onos/datastore/topology/KVDevice.java b/src/main/java/net/onrc/onos/core/datastore/topology/KVDevice.java
similarity index 93%
rename from src/main/java/net/onrc/onos/datastore/topology/KVDevice.java
rename to src/main/java/net/onrc/onos/core/datastore/topology/KVDevice.java
index 805be62..96411a9 100644
--- a/src/main/java/net/onrc/onos/datastore/topology/KVDevice.java
+++ b/src/main/java/net/onrc/onos/core/datastore/topology/KVDevice.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datastore.topology;
+package net.onrc.onos.core.datastore.topology;
 
 import java.nio.ByteBuffer;
 import java.util.Arrays;
@@ -10,12 +10,12 @@
 import java.util.Set;
 import java.util.TreeSet;
 
-import net.onrc.onos.datastore.DataStoreClient;
-import net.onrc.onos.datastore.IKVTable.IKVEntry;
-import net.onrc.onos.datastore.topology.KVLink.STATUS;
-import net.onrc.onos.datastore.utils.ByteArrayComparator;
-import net.onrc.onos.datastore.utils.ByteArrayUtil;
-import net.onrc.onos.datastore.utils.KVObject;
+import net.onrc.onos.core.datastore.DataStoreClient;
+import net.onrc.onos.core.datastore.IKVTable.IKVEntry;
+import net.onrc.onos.core.datastore.topology.KVLink.STATUS;
+import net.onrc.onos.core.datastore.utils.ByteArrayComparator;
+import net.onrc.onos.core.datastore.utils.ByteArrayUtil;
+import net.onrc.onos.core.datastore.utils.KVObject;
 import net.onrc.onos.ofcontroller.networkgraph.DeviceEvent;
 
 import org.slf4j.Logger;
diff --git a/src/main/java/net/onrc/onos/datastore/topology/KVLink.java b/src/main/java/net/onrc/onos/core/datastore/topology/KVLink.java
similarity index 95%
rename from src/main/java/net/onrc/onos/datastore/topology/KVLink.java
rename to src/main/java/net/onrc/onos/core/datastore/topology/KVLink.java
index 9d39787..971cb6d 100644
--- a/src/main/java/net/onrc/onos/datastore/topology/KVLink.java
+++ b/src/main/java/net/onrc/onos/core/datastore/topology/KVLink.java
@@ -1,14 +1,14 @@
-package net.onrc.onos.datastore.topology;
+package net.onrc.onos.core.datastore.topology;
 
 import java.nio.ByteBuffer;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 
-import net.onrc.onos.datastore.DataStoreClient;
-import net.onrc.onos.datastore.IKVTable.IKVEntry;
-import net.onrc.onos.datastore.RCProtos.LinkProperty;
-import net.onrc.onos.datastore.utils.KVObject;
+import net.onrc.onos.core.datastore.DataStoreClient;
+import net.onrc.onos.core.datastore.IKVTable.IKVEntry;
+import net.onrc.onos.core.datastore.RCProtos.LinkProperty;
+import net.onrc.onos.core.datastore.utils.KVObject;
 import net.onrc.onos.ofcontroller.networkgraph.LinkEvent;
 import net.onrc.onos.ofcontroller.networkgraph.PortEvent;
 
diff --git a/src/main/java/net/onrc/onos/datastore/topology/KVPort.java b/src/main/java/net/onrc/onos/core/datastore/topology/KVPort.java
similarity index 94%
rename from src/main/java/net/onrc/onos/datastore/topology/KVPort.java
rename to src/main/java/net/onrc/onos/core/datastore/topology/KVPort.java
index d31026a..9ab2d2a 100644
--- a/src/main/java/net/onrc/onos/datastore/topology/KVPort.java
+++ b/src/main/java/net/onrc/onos/core/datastore/topology/KVPort.java
@@ -1,15 +1,15 @@
-package net.onrc.onos.datastore.topology;
+package net.onrc.onos.core.datastore.topology;
 
 import java.nio.ByteBuffer;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 
-import net.onrc.onos.datastore.DataStoreClient;
-import net.onrc.onos.datastore.IKVTable.IKVEntry;
-import net.onrc.onos.datastore.RCProtos.PortProperty;
-import net.onrc.onos.datastore.utils.ByteArrayUtil;
-import net.onrc.onos.datastore.utils.KVObject;
+import net.onrc.onos.core.datastore.DataStoreClient;
+import net.onrc.onos.core.datastore.IKVTable.IKVEntry;
+import net.onrc.onos.core.datastore.RCProtos.PortProperty;
+import net.onrc.onos.core.datastore.utils.ByteArrayUtil;
+import net.onrc.onos.core.datastore.utils.KVObject;
 import net.onrc.onos.ofcontroller.networkgraph.PortEvent;
 
 import org.slf4j.Logger;
diff --git a/src/main/java/net/onrc/onos/datastore/topology/KVSwitch.java b/src/main/java/net/onrc/onos/core/datastore/topology/KVSwitch.java
similarity index 94%
rename from src/main/java/net/onrc/onos/datastore/topology/KVSwitch.java
rename to src/main/java/net/onrc/onos/core/datastore/topology/KVSwitch.java
index 5f1c8fd..eb27f7a 100644
--- a/src/main/java/net/onrc/onos/datastore/topology/KVSwitch.java
+++ b/src/main/java/net/onrc/onos/core/datastore/topology/KVSwitch.java
@@ -1,14 +1,14 @@
-package net.onrc.onos.datastore.topology;
+package net.onrc.onos.core.datastore.topology;
 
 import java.nio.ByteBuffer;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
 
-import net.onrc.onos.datastore.DataStoreClient;
-import net.onrc.onos.datastore.IKVTable.IKVEntry;
-import net.onrc.onos.datastore.RCProtos.SwitchProperty;
-import net.onrc.onos.datastore.utils.KVObject;
+import net.onrc.onos.core.datastore.DataStoreClient;
+import net.onrc.onos.core.datastore.IKVTable.IKVEntry;
+import net.onrc.onos.core.datastore.RCProtos.SwitchProperty;
+import net.onrc.onos.core.datastore.utils.KVObject;
 import net.onrc.onos.ofcontroller.networkgraph.SwitchEvent;
 
 import org.slf4j.Logger;
diff --git a/src/main/java/net/onrc/onos/datastore/utils/ByteArrayComparator.java b/src/main/java/net/onrc/onos/core/datastore/utils/ByteArrayComparator.java
similarity index 93%
rename from src/main/java/net/onrc/onos/datastore/utils/ByteArrayComparator.java
rename to src/main/java/net/onrc/onos/core/datastore/utils/ByteArrayComparator.java
index fbe3ebd..f937e50 100644
--- a/src/main/java/net/onrc/onos/datastore/utils/ByteArrayComparator.java
+++ b/src/main/java/net/onrc/onos/core/datastore/utils/ByteArrayComparator.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datastore.utils;
+package net.onrc.onos.core.datastore.utils;
 
 import java.nio.ByteBuffer;
 import java.util.Comparator;
diff --git a/src/main/java/net/onrc/onos/datastore/utils/ByteArrayUtil.java b/src/main/java/net/onrc/onos/core/datastore/utils/ByteArrayUtil.java
similarity index 96%
rename from src/main/java/net/onrc/onos/datastore/utils/ByteArrayUtil.java
rename to src/main/java/net/onrc/onos/core/datastore/utils/ByteArrayUtil.java
index c7e3765..14cd419 100644
--- a/src/main/java/net/onrc/onos/datastore/utils/ByteArrayUtil.java
+++ b/src/main/java/net/onrc/onos/core/datastore/utils/ByteArrayUtil.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datastore.utils;
+package net.onrc.onos.core.datastore.utils;
 
 import java.nio.ByteBuffer;
 
diff --git a/src/main/java/net/onrc/onos/datastore/utils/KVObject.java b/src/main/java/net/onrc/onos/core/datastore/utils/KVObject.java
similarity index 94%
rename from src/main/java/net/onrc/onos/datastore/utils/KVObject.java
rename to src/main/java/net/onrc/onos/core/datastore/utils/KVObject.java
index b46c9f5..522ced0 100644
--- a/src/main/java/net/onrc/onos/datastore/utils/KVObject.java
+++ b/src/main/java/net/onrc/onos/core/datastore/utils/KVObject.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datastore.utils;
+package net.onrc.onos.core.datastore.utils;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -6,17 +6,17 @@
 import java.util.List;
 import java.util.Map;
 
-import net.onrc.onos.datastore.DataStoreClient;
-import net.onrc.onos.datastore.IKVClient;
-import net.onrc.onos.datastore.IKVTable;
-import net.onrc.onos.datastore.IKVTable.IKVEntry;
-import net.onrc.onos.datastore.IKVTableID;
-import net.onrc.onos.datastore.IMultiEntryOperation;
-import net.onrc.onos.datastore.IMultiObjectOperation;
-import net.onrc.onos.datastore.ObjectDoesntExistException;
-import net.onrc.onos.datastore.ObjectExistsException;
-import net.onrc.onos.datastore.WrongVersionException;
-import net.onrc.onos.datastore.internal.IModifiableMultiEntryOperation;
+import net.onrc.onos.core.datastore.DataStoreClient;
+import net.onrc.onos.core.datastore.IKVClient;
+import net.onrc.onos.core.datastore.IKVTable;
+import net.onrc.onos.core.datastore.IKVTableID;
+import net.onrc.onos.core.datastore.IMultiEntryOperation;
+import net.onrc.onos.core.datastore.IMultiObjectOperation;
+import net.onrc.onos.core.datastore.ObjectDoesntExistException;
+import net.onrc.onos.core.datastore.ObjectExistsException;
+import net.onrc.onos.core.datastore.WrongVersionException;
+import net.onrc.onos.core.datastore.IKVTable.IKVEntry;
+import net.onrc.onos.core.datastore.internal.IModifiableMultiEntryOperation;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/src/main/java/net/onrc/onos/datastore/IMultiObjectOperation.java b/src/main/java/net/onrc/onos/datastore/IMultiObjectOperation.java
deleted file mode 100644
index 95e4e2a..0000000
--- a/src/main/java/net/onrc/onos/datastore/IMultiObjectOperation.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package net.onrc.onos.datastore;
-
-import net.onrc.onos.datastore.utils.KVObject;
-
-public interface IMultiObjectOperation {
-
-    public KVObject getObject();
-
-}
\ No newline at end of file
diff --git a/src/main/java/net/onrc/onos/intent/runtime/PathCalcRuntimeModule.java b/src/main/java/net/onrc/onos/intent/runtime/PathCalcRuntimeModule.java
index e5fded0..b8fe6ed 100755
--- a/src/main/java/net/onrc/onos/intent/runtime/PathCalcRuntimeModule.java
+++ b/src/main/java/net/onrc/onos/intent/runtime/PathCalcRuntimeModule.java
@@ -17,9 +17,9 @@
 import net.floodlightcontroller.core.module.FloodlightModuleException;
 import net.floodlightcontroller.core.module.IFloodlightModule;
 import net.floodlightcontroller.core.module.IFloodlightService;
-import net.onrc.onos.datagrid.IDatagridService;
-import net.onrc.onos.datagrid.IEventChannel;
-import net.onrc.onos.datagrid.IEventChannelListener;
+import net.onrc.onos.core.datagrid.IDatagridService;
+import net.onrc.onos.core.datagrid.IEventChannel;
+import net.onrc.onos.core.datagrid.IEventChannelListener;
 import net.onrc.onos.intent.Intent;
 import net.onrc.onos.intent.Intent.IntentState;
 import net.onrc.onos.intent.IntentMap;
diff --git a/src/main/java/net/onrc/onos/intent/runtime/PersistIntent.java b/src/main/java/net/onrc/onos/intent/runtime/PersistIntent.java
index 16e6ea4..9347d5d 100755
--- a/src/main/java/net/onrc/onos/intent/runtime/PersistIntent.java
+++ b/src/main/java/net/onrc/onos/intent/runtime/PersistIntent.java
@@ -13,10 +13,10 @@
 import java.util.Arrays;
 import java.util.concurrent.atomic.AtomicLong;
 
-import net.onrc.onos.datagrid.web.IntentResource;
-import net.onrc.onos.datastore.DataStoreClient;
-import net.onrc.onos.datastore.IKVTable;
-import net.onrc.onos.datastore.ObjectExistsException;
+import net.onrc.onos.core.datagrid.web.IntentResource;
+import net.onrc.onos.core.datastore.DataStoreClient;
+import net.onrc.onos.core.datastore.IKVTable;
+import net.onrc.onos.core.datastore.ObjectExistsException;
 import net.onrc.onos.intent.IntentOperationList;
 import net.onrc.onos.ofcontroller.networkgraph.INetworkGraphService;
 import net.onrc.onos.ofcontroller.networkgraph.NetworkGraph;
diff --git a/src/main/java/net/onrc/onos/intent/runtime/PlanInstallModule.java b/src/main/java/net/onrc/onos/intent/runtime/PlanInstallModule.java
index 293a33d..f4e8226 100644
--- a/src/main/java/net/onrc/onos/intent/runtime/PlanInstallModule.java
+++ b/src/main/java/net/onrc/onos/intent/runtime/PlanInstallModule.java
@@ -14,9 +14,9 @@
 import net.floodlightcontroller.core.module.FloodlightModuleException;
 import net.floodlightcontroller.core.module.IFloodlightModule;
 import net.floodlightcontroller.core.module.IFloodlightService;
-import net.onrc.onos.datagrid.IDatagridService;
-import net.onrc.onos.datagrid.IEventChannel;
-import net.onrc.onos.datagrid.IEventChannelListener;
+import net.onrc.onos.core.datagrid.IDatagridService;
+import net.onrc.onos.core.datagrid.IEventChannel;
+import net.onrc.onos.core.datagrid.IEventChannelListener;
 import net.onrc.onos.intent.FlowEntry;
 import net.onrc.onos.intent.Intent.IntentState;
 import net.onrc.onos.intent.IntentOperation;
@@ -25,6 +25,7 @@
 import net.onrc.onos.ofcontroller.networkgraph.INetworkGraphService;
 //import net.onrc.onos.ofcontroller.networkgraph.NetworkGraph;
 
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/devicemanager/OnosDeviceManager.java b/src/main/java/net/onrc/onos/ofcontroller/devicemanager/OnosDeviceManager.java
index b7e9697..90eb78c 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/devicemanager/OnosDeviceManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/devicemanager/OnosDeviceManager.java
@@ -24,9 +24,9 @@
 import net.floodlightcontroller.core.module.IFloodlightModule;
 import net.floodlightcontroller.core.module.IFloodlightService;
 import net.floodlightcontroller.util.MACAddress;
-import net.onrc.onos.datagrid.IDatagridService;
-import net.onrc.onos.datagrid.IEventChannel;
-import net.onrc.onos.datagrid.IEventChannelListener;
+import net.onrc.onos.core.datagrid.IDatagridService;
+import net.onrc.onos.core.datagrid.IEventChannel;
+import net.onrc.onos.core.datagrid.IEventChannelListener;
 import net.onrc.onos.packet.ARP;
 import net.onrc.onos.packet.DHCP;
 import net.onrc.onos.packet.Ethernet;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphDatastore.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphDatastore.java
index 63f37d8..b9ed471 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphDatastore.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphDatastore.java
@@ -6,15 +6,15 @@
 import java.util.List;
 import java.util.Collection;
 
-import net.onrc.onos.datastore.DataStoreClient;
-import net.onrc.onos.datastore.IKVClient;
-import net.onrc.onos.datastore.topology.KVDevice;
-import net.onrc.onos.datastore.topology.KVLink;
-import net.onrc.onos.datastore.topology.KVPort;
-import net.onrc.onos.datastore.topology.KVPort.STATUS;
-import net.onrc.onos.datastore.topology.KVSwitch;
-import net.onrc.onos.datastore.utils.KVObject;
-import net.onrc.onos.datastore.utils.KVObject.WriteOp;
+import net.onrc.onos.core.datastore.DataStoreClient;
+import net.onrc.onos.core.datastore.IKVClient;
+import net.onrc.onos.core.datastore.topology.KVDevice;
+import net.onrc.onos.core.datastore.topology.KVLink;
+import net.onrc.onos.core.datastore.topology.KVPort;
+import net.onrc.onos.core.datastore.topology.KVSwitch;
+import net.onrc.onos.core.datastore.topology.KVPort.STATUS;
+import net.onrc.onos.core.datastore.utils.KVObject;
+import net.onrc.onos.core.datastore.utils.KVObject.WriteOp;
 import net.onrc.onos.ofcontroller.networkgraph.PortEvent.SwitchPort;
 
 import org.slf4j.Logger;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphModule.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphModule.java
index 401a0c3..c437d3f 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphModule.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/NetworkGraphModule.java
@@ -12,7 +12,7 @@
 import net.floodlightcontroller.core.module.IFloodlightModule;
 import net.floodlightcontroller.core.module.IFloodlightService;
 import net.floodlightcontroller.restserver.IRestApiService;
-import net.onrc.onos.datagrid.IDatagridService;
+import net.onrc.onos.core.datagrid.IDatagridService;
 import net.onrc.onos.ofcontroller.networkgraph.web.NetworkGraphWebRoutable;
 import net.onrc.onos.registry.controller.IControllerRegistryService;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/TopologyManager.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/TopologyManager.java
index ccd3601..732265e 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/TopologyManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/TopologyManager.java
@@ -14,12 +14,12 @@
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.LinkedBlockingQueue;
 
-import net.onrc.onos.datagrid.IDatagridService;
-import net.onrc.onos.datagrid.IEventChannel;
-import net.onrc.onos.datagrid.IEventChannelListener;
-import net.onrc.onos.datastore.topology.KVLink;
-import net.onrc.onos.datastore.topology.KVPort;
-import net.onrc.onos.datastore.topology.KVSwitch;
+import net.onrc.onos.core.datagrid.IDatagridService;
+import net.onrc.onos.core.datagrid.IEventChannel;
+import net.onrc.onos.core.datagrid.IEventChannelListener;
+import net.onrc.onos.core.datastore.topology.KVLink;
+import net.onrc.onos.core.datastore.topology.KVPort;
+import net.onrc.onos.core.datastore.topology.KVSwitch;
 import net.onrc.onos.ofcontroller.networkgraph.PortEvent.SwitchPort;
 import net.onrc.onos.ofcontroller.util.EventEntry;
 import net.onrc.onos.registry.controller.IControllerRegistryService;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/DatastoreLinksResource.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/DatastoreLinksResource.java
index c984dd1..94823b8 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/DatastoreLinksResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/DatastoreLinksResource.java
@@ -1,6 +1,6 @@
 package net.onrc.onos.ofcontroller.networkgraph.web;
 
-import net.onrc.onos.datastore.topology.KVLink;
+import net.onrc.onos.core.datastore.topology.KVLink;
 
 import org.restlet.resource.Get;
 import org.restlet.resource.ServerResource;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/DatastorePortsResource.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/DatastorePortsResource.java
index 9765e7a..f5a68fb 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/DatastorePortsResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/DatastorePortsResource.java
@@ -1,6 +1,6 @@
 package net.onrc.onos.ofcontroller.networkgraph.web;
 
-import net.onrc.onos.datastore.topology.KVPort;
+import net.onrc.onos.core.datastore.topology.KVPort;
 
 import org.restlet.resource.Get;
 import org.restlet.resource.ServerResource;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/DatastoreSwitchesResource.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/DatastoreSwitchesResource.java
index 018ef09..e373cec 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/DatastoreSwitchesResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/DatastoreSwitchesResource.java
@@ -1,6 +1,6 @@
 package net.onrc.onos.ofcontroller.networkgraph.web;
 
-import net.onrc.onos.datastore.topology.KVSwitch;
+import net.onrc.onos.core.datastore.topology.KVSwitch;
 
 import org.restlet.resource.Get;
 import org.restlet.resource.ServerResource;
diff --git a/src/main/protobuf/ramcloud.proto b/src/main/protobuf/ramcloud.proto
index 68a7263..35c63d8 100644
--- a/src/main/protobuf/ramcloud.proto
+++ b/src/main/protobuf/ramcloud.proto
@@ -1,6 +1,6 @@
 package RCProtos;
 
-option java_package = "net.onrc.onos.datastore";
+option java_package = "net.onrc.onos.core.datastore";
 option java_outer_classname = "RCProtos";
 
 message SwitchProperty {
diff --git a/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule b/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule
index cdeca6a..6ca443d 100644
--- a/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule
+++ b/src/main/resources/META-INF/services/net.floodlightcontroller.core.module.IFloodlightModule
@@ -9,7 +9,7 @@
 net.floodlightcontroller.devicemanager.test.MockDeviceManager
 net.floodlightcontroller.core.test.MockFloodlightProvider
 net.floodlightcontroller.core.test.MockThreadPoolService
-net.onrc.onos.datagrid.HazelcastDatagrid
+net.onrc.onos.core.datagrid.HazelcastDatagrid
 net.onrc.onos.ofcontroller.flowprogrammer.FlowProgrammer
 net.onrc.onos.apps.bgproute.BgpRoute
 net.onrc.onos.registry.controller.ZookeeperRegistry
diff --git a/src/test/java/net/onrc/onos/datastore/hazelcast/HZTableTest.java b/src/test/java/net/onrc/onos/core/datastore/hazelcast/HZTableTest.java
similarity index 95%
rename from src/test/java/net/onrc/onos/datastore/hazelcast/HZTableTest.java
rename to src/test/java/net/onrc/onos/core/datastore/hazelcast/HZTableTest.java
index a3bfab6..31f1646 100644
--- a/src/test/java/net/onrc/onos/datastore/hazelcast/HZTableTest.java
+++ b/src/test/java/net/onrc/onos/core/datastore/hazelcast/HZTableTest.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datastore.hazelcast;
+package net.onrc.onos.core.datastore.hazelcast;
 
 import static org.junit.Assert.*;
 
@@ -6,12 +6,14 @@
 import java.util.Map;
 import java.util.TreeMap;
 
-import net.onrc.onos.datastore.IKVTable.IKVEntry;
-import net.onrc.onos.datastore.ObjectDoesntExistException;
-import net.onrc.onos.datastore.ObjectExistsException;
-import net.onrc.onos.datastore.WrongVersionException;
-import net.onrc.onos.datastore.hazelcast.HZTable.VersionedValue;
-import net.onrc.onos.datastore.utils.ByteArrayComparator;
+import net.onrc.onos.core.datastore.ObjectDoesntExistException;
+import net.onrc.onos.core.datastore.ObjectExistsException;
+import net.onrc.onos.core.datastore.WrongVersionException;
+import net.onrc.onos.core.datastore.IKVTable.IKVEntry;
+import net.onrc.onos.core.datastore.hazelcast.HZClient;
+import net.onrc.onos.core.datastore.hazelcast.HZTable;
+import net.onrc.onos.core.datastore.hazelcast.HZTable.VersionedValue;
+import net.onrc.onos.core.datastore.utils.ByteArrayComparator;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/src/test/java/net/onrc/onos/datastore/topology/KVSwitchNoDataStoreTest.java b/src/test/java/net/onrc/onos/core/datastore/topology/KVSwitchNoDataStoreTest.java
similarity index 91%
rename from src/test/java/net/onrc/onos/datastore/topology/KVSwitchNoDataStoreTest.java
rename to src/test/java/net/onrc/onos/core/datastore/topology/KVSwitchNoDataStoreTest.java
index e656596..eec4a47 100644
--- a/src/test/java/net/onrc/onos/datastore/topology/KVSwitchNoDataStoreTest.java
+++ b/src/test/java/net/onrc/onos/core/datastore/topology/KVSwitchNoDataStoreTest.java
@@ -1,10 +1,11 @@
-package net.onrc.onos.datastore.topology;
+package net.onrc.onos.core.datastore.topology;
 
 import static org.junit.Assert.*;
 
 import java.nio.ByteBuffer;
 
-import net.onrc.onos.datastore.topology.KVSwitch.STATUS;
+import net.onrc.onos.core.datastore.topology.KVSwitch;
+import net.onrc.onos.core.datastore.topology.KVSwitch.STATUS;
 
 import org.junit.Test;
 
diff --git a/src/test/java/net/onrc/onos/datastore/topology/KVSwitchTest.java b/src/test/java/net/onrc/onos/core/datastore/topology/KVSwitchTest.java
similarity index 92%
rename from src/test/java/net/onrc/onos/datastore/topology/KVSwitchTest.java
rename to src/test/java/net/onrc/onos/core/datastore/topology/KVSwitchTest.java
index ce73034..cb5544b 100644
--- a/src/test/java/net/onrc/onos/datastore/topology/KVSwitchTest.java
+++ b/src/test/java/net/onrc/onos/core/datastore/topology/KVSwitchTest.java
@@ -1,16 +1,17 @@
-package net.onrc.onos.datastore.topology;
+package net.onrc.onos.core.datastore.topology;
 
 import static org.junit.Assert.*;
 
 import java.util.HashMap;
 import java.util.Map;
 
-import net.onrc.onos.datastore.DataStoreClient;
-import net.onrc.onos.datastore.IKVTable;
-import net.onrc.onos.datastore.ObjectDoesntExistException;
-import net.onrc.onos.datastore.ObjectExistsException;
-import net.onrc.onos.datastore.WrongVersionException;
-import net.onrc.onos.datastore.topology.KVSwitch.STATUS;
+import net.onrc.onos.core.datastore.DataStoreClient;
+import net.onrc.onos.core.datastore.IKVTable;
+import net.onrc.onos.core.datastore.ObjectDoesntExistException;
+import net.onrc.onos.core.datastore.ObjectExistsException;
+import net.onrc.onos.core.datastore.WrongVersionException;
+import net.onrc.onos.core.datastore.topology.KVSwitch;
+import net.onrc.onos.core.datastore.topology.KVSwitch.STATUS;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/src/test/java/net/onrc/onos/datastore/topology/KVTopologyTest.java b/src/test/java/net/onrc/onos/core/datastore/topology/KVTopologyTest.java
similarity index 94%
rename from src/test/java/net/onrc/onos/datastore/topology/KVTopologyTest.java
rename to src/test/java/net/onrc/onos/core/datastore/topology/KVTopologyTest.java
index 4fe0a1b..2e77de7 100644
--- a/src/test/java/net/onrc/onos/datastore/topology/KVTopologyTest.java
+++ b/src/test/java/net/onrc/onos/core/datastore/topology/KVTopologyTest.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.datastore.topology;
+package net.onrc.onos.core.datastore.topology;
 
 import static org.junit.Assert.*;
 import static org.hamcrest.Matchers.*;
@@ -10,15 +10,19 @@
 import java.util.Map;
 import java.util.TreeMap;
 
-import net.onrc.onos.datastore.DataStoreClient;
-import net.onrc.onos.datastore.IKVClient;
-import net.onrc.onos.datastore.IKVTable;
-import net.onrc.onos.datastore.ObjectDoesntExistException;
-import net.onrc.onos.datastore.ObjectExistsException;
-import net.onrc.onos.datastore.WrongVersionException;
-import net.onrc.onos.datastore.utils.ByteArrayComparator;
-import net.onrc.onos.datastore.utils.KVObject;
-import net.onrc.onos.datastore.utils.KVObject.WriteOp;
+import net.onrc.onos.core.datastore.DataStoreClient;
+import net.onrc.onos.core.datastore.IKVClient;
+import net.onrc.onos.core.datastore.IKVTable;
+import net.onrc.onos.core.datastore.ObjectDoesntExistException;
+import net.onrc.onos.core.datastore.ObjectExistsException;
+import net.onrc.onos.core.datastore.WrongVersionException;
+import net.onrc.onos.core.datastore.topology.KVDevice;
+import net.onrc.onos.core.datastore.topology.KVLink;
+import net.onrc.onos.core.datastore.topology.KVPort;
+import net.onrc.onos.core.datastore.topology.KVSwitch;
+import net.onrc.onos.core.datastore.utils.ByteArrayComparator;
+import net.onrc.onos.core.datastore.utils.KVObject;
+import net.onrc.onos.core.datastore.utils.KVObject.WriteOp;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/src/test/java/net/onrc/onos/intent/runtime/PathCalcRuntimeModuleTest.java b/src/test/java/net/onrc/onos/intent/runtime/PathCalcRuntimeModuleTest.java
index 9096d2d..0e9da71 100644
--- a/src/test/java/net/onrc/onos/intent/runtime/PathCalcRuntimeModuleTest.java
+++ b/src/test/java/net/onrc/onos/intent/runtime/PathCalcRuntimeModuleTest.java
@@ -2,10 +2,9 @@
 
 import net.floodlightcontroller.core.module.FloodlightModuleContext;
 import net.floodlightcontroller.core.module.FloodlightModuleException;
-import net.onrc.onos.datagrid.IDatagridService;
-import net.onrc.onos.datagrid.IEventChannel;
-import net.onrc.onos.datagrid.IEventChannelListener;
-
+import net.onrc.onos.core.datagrid.IDatagridService;
+import net.onrc.onos.core.datagrid.IEventChannel;
+import net.onrc.onos.core.datagrid.IEventChannelListener;
 import net.onrc.onos.intent.Intent;
 import net.onrc.onos.intent.Intent.IntentState;
 import net.onrc.onos.intent.IntentMap;
@@ -38,6 +37,7 @@
 import org.hamcrest.Matcher;
 import org.hamcrest.Matchers;
 import org.hamcrest.TypeSafeMatcher;
+
 import static org.easymock.EasyMock.*;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.*;
diff --git a/src/test/java/net/onrc/onos/intent/runtime/UseCaseTest.java b/src/test/java/net/onrc/onos/intent/runtime/UseCaseTest.java
index c746811..50c1228 100755
--- a/src/test/java/net/onrc/onos/intent/runtime/UseCaseTest.java
+++ b/src/test/java/net/onrc/onos/intent/runtime/UseCaseTest.java
@@ -8,9 +8,9 @@
 
 import net.floodlightcontroller.core.module.FloodlightModuleContext;
 import net.floodlightcontroller.core.module.FloodlightModuleException;
-import net.onrc.onos.datagrid.IDatagridService;
-import net.onrc.onos.datagrid.IEventChannel;
-import net.onrc.onos.datagrid.IEventChannelListener;
+import net.onrc.onos.core.datagrid.IDatagridService;
+import net.onrc.onos.core.datagrid.IEventChannel;
+import net.onrc.onos.core.datagrid.IEventChannelListener;
 import net.onrc.onos.intent.ConstrainedShortestPathIntent;
 import net.onrc.onos.intent.FlowEntry;
 import net.onrc.onos.intent.Intent;