Renamed devicemanager, flowprogrammer, linkdiscovery and util packages

net.onrc.onos.ofcontroller.devicemanager.* => net.onrc.onos.core.devicemanager.*
net.onrc.onos.ofcontroller.flowprogrammer.* => net.onrc.onos.core.flowprogrammer.*
net.onrc.onos.ofcontroller.linkdiscovery.* => net.onrc.onos.core.linkdiscovery.*
net.onrc.onos.ofcontroller.util.* => net.onrc.onos.core.util.*

Change-Id: Iaa865af552e8fb3a589e73d006569ac79f5a0f08
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/BgpRoute.java b/src/main/java/net/onrc/onos/apps/bgproute/BgpRoute.java
index a44685b..aed82b3 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/BgpRoute.java
+++ b/src/main/java/net/onrc/onos/apps/bgproute/BgpRoute.java
@@ -29,23 +29,23 @@
 import net.onrc.onos.apps.bgproute.RibUpdate.Operation;
 import net.onrc.onos.apps.proxyarp.IArpRequester;
 import net.onrc.onos.apps.proxyarp.IProxyArpService;
+import net.onrc.onos.core.linkdiscovery.ILinkDiscoveryService;
+import net.onrc.onos.core.linkdiscovery.ILinkDiscovery.LDUpdate;
 import net.onrc.onos.core.main.config.IConfigInfoService;
-import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscovery.LDUpdate;
-import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscoveryService;
-import net.onrc.onos.ofcontroller.util.CallerId;
-import net.onrc.onos.ofcontroller.util.DataPath;
-import net.onrc.onos.ofcontroller.util.Dpid;
-import net.onrc.onos.ofcontroller.util.FlowEntryAction;
-import net.onrc.onos.ofcontroller.util.FlowEntryActions;
-import net.onrc.onos.ofcontroller.util.FlowEntryMatch;
-import net.onrc.onos.ofcontroller.util.FlowId;
-import net.onrc.onos.ofcontroller.util.FlowPath;
-import net.onrc.onos.ofcontroller.util.FlowPathFlags;
-import net.onrc.onos.ofcontroller.util.FlowPathType;
-import net.onrc.onos.ofcontroller.util.FlowPathUserState;
-import net.onrc.onos.ofcontroller.util.IPv4Net;
-import net.onrc.onos.ofcontroller.util.Port;
-import net.onrc.onos.ofcontroller.util.SwitchPort;
+import net.onrc.onos.core.util.CallerId;
+import net.onrc.onos.core.util.DataPath;
+import net.onrc.onos.core.util.Dpid;
+import net.onrc.onos.core.util.FlowEntryAction;
+import net.onrc.onos.core.util.FlowEntryActions;
+import net.onrc.onos.core.util.FlowEntryMatch;
+import net.onrc.onos.core.util.FlowId;
+import net.onrc.onos.core.util.FlowPath;
+import net.onrc.onos.core.util.FlowPathFlags;
+import net.onrc.onos.core.util.FlowPathType;
+import net.onrc.onos.core.util.FlowPathUserState;
+import net.onrc.onos.core.util.IPv4Net;
+import net.onrc.onos.core.util.Port;
+import net.onrc.onos.core.util.SwitchPort;
 import net.onrc.onos.packet.Ethernet;
 import net.onrc.onos.packet.IPv4;
 import net.sf.json.JSONArray;
diff --git a/src/main/java/net/onrc/onos/apps/bgproute/Interface.java b/src/main/java/net/onrc/onos/apps/bgproute/Interface.java
index fa5d568..b5c762d 100644
--- a/src/main/java/net/onrc/onos/apps/bgproute/Interface.java
+++ b/src/main/java/net/onrc/onos/apps/bgproute/Interface.java
@@ -2,9 +2,9 @@
 
 import java.net.InetAddress;
 
-import net.onrc.onos.ofcontroller.util.Dpid;
-import net.onrc.onos.ofcontroller.util.Port;
-import net.onrc.onos.ofcontroller.util.SwitchPort;
+import net.onrc.onos.core.util.Dpid;
+import net.onrc.onos.core.util.Port;
+import net.onrc.onos.core.util.SwitchPort;
 
 import org.codehaus.jackson.annotate.JsonCreator;
 import org.codehaus.jackson.annotate.JsonProperty;
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 3533ebf..29a5169 100644
--- a/src/main/java/net/onrc/onos/apps/forwarding/Forwarding.java
+++ b/src/main/java/net/onrc/onos/apps/forwarding/Forwarding.java
@@ -24,6 +24,8 @@
 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.devicemanager.IOnosDeviceService;
+import net.onrc.onos.core.flowprogrammer.IFlowPusherService;
 import net.onrc.onos.core.intent.Intent;
 import net.onrc.onos.core.intent.IntentMap;
 import net.onrc.onos.core.intent.IntentOperation;
@@ -33,17 +35,15 @@
 import net.onrc.onos.core.intent.Intent.IntentState;
 import net.onrc.onos.core.intent.runtime.IPathCalcRuntimeService;
 import net.onrc.onos.core.intent.runtime.IntentStateList;
-import net.onrc.onos.ofcontroller.devicemanager.IOnosDeviceService;
-import net.onrc.onos.ofcontroller.flowprogrammer.IFlowPusherService;
+import net.onrc.onos.core.util.Dpid;
+import net.onrc.onos.core.util.FlowPath;
+import net.onrc.onos.core.util.Port;
+import net.onrc.onos.core.util.SwitchPort;
 import net.onrc.onos.ofcontroller.networkgraph.Device;
 import net.onrc.onos.ofcontroller.networkgraph.INetworkGraphService;
 import net.onrc.onos.ofcontroller.networkgraph.LinkEvent;
 import net.onrc.onos.ofcontroller.networkgraph.NetworkGraph;
 import net.onrc.onos.ofcontroller.networkgraph.Switch;
-import net.onrc.onos.ofcontroller.util.Dpid;
-import net.onrc.onos.ofcontroller.util.FlowPath;
-import net.onrc.onos.ofcontroller.util.Port;
-import net.onrc.onos.ofcontroller.util.SwitchPort;
 import net.onrc.onos.packet.Ethernet;
 import net.onrc.onos.registry.controller.IControllerRegistryService;
 
diff --git a/src/main/java/net/onrc/onos/apps/forwarding/IForwardingService.java b/src/main/java/net/onrc/onos/apps/forwarding/IForwardingService.java
index 78bf41c..375da88 100644
--- a/src/main/java/net/onrc/onos/apps/forwarding/IForwardingService.java
+++ b/src/main/java/net/onrc/onos/apps/forwarding/IForwardingService.java
@@ -3,7 +3,7 @@
 import java.util.Collection;
 
 import net.floodlightcontroller.core.module.IFloodlightService;
-import net.onrc.onos.ofcontroller.util.FlowPath;
+import net.onrc.onos.core.util.FlowPath;
 
 /**
  * Temporary interface that allows the Forwarding module to be
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 cc0fb84..149c0ee 100644
--- a/src/main/java/net/onrc/onos/apps/proxyarp/ProxyArpManager.java
+++ b/src/main/java/net/onrc/onos/apps/proxyarp/ProxyArpManager.java
@@ -26,16 +26,16 @@
 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.devicemanager.IOnosDeviceService;
+import net.onrc.onos.core.flowprogrammer.IFlowPusherService;
 import net.onrc.onos.core.main.config.IConfigInfoService;
-import net.onrc.onos.ofcontroller.devicemanager.IOnosDeviceService;
-import net.onrc.onos.ofcontroller.flowprogrammer.IFlowPusherService;
+import net.onrc.onos.core.util.Dpid;
+import net.onrc.onos.core.util.Port;
+import net.onrc.onos.core.util.SwitchPort;
 import net.onrc.onos.ofcontroller.networkgraph.Device;
 import net.onrc.onos.ofcontroller.networkgraph.INetworkGraphService;
 import net.onrc.onos.ofcontroller.networkgraph.NetworkGraph;
 import net.onrc.onos.ofcontroller.networkgraph.Switch;
-import net.onrc.onos.ofcontroller.util.Dpid;
-import net.onrc.onos.ofcontroller.util.Port;
-import net.onrc.onos.ofcontroller.util.SwitchPort;
 import net.onrc.onos.packet.ARP;
 import net.onrc.onos.packet.Ethernet;
 import net.onrc.onos.packet.IPv4;
@@ -754,7 +754,7 @@
 						continue;
 					}		
 					switchPorts.add(new SwitchPort(new Dpid(sw.getId()), 
-							new net.onrc.onos.ofcontroller.util.Port(portNumber.shortValue())));
+							new net.onrc.onos.core.util.Port(portNumber.shortValue())));
 					actions.add(new OFActionOutput(portNumber.shortValue()));
 				}
 			}
diff --git a/src/main/java/net/onrc/onos/core/datagrid/HazelcastEventChannel.java b/src/main/java/net/onrc/onos/core/datagrid/HazelcastEventChannel.java
index 8797dba..fab6943 100644
--- a/src/main/java/net/onrc/onos/core/datagrid/HazelcastEventChannel.java
+++ b/src/main/java/net/onrc/onos/core/datagrid/HazelcastEventChannel.java
@@ -14,7 +14,7 @@
 import com.hazelcast.core.HazelcastInstance;
 import com.hazelcast.core.IMap;
 
-import net.onrc.onos.ofcontroller.util.serializers.KryoFactory;
+import net.onrc.onos.core.util.serializers.KryoFactory;
 
 /**
  * A datagrid event channel that uses Hazelcast as a datagrid.
diff --git a/src/main/java/net/onrc/onos/core/datagrid/web/GetNGFlowsSummaryResource.java b/src/main/java/net/onrc/onos/core/datagrid/web/GetNGFlowsSummaryResource.java
index 33b9a5f..22b74ae 100644
--- a/src/main/java/net/onrc/onos/core/datagrid/web/GetNGFlowsSummaryResource.java
+++ b/src/main/java/net/onrc/onos/core/datagrid/web/GetNGFlowsSummaryResource.java
@@ -10,17 +10,17 @@
 import net.onrc.onos.core.intent.ShortestPathIntent;
 import net.onrc.onos.core.intent.Intent.IntentState;
 import net.onrc.onos.core.intent.runtime.IPathCalcRuntimeService;
+import net.onrc.onos.core.util.CallerId;
+import net.onrc.onos.core.util.Dpid;
+import net.onrc.onos.core.util.FlowEntry;
+import net.onrc.onos.core.util.FlowId;
+import net.onrc.onos.core.util.FlowPath;
+import net.onrc.onos.core.util.FlowPathType;
+import net.onrc.onos.core.util.FlowPathUserState;
+import net.onrc.onos.core.util.Port;
+import net.onrc.onos.core.util.SwitchPort;
 import net.onrc.onos.ofcontroller.networkgraph.LinkEvent;
 import net.onrc.onos.ofcontroller.networkgraph.Path;
-import net.onrc.onos.ofcontroller.util.CallerId;
-import net.onrc.onos.ofcontroller.util.Dpid;
-import net.onrc.onos.ofcontroller.util.FlowEntry;
-import net.onrc.onos.ofcontroller.util.FlowId;
-import net.onrc.onos.ofcontroller.util.FlowPath;
-import net.onrc.onos.ofcontroller.util.FlowPathType;
-import net.onrc.onos.ofcontroller.util.FlowPathUserState;
-import net.onrc.onos.ofcontroller.util.Port;
-import net.onrc.onos.ofcontroller.util.SwitchPort;
 
 import org.restlet.resource.Get;
 import org.restlet.resource.ServerResource;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/devicemanager/IOnosDeviceListener.java b/src/main/java/net/onrc/onos/core/devicemanager/IOnosDeviceListener.java
similarity index 74%
rename from src/main/java/net/onrc/onos/ofcontroller/devicemanager/IOnosDeviceListener.java
rename to src/main/java/net/onrc/onos/core/devicemanager/IOnosDeviceListener.java
index da50d83..69b340b 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/devicemanager/IOnosDeviceListener.java
+++ b/src/main/java/net/onrc/onos/core/devicemanager/IOnosDeviceListener.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.devicemanager;
+package net.onrc.onos.core.devicemanager;
 
 public interface IOnosDeviceListener {
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/devicemanager/IOnosDeviceService.java b/src/main/java/net/onrc/onos/core/devicemanager/IOnosDeviceService.java
similarity index 92%
rename from src/main/java/net/onrc/onos/ofcontroller/devicemanager/IOnosDeviceService.java
rename to src/main/java/net/onrc/onos/core/devicemanager/IOnosDeviceService.java
index e860de7..f343308 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/devicemanager/IOnosDeviceService.java
+++ b/src/main/java/net/onrc/onos/core/devicemanager/IOnosDeviceService.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.devicemanager;
+package net.onrc.onos.core.devicemanager;
 
 import net.floodlightcontroller.core.module.IFloodlightService;
 import net.floodlightcontroller.util.MACAddress;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/devicemanager/OnosDevice.java b/src/main/java/net/onrc/onos/core/devicemanager/OnosDevice.java
similarity index 99%
rename from src/main/java/net/onrc/onos/ofcontroller/devicemanager/OnosDevice.java
rename to src/main/java/net/onrc/onos/core/devicemanager/OnosDevice.java
index d94eb1f..4e6a8dc 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/devicemanager/OnosDevice.java
+++ b/src/main/java/net/onrc/onos/core/devicemanager/OnosDevice.java
@@ -15,7 +15,7 @@
 *    under the License.
 **/
 
-package net.onrc.onos.ofcontroller.devicemanager;
+package net.onrc.onos.core.devicemanager;
 
 import java.io.Serializable;
 import java.util.Date;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/devicemanager/OnosDeviceManager.java b/src/main/java/net/onrc/onos/core/devicemanager/OnosDeviceManager.java
similarity index 99%
rename from src/main/java/net/onrc/onos/ofcontroller/devicemanager/OnosDeviceManager.java
rename to src/main/java/net/onrc/onos/core/devicemanager/OnosDeviceManager.java
index 90eb78c..e673674 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/devicemanager/OnosDeviceManager.java
+++ b/src/main/java/net/onrc/onos/core/devicemanager/OnosDeviceManager.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.devicemanager;
+package net.onrc.onos.core.devicemanager;
 
 import java.util.ArrayList;
 import java.util.Collection;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowProgrammer.java b/src/main/java/net/onrc/onos/core/flowprogrammer/FlowProgrammer.java
similarity index 96%
rename from src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowProgrammer.java
rename to src/main/java/net/onrc/onos/core/flowprogrammer/FlowProgrammer.java
index 8e5619d..d30c10f 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowProgrammer.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/FlowProgrammer.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.flowprogrammer;
+package net.onrc.onos.core.flowprogrammer;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -21,8 +21,8 @@
 import net.floodlightcontroller.core.module.IFloodlightModule;
 import net.floodlightcontroller.core.module.IFloodlightService;
 import net.floodlightcontroller.restserver.IRestApiService;
-import net.onrc.onos.ofcontroller.flowprogrammer.web.FlowProgrammerWebRoutable;
-import net.onrc.onos.ofcontroller.util.FlowEntryId;
+import net.onrc.onos.core.flowprogrammer.web.FlowProgrammerWebRoutable;
+import net.onrc.onos.core.util.FlowEntryId;
 import net.onrc.onos.registry.controller.IControllerRegistryService;
 
 /**
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowPusher.java b/src/main/java/net/onrc/onos/core/flowprogrammer/FlowPusher.java
similarity index 98%
rename from src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowPusher.java
rename to src/main/java/net/onrc/onos/core/flowprogrammer/FlowPusher.java
index 1c0802a..bdb1f43 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowPusher.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/FlowPusher.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.flowprogrammer;
+package net.onrc.onos.core.flowprogrammer;
 
 import java.io.IOException;
 import java.util.ArrayDeque;
@@ -33,15 +33,15 @@
 import net.floodlightcontroller.threadpool.IThreadPoolService;
 import net.floodlightcontroller.util.MACAddress;
 import net.floodlightcontroller.util.OFMessageDamper;
-import net.onrc.onos.ofcontroller.util.FlowEntryAction;
-import net.onrc.onos.ofcontroller.util.FlowEntryAction.*;
-import net.onrc.onos.ofcontroller.util.FlowEntry;
-import net.onrc.onos.ofcontroller.util.FlowEntryActions;
-import net.onrc.onos.ofcontroller.util.FlowEntryMatch;
-import net.onrc.onos.ofcontroller.util.FlowEntryUserState;
-import net.onrc.onos.ofcontroller.util.IPv4Net;
-import net.onrc.onos.ofcontroller.util.Pair;
-import net.onrc.onos.ofcontroller.util.Port;
+import net.onrc.onos.core.util.FlowEntry;
+import net.onrc.onos.core.util.FlowEntryAction;
+import net.onrc.onos.core.util.FlowEntryActions;
+import net.onrc.onos.core.util.FlowEntryMatch;
+import net.onrc.onos.core.util.FlowEntryUserState;
+import net.onrc.onos.core.util.IPv4Net;
+import net.onrc.onos.core.util.Pair;
+import net.onrc.onos.core.util.Port;
+import net.onrc.onos.core.util.FlowEntryAction.*;
 
 /**
  * FlowPusher is a implementation of FlowPusherService.
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowSynchronizer.java b/src/main/java/net/onrc/onos/core/flowprogrammer/FlowSynchronizer.java
similarity index 97%
rename from src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowSynchronizer.java
rename to src/main/java/net/onrc/onos/core/flowprogrammer/FlowSynchronizer.java
index 12df976..52eeff2 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/FlowSynchronizer.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/FlowSynchronizer.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.flowprogrammer;
+package net.onrc.onos.core.flowprogrammer;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -24,10 +24,10 @@
 import org.slf4j.LoggerFactory;
 
 import net.floodlightcontroller.core.IOFSwitch;
-import net.onrc.onos.ofcontroller.flowprogrammer.IFlowPusherService.MsgPriority;
-import net.onrc.onos.ofcontroller.util.Dpid;
-import net.onrc.onos.ofcontroller.util.FlowEntry;
-import net.onrc.onos.ofcontroller.util.FlowEntryId;
+import net.onrc.onos.core.flowprogrammer.IFlowPusherService.MsgPriority;
+import net.onrc.onos.core.util.Dpid;
+import net.onrc.onos.core.util.FlowEntry;
+import net.onrc.onos.core.util.FlowEntryId;
 
 /**
  * FlowSynchronizer is an implementation of FlowSyncService.
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/IFlowPusherService.java b/src/main/java/net/onrc/onos/core/flowprogrammer/IFlowPusherService.java
similarity index 97%
rename from src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/IFlowPusherService.java
rename to src/main/java/net/onrc/onos/core/flowprogrammer/IFlowPusherService.java
index 6658495..c0c7ae7 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/IFlowPusherService.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/IFlowPusherService.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.flowprogrammer;
+package net.onrc.onos.core.flowprogrammer;
 
 import java.util.Collection;
 
@@ -8,8 +8,8 @@
 import net.floodlightcontroller.core.IOFSwitch;
 import net.floodlightcontroller.core.internal.OFMessageFuture;
 import net.floodlightcontroller.core.module.IFloodlightService;
-import net.onrc.onos.ofcontroller.util.FlowEntry;
-import net.onrc.onos.ofcontroller.util.Pair;
+import net.onrc.onos.core.util.FlowEntry;
+import net.onrc.onos.core.util.Pair;
 
 /**
  * FlowPusherService is a service to send message to switches in proper rate.
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/IFlowSyncService.java b/src/main/java/net/onrc/onos/core/flowprogrammer/IFlowSyncService.java
similarity index 93%
rename from src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/IFlowSyncService.java
rename to src/main/java/net/onrc/onos/core/flowprogrammer/IFlowSyncService.java
index 63d395f..f2d5989 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/IFlowSyncService.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/IFlowSyncService.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.flowprogrammer;
+package net.onrc.onos.core.flowprogrammer;
 
 import java.util.concurrent.Future;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/OFBarrierReplyFuture.java b/src/main/java/net/onrc/onos/core/flowprogrammer/OFBarrierReplyFuture.java
similarity index 96%
rename from src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/OFBarrierReplyFuture.java
rename to src/main/java/net/onrc/onos/core/flowprogrammer/OFBarrierReplyFuture.java
index 501eaa6..5815137 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/OFBarrierReplyFuture.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/OFBarrierReplyFuture.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.flowprogrammer;
+package net.onrc.onos.core.flowprogrammer;
 
 import java.util.concurrent.TimeUnit;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/DoInterruptResource.java b/src/main/java/net/onrc/onos/core/flowprogrammer/web/DoInterruptResource.java
similarity index 94%
rename from src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/DoInterruptResource.java
rename to src/main/java/net/onrc/onos/core/flowprogrammer/web/DoInterruptResource.java
index 66704bf..f2b4631 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/DoInterruptResource.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/web/DoInterruptResource.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.flowprogrammer.web;
+package net.onrc.onos.core.flowprogrammer.web;
 
 import net.floodlightcontroller.core.IOFSwitch;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/DoSynchronizeResource.java b/src/main/java/net/onrc/onos/core/flowprogrammer/web/DoSynchronizeResource.java
similarity index 94%
rename from src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/DoSynchronizeResource.java
rename to src/main/java/net/onrc/onos/core/flowprogrammer/web/DoSynchronizeResource.java
index c7deb11..51d39d8 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/DoSynchronizeResource.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/web/DoSynchronizeResource.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.flowprogrammer.web;
+package net.onrc.onos.core.flowprogrammer.web;
 
 import net.floodlightcontroller.core.IOFSwitch;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/FlowProgrammerWebRoutable.java b/src/main/java/net/onrc/onos/core/flowprogrammer/web/FlowProgrammerWebRoutable.java
similarity index 94%
rename from src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/FlowProgrammerWebRoutable.java
rename to src/main/java/net/onrc/onos/core/flowprogrammer/web/FlowProgrammerWebRoutable.java
index 26ea765..ab3f641 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/FlowProgrammerWebRoutable.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/web/FlowProgrammerWebRoutable.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.flowprogrammer.web;
+package net.onrc.onos.core.flowprogrammer.web;
 
 import org.restlet.Context;
 import org.restlet.Restlet;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/PusherResource.java b/src/main/java/net/onrc/onos/core/flowprogrammer/web/PusherResource.java
similarity index 89%
rename from src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/PusherResource.java
rename to src/main/java/net/onrc/onos/core/flowprogrammer/web/PusherResource.java
index 5257646..2f7af29 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/PusherResource.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/web/PusherResource.java
@@ -1,11 +1,11 @@
-package net.onrc.onos.ofcontroller.flowprogrammer.web;
+package net.onrc.onos.core.flowprogrammer.web;
 
 import org.restlet.resource.ServerResource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import net.floodlightcontroller.core.IFloodlightProviderService;
-import net.onrc.onos.ofcontroller.flowprogrammer.IFlowPusherService;
+import net.onrc.onos.core.flowprogrammer.IFlowPusherService;
 
 public class PusherResource extends ServerResource {
     protected final static Logger log = LoggerFactory.getLogger(PusherResource.class);
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/ResumePusherResource.java b/src/main/java/net/onrc/onos/core/flowprogrammer/web/ResumePusherResource.java
similarity index 94%
rename from src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/ResumePusherResource.java
rename to src/main/java/net/onrc/onos/core/flowprogrammer/web/ResumePusherResource.java
index 80f04f5..a9e6c81 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/ResumePusherResource.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/web/ResumePusherResource.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.flowprogrammer.web;
+package net.onrc.onos.core.flowprogrammer.web;
 
 import net.floodlightcontroller.core.IOFSwitch;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/SendBarrierResource.java b/src/main/java/net/onrc/onos/core/flowprogrammer/web/SendBarrierResource.java
similarity index 94%
rename from src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/SendBarrierResource.java
rename to src/main/java/net/onrc/onos/core/flowprogrammer/web/SendBarrierResource.java
index 53fd14f..236cc85 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/SendBarrierResource.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/web/SendBarrierResource.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.flowprogrammer.web;
+package net.onrc.onos.core.flowprogrammer.web;
 
 import net.floodlightcontroller.core.IOFSwitch;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/SetPushRateResource.java b/src/main/java/net/onrc/onos/core/flowprogrammer/web/SetPushRateResource.java
similarity index 94%
rename from src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/SetPushRateResource.java
rename to src/main/java/net/onrc/onos/core/flowprogrammer/web/SetPushRateResource.java
index 5879069..11bbd28 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/SetPushRateResource.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/web/SetPushRateResource.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.flowprogrammer.web;
+package net.onrc.onos.core.flowprogrammer.web;
 
 import net.floodlightcontroller.core.IOFSwitch;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/SuspendPusherResource.java b/src/main/java/net/onrc/onos/core/flowprogrammer/web/SuspendPusherResource.java
similarity index 95%
rename from src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/SuspendPusherResource.java
rename to src/main/java/net/onrc/onos/core/flowprogrammer/web/SuspendPusherResource.java
index d01e259..4d651d3 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/SuspendPusherResource.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/web/SuspendPusherResource.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.flowprogrammer.web;
+package net.onrc.onos.core.flowprogrammer.web;
 
 import net.floodlightcontroller.core.IOFSwitch;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/SynchronizerResource.java b/src/main/java/net/onrc/onos/core/flowprogrammer/web/SynchronizerResource.java
similarity index 89%
rename from src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/SynchronizerResource.java
rename to src/main/java/net/onrc/onos/core/flowprogrammer/web/SynchronizerResource.java
index b155fd3..429d52f 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowprogrammer/web/SynchronizerResource.java
+++ b/src/main/java/net/onrc/onos/core/flowprogrammer/web/SynchronizerResource.java
@@ -1,7 +1,7 @@
-package net.onrc.onos.ofcontroller.flowprogrammer.web;
+package net.onrc.onos.core.flowprogrammer.web;
 
 import net.floodlightcontroller.core.IFloodlightProviderService;
-import net.onrc.onos.ofcontroller.flowprogrammer.IFlowSyncService;
+import net.onrc.onos.core.flowprogrammer.IFlowSyncService;
 
 import org.restlet.resource.ServerResource;
 import org.slf4j.Logger;
diff --git a/src/main/java/net/onrc/onos/core/intent/Action.java b/src/main/java/net/onrc/onos/core/intent/Action.java
index feea8e4..71c7183 100644
--- a/src/main/java/net/onrc/onos/core/intent/Action.java
+++ b/src/main/java/net/onrc/onos/core/intent/Action.java
@@ -1,6 +1,6 @@
 package net.onrc.onos.core.intent;
 
-import net.onrc.onos.ofcontroller.util.FlowEntryAction;
+import net.onrc.onos.core.util.FlowEntryAction;
 
 /**
  * 
diff --git a/src/main/java/net/onrc/onos/core/intent/FlowEntry.java b/src/main/java/net/onrc/onos/core/intent/FlowEntry.java
index 7c9c696..570f4ef 100644
--- a/src/main/java/net/onrc/onos/core/intent/FlowEntry.java
+++ b/src/main/java/net/onrc/onos/core/intent/FlowEntry.java
@@ -5,10 +5,10 @@
 
 import net.floodlightcontroller.util.MACAddress;
 import net.onrc.onos.core.intent.IntentOperation.Operator;
-import net.onrc.onos.ofcontroller.util.Dpid;
-import net.onrc.onos.ofcontroller.util.FlowEntryActions;
-import net.onrc.onos.ofcontroller.util.FlowEntryId;
-import net.onrc.onos.ofcontroller.util.FlowEntryUserState;
+import net.onrc.onos.core.util.Dpid;
+import net.onrc.onos.core.util.FlowEntryActions;
+import net.onrc.onos.core.util.FlowEntryId;
+import net.onrc.onos.core.util.FlowEntryUserState;
 
 /**
  * 
@@ -48,8 +48,8 @@
 	    operator = op;
 	}
 	
-	public net.onrc.onos.ofcontroller.util.FlowEntry getFlowEntry() {
-		net.onrc.onos.ofcontroller.util.FlowEntry entry = new net.onrc.onos.ofcontroller.util.FlowEntry();
+	public net.onrc.onos.core.util.FlowEntry getFlowEntry() {
+		net.onrc.onos.core.util.FlowEntry entry = new net.onrc.onos.core.util.FlowEntry();
 		entry.setDpid(new Dpid(sw));
 		entry.setFlowEntryId(new FlowEntryId(hashCode())); // naive, but useful for now
 		entry.setFlowEntryMatch(match.getFlowEntryMatch());
diff --git a/src/main/java/net/onrc/onos/core/intent/ForwardAction.java b/src/main/java/net/onrc/onos/core/intent/ForwardAction.java
index 2294d65..482d3f1 100644
--- a/src/main/java/net/onrc/onos/core/intent/ForwardAction.java
+++ b/src/main/java/net/onrc/onos/core/intent/ForwardAction.java
@@ -1,6 +1,6 @@
 package net.onrc.onos.core.intent;
 
-import net.onrc.onos.ofcontroller.util.FlowEntryAction;
+import net.onrc.onos.core.util.FlowEntryAction;
 
 /**
  * 
@@ -22,7 +22,7 @@
 	@Override
 	public FlowEntryAction getFlowEntryAction() {
 	    FlowEntryAction action = new FlowEntryAction();
-	    action.setActionOutput(new net.onrc.onos.ofcontroller.util.Port((short) dstPort));
+	    action.setActionOutput(new net.onrc.onos.core.util.Port((short) dstPort));
 	    return action;
 	}
 
diff --git a/src/main/java/net/onrc/onos/core/intent/Match.java b/src/main/java/net/onrc/onos/core/intent/Match.java
index 0d5d38a..7ddf429 100644
--- a/src/main/java/net/onrc/onos/core/intent/Match.java
+++ b/src/main/java/net/onrc/onos/core/intent/Match.java
@@ -5,7 +5,7 @@
 import net.floodlightcontroller.util.MACAddress;
 //import net.onrc.onos.ofcontroller.networkgraph.Port;
 //import net.onrc.onos.ofcontroller.networkgraph.Switch;
-import net.onrc.onos.ofcontroller.util.FlowEntryMatch;
+import net.onrc.onos.core.util.FlowEntryMatch;
 
 /**
  *
@@ -45,7 +45,7 @@
 	    FlowEntryMatch match = new FlowEntryMatch();
 	    match.enableSrcMac(srcMac);
 	    match.enableDstMac(dstMac);
-	    match.enableInPort(new net.onrc.onos.ofcontroller.util.Port((short) srcPort));
+	    match.enableInPort(new net.onrc.onos.core.util.Port((short) srcPort));
 	    return match;
 	}
 
diff --git a/src/main/java/net/onrc/onos/core/intent/ShortestPathIntent.java b/src/main/java/net/onrc/onos/core/intent/ShortestPathIntent.java
index 9a39627..f4bb18c 100644
--- a/src/main/java/net/onrc/onos/core/intent/ShortestPathIntent.java
+++ b/src/main/java/net/onrc/onos/core/intent/ShortestPathIntent.java
@@ -1,7 +1,7 @@
 package net.onrc.onos.core.intent;
 
 import net.floodlightcontroller.util.MACAddress;
-import net.onrc.onos.ofcontroller.util.Dpid;
+import net.onrc.onos.core.util.Dpid;
 
 /**
  * @author Toshio Koide (t-koide@onlab.us)
diff --git a/src/main/java/net/onrc/onos/core/intent/runtime/PersistIntent.java b/src/main/java/net/onrc/onos/core/intent/runtime/PersistIntent.java
index 134f437..103d131 100755
--- a/src/main/java/net/onrc/onos/core/intent/runtime/PersistIntent.java
+++ b/src/main/java/net/onrc/onos/core/intent/runtime/PersistIntent.java
@@ -18,9 +18,9 @@
 import net.onrc.onos.core.datastore.IKVTable;
 import net.onrc.onos.core.datastore.ObjectExistsException;
 import net.onrc.onos.core.intent.IntentOperationList;
+import net.onrc.onos.core.util.serializers.KryoFactory;
 import net.onrc.onos.ofcontroller.networkgraph.INetworkGraphService;
 import net.onrc.onos.ofcontroller.networkgraph.NetworkGraph;
-import net.onrc.onos.ofcontroller.util.serializers.KryoFactory;
 import net.onrc.onos.registry.controller.IControllerRegistryService;
 import net.onrc.onos.registry.controller.IdBlock;
 
diff --git a/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallModule.java b/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallModule.java
index bbc303d..eded26a 100644
--- a/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallModule.java
+++ b/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallModule.java
@@ -17,16 +17,17 @@
 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.flowprogrammer.IFlowPusherService;
 import net.onrc.onos.core.intent.FlowEntry;
 import net.onrc.onos.core.intent.IntentOperation;
 import net.onrc.onos.core.intent.IntentOperationList;
 import net.onrc.onos.core.intent.Intent.IntentState;
-import net.onrc.onos.ofcontroller.flowprogrammer.IFlowPusherService;
 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/core/intent/runtime/PlanInstallRuntime.java b/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallRuntime.java
index e3bdc41..9f4a4d5 100644
--- a/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallRuntime.java
+++ b/src/main/java/net/onrc/onos/core/intent/runtime/PlanInstallRuntime.java
@@ -11,10 +11,10 @@
 import net.floodlightcontroller.core.IFloodlightProviderService;
 import net.floodlightcontroller.core.IOFSwitch;
 import net.floodlightcontroller.core.internal.OFMessageFuture;
+import net.onrc.onos.core.flowprogrammer.IFlowPusherService;
 import net.onrc.onos.core.intent.FlowEntry;
-import net.onrc.onos.ofcontroller.flowprogrammer.IFlowPusherService;
 //import net.onrc.onos.ofcontroller.networkgraph.NetworkGraph;
-import net.onrc.onos.ofcontroller.util.Pair;
+import net.onrc.onos.core.util.Pair;
 
 import org.openflow.protocol.OFBarrierReply;
 import org.slf4j.Logger;
@@ -102,7 +102,7 @@
 	
 	FlowModCount.startCount();
 	for(Set<FlowEntry> phase : plan) {
-	    Set<Pair<IOFSwitch, net.onrc.onos.ofcontroller.util.FlowEntry>> entries = new HashSet<>();
+	    Set<Pair<IOFSwitch, net.onrc.onos.core.util.FlowEntry>> entries = new HashSet<>();
 	    Set<IOFSwitch> modifiedSwitches = new HashSet<>();
 	    
 	    long step1 = System.nanoTime();
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/ILinkDiscovery.java b/src/main/java/net/onrc/onos/core/linkdiscovery/ILinkDiscovery.java
similarity index 98%
rename from src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/ILinkDiscovery.java
rename to src/main/java/net/onrc/onos/core/linkdiscovery/ILinkDiscovery.java
index cdb71be..ba35850 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/ILinkDiscovery.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/ILinkDiscovery.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.linkdiscovery;
+package net.onrc.onos.core.linkdiscovery;
 
 import net.floodlightcontroller.core.IUpdate;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/ILinkDiscoveryListener.java b/src/main/java/net/onrc/onos/core/linkdiscovery/ILinkDiscoveryListener.java
similarity index 94%
rename from src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/ILinkDiscoveryListener.java
rename to src/main/java/net/onrc/onos/core/linkdiscovery/ILinkDiscoveryListener.java
index 9ca114f..53721d8 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/ILinkDiscoveryListener.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/ILinkDiscoveryListener.java
@@ -15,7 +15,7 @@
  *    under the License.
  **/
 
-package net.onrc.onos.ofcontroller.linkdiscovery;
+package net.onrc.onos.core.linkdiscovery;
 
 public interface ILinkDiscoveryListener extends ILinkDiscovery{
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/ILinkDiscoveryService.java b/src/main/java/net/onrc/onos/core/linkdiscovery/ILinkDiscoveryService.java
similarity index 97%
rename from src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/ILinkDiscoveryService.java
rename to src/main/java/net/onrc/onos/core/linkdiscovery/ILinkDiscoveryService.java
index 2b45200..6d41532 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/ILinkDiscoveryService.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/ILinkDiscoveryService.java
@@ -15,7 +15,7 @@
 *    under the License.
 **/
 
-package net.onrc.onos.ofcontroller.linkdiscovery;
+package net.onrc.onos.core.linkdiscovery;
 
 import java.util.Map;
 import java.util.Set;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/Link.java b/src/main/java/net/onrc/onos/core/linkdiscovery/Link.java
similarity index 98%
rename from src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/Link.java
rename to src/main/java/net/onrc/onos/core/linkdiscovery/Link.java
index 38fc3d9..eb43304 100755
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/Link.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/Link.java
@@ -15,7 +15,7 @@
 *    under the License.
 **/
 
-package net.onrc.onos.ofcontroller.linkdiscovery;
+package net.onrc.onos.core.linkdiscovery;
 
 import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
 import net.floodlightcontroller.core.web.serializers.UShortSerializer;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/LinkInfo.java b/src/main/java/net/onrc/onos/core/linkdiscovery/LinkInfo.java
similarity index 97%
rename from src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/LinkInfo.java
rename to src/main/java/net/onrc/onos/core/linkdiscovery/LinkInfo.java
index 825b0a2..831c63b 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/LinkInfo.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/LinkInfo.java
@@ -13,9 +13,9 @@
 *    under the License.
 **/
 
-package net.onrc.onos.ofcontroller.linkdiscovery;
+package net.onrc.onos.core.linkdiscovery;
 
-import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscovery.LinkType;
+import net.onrc.onos.core.linkdiscovery.ILinkDiscovery.LinkType;
 
 import org.openflow.protocol.OFPhysicalPort.OFPortState;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/NodePortTuple.java b/src/main/java/net/onrc/onos/core/linkdiscovery/NodePortTuple.java
similarity index 97%
rename from src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/NodePortTuple.java
rename to src/main/java/net/onrc/onos/core/linkdiscovery/NodePortTuple.java
index 646386c..8d7ba19 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/NodePortTuple.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/NodePortTuple.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.linkdiscovery;
+package net.onrc.onos.core.linkdiscovery;
 
 import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
 import net.floodlightcontroller.core.web.serializers.UShortSerializer;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/README b/src/main/java/net/onrc/onos/core/linkdiscovery/README
similarity index 100%
rename from src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/README
rename to src/main/java/net/onrc/onos/core/linkdiscovery/README
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/EventHistoryTopologyCluster.java b/src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologyCluster.java
similarity index 95%
rename from src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/EventHistoryTopologyCluster.java
rename to src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologyCluster.java
index 696c63e..172714c 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/EventHistoryTopologyCluster.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologyCluster.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.linkdiscovery.internal;
+package net.onrc.onos.core.linkdiscovery.internal;
 
 import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/EventHistoryTopologyLink.java b/src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologyLink.java
similarity index 96%
rename from src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/EventHistoryTopologyLink.java
rename to src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologyLink.java
index 5d2e955..378859f 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/EventHistoryTopologyLink.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologyLink.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.linkdiscovery.internal;
+package net.onrc.onos.core.linkdiscovery.internal;
 
 import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/EventHistoryTopologySwitch.java b/src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologySwitch.java
similarity index 94%
rename from src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/EventHistoryTopologySwitch.java
rename to src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologySwitch.java
index d6afd7a..b659be7 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/EventHistoryTopologySwitch.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/internal/EventHistoryTopologySwitch.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.linkdiscovery.internal;
+package net.onrc.onos.core.linkdiscovery.internal;
 
 import net.floodlightcontroller.core.web.serializers.DPIDSerializer;
 import net.floodlightcontroller.core.web.serializers.IPv4Serializer;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java b/src/main/java/net/onrc/onos/core/linkdiscovery/internal/LinkDiscoveryManager.java
similarity index 98%
rename from src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
rename to src/main/java/net/onrc/onos/core/linkdiscovery/internal/LinkDiscoveryManager.java
index aa6e1d4..a9879f2 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/internal/LinkDiscoveryManager.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/internal/LinkDiscoveryManager.java
@@ -15,7 +15,7 @@
  *    under the License.
  **/
 
-package net.onrc.onos.ofcontroller.linkdiscovery.internal;
+package net.onrc.onos.core.linkdiscovery.internal;
 
 import java.io.IOException;
 import java.net.InetAddress;
@@ -56,16 +56,16 @@
 import net.floodlightcontroller.threadpool.IThreadPoolService;
 import net.floodlightcontroller.util.EventHistory;
 import net.floodlightcontroller.util.EventHistory.EvAction;
+import net.onrc.onos.core.linkdiscovery.ILinkDiscovery;
+import net.onrc.onos.core.linkdiscovery.ILinkDiscoveryListener;
+import net.onrc.onos.core.linkdiscovery.ILinkDiscoveryService;
+import net.onrc.onos.core.linkdiscovery.Link;
+import net.onrc.onos.core.linkdiscovery.LinkInfo;
+import net.onrc.onos.core.linkdiscovery.NodePortTuple;
+import net.onrc.onos.core.linkdiscovery.ILinkDiscovery.LDUpdate;
+import net.onrc.onos.core.linkdiscovery.ILinkDiscovery.UpdateOperation;
+import net.onrc.onos.core.linkdiscovery.web.LinkDiscoveryWebRoutable;
 import net.onrc.onos.core.main.IOnosRemoteSwitch;
-import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscovery;
-import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscovery.LDUpdate;
-import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscovery.UpdateOperation;
-import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscoveryListener;
-import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscoveryService;
-import net.onrc.onos.ofcontroller.linkdiscovery.Link;
-import net.onrc.onos.ofcontroller.linkdiscovery.LinkInfo;
-import net.onrc.onos.ofcontroller.linkdiscovery.NodePortTuple;
-import net.onrc.onos.ofcontroller.linkdiscovery.web.LinkDiscoveryWebRoutable;
 import net.onrc.onos.packet.BSN;
 import net.onrc.onos.packet.Ethernet;
 import net.onrc.onos.packet.IPv4;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/AutoPortFast.java b/src/main/java/net/onrc/onos/core/linkdiscovery/web/AutoPortFast.java
similarity index 89%
rename from src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/AutoPortFast.java
rename to src/main/java/net/onrc/onos/core/linkdiscovery/web/AutoPortFast.java
index ce1be94..028776b 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/AutoPortFast.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/web/AutoPortFast.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.ofcontroller.linkdiscovery.web;
+package net.onrc.onos.core.linkdiscovery.web;
 
-import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscoveryService;
+import net.onrc.onos.core.linkdiscovery.ILinkDiscoveryService;
 
 import org.restlet.data.Status;
 import org.restlet.resource.Get;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinkDiscoveryWebRoutable.java b/src/main/java/net/onrc/onos/core/linkdiscovery/web/LinkDiscoveryWebRoutable.java
similarity index 92%
rename from src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinkDiscoveryWebRoutable.java
rename to src/main/java/net/onrc/onos/core/linkdiscovery/web/LinkDiscoveryWebRoutable.java
index 4350ba6..8d3831c 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinkDiscoveryWebRoutable.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/web/LinkDiscoveryWebRoutable.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.linkdiscovery.web;
+package net.onrc.onos.core.linkdiscovery.web;
 
 import net.floodlightcontroller.restserver.RestletRoutable;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinkWithType.java b/src/main/java/net/onrc/onos/core/linkdiscovery/web/LinkWithType.java
similarity index 91%
rename from src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinkWithType.java
rename to src/main/java/net/onrc/onos/core/linkdiscovery/web/LinkWithType.java
index 6fa430e..2997261 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinkWithType.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/web/LinkWithType.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.linkdiscovery.web;
+package net.onrc.onos.core.linkdiscovery.web;
 
 import java.io.IOException;
 
@@ -9,8 +9,8 @@
 import org.codehaus.jackson.map.annotate.JsonSerialize;
 import org.openflow.util.HexString;
 
-import net.onrc.onos.ofcontroller.linkdiscovery.Link;
-import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscovery.LinkType;
+import net.onrc.onos.core.linkdiscovery.Link;
+import net.onrc.onos.core.linkdiscovery.ILinkDiscovery.LinkType;
 
 /**
  * This class is both the datastructure and the serializer
diff --git a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinksResource.java b/src/main/java/net/onrc/onos/core/linkdiscovery/web/LinksResource.java
similarity index 83%
rename from src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinksResource.java
rename to src/main/java/net/onrc/onos/core/linkdiscovery/web/LinksResource.java
index ce6b2fa..2714f66 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/linkdiscovery/web/LinksResource.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/web/LinksResource.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.linkdiscovery.web;
+package net.onrc.onos.core.linkdiscovery.web;
 
 import java.util.HashMap;
 import java.util.HashSet;
@@ -6,9 +6,9 @@
 import java.util.Map.Entry;
 import java.util.Set;
 
-import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscoveryService;
-import net.onrc.onos.ofcontroller.linkdiscovery.Link;
-import net.onrc.onos.ofcontroller.linkdiscovery.LinkInfo;
+import net.onrc.onos.core.linkdiscovery.ILinkDiscoveryService;
+import net.onrc.onos.core.linkdiscovery.Link;
+import net.onrc.onos.core.linkdiscovery.LinkInfo;
 
 import org.restlet.resource.Get;
 import org.restlet.resource.ServerResource;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/CallerId.java b/src/main/java/net/onrc/onos/core/util/CallerId.java
similarity index 97%
rename from src/main/java/net/onrc/onos/ofcontroller/util/CallerId.java
rename to src/main/java/net/onrc/onos/core/util/CallerId.java
index a0217d4..bcd9704 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/CallerId.java
+++ b/src/main/java/net/onrc/onos/core/util/CallerId.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 import org.codehaus.jackson.annotate.JsonProperty;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/DataPath.java b/src/main/java/net/onrc/onos/core/util/DataPath.java
similarity index 98%
rename from src/main/java/net/onrc/onos/ofcontroller/util/DataPath.java
rename to src/main/java/net/onrc/onos/core/util/DataPath.java
index ba8f458..7dd1f51 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/DataPath.java
+++ b/src/main/java/net/onrc/onos/core/util/DataPath.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 import java.util.ArrayList;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/DataPathEndpoints.java b/src/main/java/net/onrc/onos/core/util/DataPathEndpoints.java
similarity index 97%
rename from src/main/java/net/onrc/onos/ofcontroller/util/DataPathEndpoints.java
rename to src/main/java/net/onrc/onos/core/util/DataPathEndpoints.java
index 9cdd4fb..eeb5aaa 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/DataPathEndpoints.java
+++ b/src/main/java/net/onrc/onos/core/util/DataPathEndpoints.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 
 import org.codehaus.jackson.annotate.JsonProperty;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/Dpid.java b/src/main/java/net/onrc/onos/core/util/Dpid.java
similarity index 90%
rename from src/main/java/net/onrc/onos/ofcontroller/util/Dpid.java
rename to src/main/java/net/onrc/onos/core/util/Dpid.java
index 81223d2..dcc3a7c 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/Dpid.java
+++ b/src/main/java/net/onrc/onos/core/util/Dpid.java
@@ -1,7 +1,7 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
-import net.onrc.onos.ofcontroller.util.serializers.DpidDeserializer;
-import net.onrc.onos.ofcontroller.util.serializers.DpidSerializer;
+import net.onrc.onos.core.util.serializers.DpidDeserializer;
+import net.onrc.onos.core.util.serializers.DpidSerializer;
 
 import org.codehaus.jackson.map.annotate.JsonDeserialize;
 import org.codehaus.jackson.map.annotate.JsonSerialize;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/EventEntry.java b/src/main/java/net/onrc/onos/core/util/EventEntry.java
similarity index 96%
rename from src/main/java/net/onrc/onos/ofcontroller/util/EventEntry.java
rename to src/main/java/net/onrc/onos/core/util/EventEntry.java
index 5b296e0..fe4c3ac 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/EventEntry.java
+++ b/src/main/java/net/onrc/onos/core/util/EventEntry.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 /**
  * Class for encapsulating events with event-related data entry.
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntry.java b/src/main/java/net/onrc/onos/core/util/FlowEntry.java
similarity index 99%
rename from src/main/java/net/onrc/onos/ofcontroller/util/FlowEntry.java
rename to src/main/java/net/onrc/onos/core/util/FlowEntry.java
index c6d6726..fb5e3a3 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntry.java
+++ b/src/main/java/net/onrc/onos/core/util/FlowEntry.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 
 import org.codehaus.jackson.annotate.JsonIgnore;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryAction.java b/src/main/java/net/onrc/onos/core/util/FlowEntryAction.java
similarity index 99%
rename from src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryAction.java
rename to src/main/java/net/onrc/onos/core/util/FlowEntryAction.java
index e431f8a..da86ed3 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryAction.java
+++ b/src/main/java/net/onrc/onos/core/util/FlowEntryAction.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 import net.floodlightcontroller.util.MACAddress;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryActions.java b/src/main/java/net/onrc/onos/core/util/FlowEntryActions.java
similarity index 98%
rename from src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryActions.java
rename to src/main/java/net/onrc/onos/core/util/FlowEntryActions.java
index 7d9688b..8839ceb 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryActions.java
+++ b/src/main/java/net/onrc/onos/core/util/FlowEntryActions.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 import java.util.ArrayList;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryErrorState.java b/src/main/java/net/onrc/onos/core/util/FlowEntryErrorState.java
similarity index 97%
rename from src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryErrorState.java
rename to src/main/java/net/onrc/onos/core/util/FlowEntryErrorState.java
index 2e8c448..e1c5731 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryErrorState.java
+++ b/src/main/java/net/onrc/onos/core/util/FlowEntryErrorState.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 import org.codehaus.jackson.annotate.JsonProperty;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryId.java b/src/main/java/net/onrc/onos/core/util/FlowEntryId.java
similarity index 92%
rename from src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryId.java
rename to src/main/java/net/onrc/onos/core/util/FlowEntryId.java
index 0ecaebe..e4dd32c 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryId.java
+++ b/src/main/java/net/onrc/onos/core/util/FlowEntryId.java
@@ -1,9 +1,9 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 import java.math.BigInteger;
 
-import net.onrc.onos.ofcontroller.util.serializers.FlowEntryIdDeserializer;
-import net.onrc.onos.ofcontroller.util.serializers.FlowEntryIdSerializer;
+import net.onrc.onos.core.util.serializers.FlowEntryIdDeserializer;
+import net.onrc.onos.core.util.serializers.FlowEntryIdSerializer;
 
 import org.codehaus.jackson.annotate.JsonIgnore;
 import org.codehaus.jackson.map.annotate.JsonDeserialize;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryMatch.java b/src/main/java/net/onrc/onos/core/util/FlowEntryMatch.java
similarity index 99%
rename from src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryMatch.java
rename to src/main/java/net/onrc/onos/core/util/FlowEntryMatch.java
index a2ac748..cc18071 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryMatch.java
+++ b/src/main/java/net/onrc/onos/core/util/FlowEntryMatch.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 import net.floodlightcontroller.util.MACAddress;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntrySwitchState.java b/src/main/java/net/onrc/onos/core/util/FlowEntrySwitchState.java
similarity index 90%
rename from src/main/java/net/onrc/onos/ofcontroller/util/FlowEntrySwitchState.java
rename to src/main/java/net/onrc/onos/core/util/FlowEntrySwitchState.java
index 44439f2..c5a79de 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntrySwitchState.java
+++ b/src/main/java/net/onrc/onos/core/util/FlowEntrySwitchState.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 /**
  * The Flow Entry state as set by the controller.
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryUserState.java b/src/main/java/net/onrc/onos/core/util/FlowEntryUserState.java
similarity index 88%
rename from src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryUserState.java
rename to src/main/java/net/onrc/onos/core/util/FlowEntryUserState.java
index 5ed8865..64d283a 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/FlowEntryUserState.java
+++ b/src/main/java/net/onrc/onos/core/util/FlowEntryUserState.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 /**
  * The Flow Entry state as set by the user (via the ONOS API).
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/FlowId.java b/src/main/java/net/onrc/onos/core/util/FlowId.java
similarity index 92%
rename from src/main/java/net/onrc/onos/ofcontroller/util/FlowId.java
rename to src/main/java/net/onrc/onos/core/util/FlowId.java
index d90e96f..a6ceed8 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/FlowId.java
+++ b/src/main/java/net/onrc/onos/core/util/FlowId.java
@@ -1,9 +1,9 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 import java.math.BigInteger;
 
-import net.onrc.onos.ofcontroller.util.serializers.FlowIdDeserializer;
-import net.onrc.onos.ofcontroller.util.serializers.FlowIdSerializer;
+import net.onrc.onos.core.util.serializers.FlowIdDeserializer;
+import net.onrc.onos.core.util.serializers.FlowIdSerializer;
 
 import org.codehaus.jackson.annotate.JsonIgnore;
 import org.codehaus.jackson.map.annotate.JsonDeserialize;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/FlowPath.java b/src/main/java/net/onrc/onos/core/util/FlowPath.java
similarity index 99%
rename from src/main/java/net/onrc/onos/ofcontroller/util/FlowPath.java
rename to src/main/java/net/onrc/onos/core/util/FlowPath.java
index c7806a2..2bb5ad3 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/FlowPath.java
+++ b/src/main/java/net/onrc/onos/core/util/FlowPath.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 import java.util.ArrayList;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/FlowPathFlags.java b/src/main/java/net/onrc/onos/core/util/FlowPathFlags.java
similarity index 98%
rename from src/main/java/net/onrc/onos/ofcontroller/util/FlowPathFlags.java
rename to src/main/java/net/onrc/onos/core/util/FlowPathFlags.java
index 3c6ffc4..b52d888 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/FlowPathFlags.java
+++ b/src/main/java/net/onrc/onos/core/util/FlowPathFlags.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 import org.codehaus.jackson.annotate.JsonProperty;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/FlowPathType.java b/src/main/java/net/onrc/onos/core/util/FlowPathType.java
similarity index 85%
rename from src/main/java/net/onrc/onos/ofcontroller/util/FlowPathType.java
rename to src/main/java/net/onrc/onos/core/util/FlowPathType.java
index 87f2d98..4b1214e 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/FlowPathType.java
+++ b/src/main/java/net/onrc/onos/core/util/FlowPathType.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 /**
  * The Flow Path types.
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/FlowPathUserState.java b/src/main/java/net/onrc/onos/core/util/FlowPathUserState.java
similarity index 88%
rename from src/main/java/net/onrc/onos/ofcontroller/util/FlowPathUserState.java
rename to src/main/java/net/onrc/onos/core/util/FlowPathUserState.java
index 96b6345..bc91c2a 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/FlowPathUserState.java
+++ b/src/main/java/net/onrc/onos/core/util/FlowPathUserState.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 /**
  * The Flow Path state as set by the user (via the ONOS API).
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/IPv4.java b/src/main/java/net/onrc/onos/core/util/IPv4.java
similarity index 91%
rename from src/main/java/net/onrc/onos/ofcontroller/util/IPv4.java
rename to src/main/java/net/onrc/onos/core/util/IPv4.java
index 119165c..86795aa 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/IPv4.java
+++ b/src/main/java/net/onrc/onos/core/util/IPv4.java
@@ -1,7 +1,7 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
-import net.onrc.onos.ofcontroller.util.serializers.IPv4Deserializer;
-import net.onrc.onos.ofcontroller.util.serializers.IPv4Serializer;
+import net.onrc.onos.core.util.serializers.IPv4Deserializer;
+import net.onrc.onos.core.util.serializers.IPv4Serializer;
 
 import org.codehaus.jackson.map.annotate.JsonDeserialize;
 import org.codehaus.jackson.map.annotate.JsonSerialize;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/IPv4Net.java b/src/main/java/net/onrc/onos/core/util/IPv4Net.java
similarity index 93%
rename from src/main/java/net/onrc/onos/ofcontroller/util/IPv4Net.java
rename to src/main/java/net/onrc/onos/core/util/IPv4Net.java
index 9ce247c..82f2fc6 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/IPv4Net.java
+++ b/src/main/java/net/onrc/onos/core/util/IPv4Net.java
@@ -1,7 +1,7 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
-import net.onrc.onos.ofcontroller.util.serializers.IPv4NetDeserializer;
-import net.onrc.onos.ofcontroller.util.serializers.IPv4NetSerializer;
+import net.onrc.onos.core.util.serializers.IPv4NetDeserializer;
+import net.onrc.onos.core.util.serializers.IPv4NetSerializer;
 
 import org.codehaus.jackson.map.annotate.JsonDeserialize;
 import org.codehaus.jackson.map.annotate.JsonSerialize;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/IPv6.java b/src/main/java/net/onrc/onos/core/util/IPv6.java
similarity index 93%
rename from src/main/java/net/onrc/onos/ofcontroller/util/IPv6.java
rename to src/main/java/net/onrc/onos/core/util/IPv6.java
index f5dae11..1648723 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/IPv6.java
+++ b/src/main/java/net/onrc/onos/core/util/IPv6.java
@@ -1,7 +1,7 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
-import net.onrc.onos.ofcontroller.util.serializers.IPv6Deserializer;
-import net.onrc.onos.ofcontroller.util.serializers.IPv6Serializer;
+import net.onrc.onos.core.util.serializers.IPv6Deserializer;
+import net.onrc.onos.core.util.serializers.IPv6Serializer;
 
 import org.codehaus.jackson.map.annotate.JsonDeserialize;
 import org.codehaus.jackson.map.annotate.JsonSerialize;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/IPv6Net.java b/src/main/java/net/onrc/onos/core/util/IPv6Net.java
similarity index 93%
rename from src/main/java/net/onrc/onos/ofcontroller/util/IPv6Net.java
rename to src/main/java/net/onrc/onos/core/util/IPv6Net.java
index 65ffe54..486f8e8 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/IPv6Net.java
+++ b/src/main/java/net/onrc/onos/core/util/IPv6Net.java
@@ -1,7 +1,7 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
-import net.onrc.onos.ofcontroller.util.serializers.IPv6NetDeserializer;
-import net.onrc.onos.ofcontroller.util.serializers.IPv6NetSerializer;
+import net.onrc.onos.core.util.serializers.IPv6NetDeserializer;
+import net.onrc.onos.core.util.serializers.IPv6NetSerializer;
 
 import org.codehaus.jackson.map.annotate.JsonDeserialize;
 import org.codehaus.jackson.map.annotate.JsonSerialize;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/Pair.java b/src/main/java/net/onrc/onos/core/util/Pair.java
similarity index 92%
rename from src/main/java/net/onrc/onos/ofcontroller/util/Pair.java
rename to src/main/java/net/onrc/onos/core/util/Pair.java
index bdc24d3..36a76bb 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/Pair.java
+++ b/src/main/java/net/onrc/onos/core/util/Pair.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 /**
  * A generic class representing a pair of two values.
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/PerformanceMonitor.java b/src/main/java/net/onrc/onos/core/util/PerformanceMonitor.java
similarity index 99%
rename from src/main/java/net/onrc/onos/ofcontroller/util/PerformanceMonitor.java
rename to src/main/java/net/onrc/onos/core/util/PerformanceMonitor.java
index 189ea6c..dd5e36f 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/PerformanceMonitor.java
+++ b/src/main/java/net/onrc/onos/core/util/PerformanceMonitor.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 import java.util.Map.Entry;
 import java.util.Queue;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/Port.java b/src/main/java/net/onrc/onos/core/util/Port.java
similarity index 98%
rename from src/main/java/net/onrc/onos/ofcontroller/util/Port.java
rename to src/main/java/net/onrc/onos/core/util/Port.java
index fedc8df..722c802 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/Port.java
+++ b/src/main/java/net/onrc/onos/core/util/Port.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 import org.codehaus.jackson.annotate.JsonProperty;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/Switch.java b/src/main/java/net/onrc/onos/core/util/Switch.java
similarity index 97%
rename from src/main/java/net/onrc/onos/ofcontroller/util/Switch.java
rename to src/main/java/net/onrc/onos/core/util/Switch.java
index f7df223..e3c525f 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/Switch.java
+++ b/src/main/java/net/onrc/onos/core/util/Switch.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 import org.codehaus.jackson.annotate.JsonProperty;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/SwitchPort.java b/src/main/java/net/onrc/onos/core/util/SwitchPort.java
similarity index 97%
rename from src/main/java/net/onrc/onos/ofcontroller/util/SwitchPort.java
rename to src/main/java/net/onrc/onos/core/util/SwitchPort.java
index 8912803..edc8905 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/SwitchPort.java
+++ b/src/main/java/net/onrc/onos/core/util/SwitchPort.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util;
+package net.onrc.onos.core.util;
 
 import org.codehaus.jackson.annotate.JsonProperty;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/DpidDeserializer.java b/src/main/java/net/onrc/onos/core/util/serializers/DpidDeserializer.java
similarity index 90%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/DpidDeserializer.java
rename to src/main/java/net/onrc/onos/core/util/serializers/DpidDeserializer.java
index 695bb1a..7a8c570 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/DpidDeserializer.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/DpidDeserializer.java
@@ -1,8 +1,8 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.io.IOException;
 
-import net.onrc.onos.ofcontroller.util.Dpid;
+import net.onrc.onos.core.util.Dpid;
 
 import org.codehaus.jackson.JsonParser;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/DpidSerializer.java b/src/main/java/net/onrc/onos/core/util/serializers/DpidSerializer.java
similarity index 85%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/DpidSerializer.java
rename to src/main/java/net/onrc/onos/core/util/serializers/DpidSerializer.java
index 7ece4d3..4e784f2 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/DpidSerializer.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/DpidSerializer.java
@@ -1,8 +1,8 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.io.IOException;
 
-import net.onrc.onos.ofcontroller.util.Dpid;
+import net.onrc.onos.core.util.Dpid;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/FlowEntryIdDeserializer.java b/src/main/java/net/onrc/onos/core/util/serializers/FlowEntryIdDeserializer.java
similarity index 91%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/FlowEntryIdDeserializer.java
rename to src/main/java/net/onrc/onos/core/util/serializers/FlowEntryIdDeserializer.java
index 71b02e0..712daa8 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/FlowEntryIdDeserializer.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/FlowEntryIdDeserializer.java
@@ -1,8 +1,8 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.io.IOException;
 
-import net.onrc.onos.ofcontroller.util.FlowEntryId;
+import net.onrc.onos.core.util.FlowEntryId;
 
 import org.codehaus.jackson.JsonParser;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/FlowEntryIdSerializer.java b/src/main/java/net/onrc/onos/core/util/serializers/FlowEntryIdSerializer.java
similarity index 84%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/FlowEntryIdSerializer.java
rename to src/main/java/net/onrc/onos/core/util/serializers/FlowEntryIdSerializer.java
index bf73265..3911a4c 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/FlowEntryIdSerializer.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/FlowEntryIdSerializer.java
@@ -1,8 +1,8 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.io.IOException;
 
-import net.onrc.onos.ofcontroller.util.FlowEntryId;
+import net.onrc.onos.core.util.FlowEntryId;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/FlowIdDeserializer.java b/src/main/java/net/onrc/onos/core/util/serializers/FlowIdDeserializer.java
similarity index 91%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/FlowIdDeserializer.java
rename to src/main/java/net/onrc/onos/core/util/serializers/FlowIdDeserializer.java
index e6c46aa..d1b91a8 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/FlowIdDeserializer.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/FlowIdDeserializer.java
@@ -1,8 +1,8 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.io.IOException;
 
-import net.onrc.onos.ofcontroller.util.FlowId;
+import net.onrc.onos.core.util.FlowId;
 
 import org.codehaus.jackson.JsonParser;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/FlowIdSerializer.java b/src/main/java/net/onrc/onos/core/util/serializers/FlowIdSerializer.java
similarity index 85%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/FlowIdSerializer.java
rename to src/main/java/net/onrc/onos/core/util/serializers/FlowIdSerializer.java
index 34f6e05..b0d020e 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/FlowIdSerializer.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/FlowIdSerializer.java
@@ -1,8 +1,8 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.io.IOException;
 
-import net.onrc.onos.ofcontroller.util.FlowId;
+import net.onrc.onos.core.util.FlowId;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4Deserializer.java b/src/main/java/net/onrc/onos/core/util/serializers/IPv4Deserializer.java
similarity index 91%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4Deserializer.java
rename to src/main/java/net/onrc/onos/core/util/serializers/IPv4Deserializer.java
index ff2238a..2992bfd 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4Deserializer.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/IPv4Deserializer.java
@@ -1,8 +1,8 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.io.IOException;
 
-import net.onrc.onos.ofcontroller.util.IPv4;
+import net.onrc.onos.core.util.IPv4;
 
 import org.codehaus.jackson.JsonParser;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4NetDeserializer.java b/src/main/java/net/onrc/onos/core/util/serializers/IPv4NetDeserializer.java
similarity index 91%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4NetDeserializer.java
rename to src/main/java/net/onrc/onos/core/util/serializers/IPv4NetDeserializer.java
index edec8ad..68f74c4 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4NetDeserializer.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/IPv4NetDeserializer.java
@@ -1,8 +1,8 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.io.IOException;
 
-import net.onrc.onos.ofcontroller.util.IPv4Net;
+import net.onrc.onos.core.util.IPv4Net;
 
 import org.codehaus.jackson.JsonParser;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4NetSerializer.java b/src/main/java/net/onrc/onos/core/util/serializers/IPv4NetSerializer.java
similarity index 85%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4NetSerializer.java
rename to src/main/java/net/onrc/onos/core/util/serializers/IPv4NetSerializer.java
index 0454a58..697f846 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4NetSerializer.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/IPv4NetSerializer.java
@@ -1,8 +1,8 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.io.IOException;
 
-import net.onrc.onos.ofcontroller.util.IPv4Net;
+import net.onrc.onos.core.util.IPv4Net;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4Serializer.java b/src/main/java/net/onrc/onos/core/util/serializers/IPv4Serializer.java
similarity index 85%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4Serializer.java
rename to src/main/java/net/onrc/onos/core/util/serializers/IPv4Serializer.java
index aefc8a0..773fd1d 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv4Serializer.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/IPv4Serializer.java
@@ -1,8 +1,8 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.io.IOException;
 
-import net.onrc.onos.ofcontroller.util.IPv4;
+import net.onrc.onos.core.util.IPv4;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6Deserializer.java b/src/main/java/net/onrc/onos/core/util/serializers/IPv6Deserializer.java
similarity index 91%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6Deserializer.java
rename to src/main/java/net/onrc/onos/core/util/serializers/IPv6Deserializer.java
index 6689024..6627d2a 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6Deserializer.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/IPv6Deserializer.java
@@ -1,8 +1,8 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.io.IOException;
 
-import net.onrc.onos.ofcontroller.util.IPv6;
+import net.onrc.onos.core.util.IPv6;
 
 import org.codehaus.jackson.JsonParser;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6NetDeserializer.java b/src/main/java/net/onrc/onos/core/util/serializers/IPv6NetDeserializer.java
similarity index 91%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6NetDeserializer.java
rename to src/main/java/net/onrc/onos/core/util/serializers/IPv6NetDeserializer.java
index 0d41c21..08b8018 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6NetDeserializer.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/IPv6NetDeserializer.java
@@ -1,8 +1,8 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.io.IOException;
 
-import net.onrc.onos.ofcontroller.util.IPv6Net;
+import net.onrc.onos.core.util.IPv6Net;
 
 import org.codehaus.jackson.JsonParser;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6NetSerializer.java b/src/main/java/net/onrc/onos/core/util/serializers/IPv6NetSerializer.java
similarity index 85%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6NetSerializer.java
rename to src/main/java/net/onrc/onos/core/util/serializers/IPv6NetSerializer.java
index 06dc6cf..99bd654 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6NetSerializer.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/IPv6NetSerializer.java
@@ -1,8 +1,8 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.io.IOException;
 
-import net.onrc.onos.ofcontroller.util.IPv6Net;
+import net.onrc.onos.core.util.IPv6Net;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6Serializer.java b/src/main/java/net/onrc/onos/core/util/serializers/IPv6Serializer.java
similarity index 85%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6Serializer.java
rename to src/main/java/net/onrc/onos/core/util/serializers/IPv6Serializer.java
index b6709b8..b165658 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/IPv6Serializer.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/IPv6Serializer.java
@@ -1,8 +1,8 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.io.IOException;
 
-import net.onrc.onos.ofcontroller.util.IPv6;
+import net.onrc.onos.core.util.IPv6;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.JsonProcessingException;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/KryoFactory.java b/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
similarity index 82%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/KryoFactory.java
rename to src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
index 748749f..4cd4a00 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/KryoFactory.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.net.Inet4Address;
 import java.net.InetAddress;
@@ -11,6 +11,7 @@
 import net.onrc.onos.apps.proxyarp.BroadcastPacketOutNotification;
 import net.onrc.onos.apps.proxyarp.PacketOutNotification;
 import net.onrc.onos.apps.proxyarp.SinglePacketOutNotification;
+import net.onrc.onos.core.devicemanager.OnosDevice;
 import net.onrc.onos.core.intent.ConstrainedShortestPathIntent;
 import net.onrc.onos.core.intent.ErrorIntent;
 import net.onrc.onos.core.intent.Intent;
@@ -19,37 +20,38 @@
 import net.onrc.onos.core.intent.PathIntent;
 import net.onrc.onos.core.intent.ShortestPathIntent;
 import net.onrc.onos.core.intent.runtime.IntentStateList;
-import net.onrc.onos.ofcontroller.devicemanager.OnosDevice;
+import net.onrc.onos.core.util.CallerId;
+import net.onrc.onos.core.util.DataPath;
+import net.onrc.onos.core.util.DataPathEndpoints;
+import net.onrc.onos.core.util.Dpid;
+import net.onrc.onos.core.util.FlowEntry;
+import net.onrc.onos.core.util.FlowEntryAction;
+import net.onrc.onos.core.util.FlowEntryActions;
+import net.onrc.onos.core.util.FlowEntryErrorState;
+import net.onrc.onos.core.util.FlowEntryId;
+import net.onrc.onos.core.util.FlowEntryMatch;
+import net.onrc.onos.core.util.FlowEntrySwitchState;
+import net.onrc.onos.core.util.FlowEntryUserState;
+import net.onrc.onos.core.util.FlowId;
+import net.onrc.onos.core.util.FlowPath;
+import net.onrc.onos.core.util.FlowPathFlags;
+import net.onrc.onos.core.util.FlowPathType;
+import net.onrc.onos.core.util.FlowPathUserState;
+import net.onrc.onos.core.util.IPv4;
+import net.onrc.onos.core.util.IPv4Net;
+import net.onrc.onos.core.util.IPv6;
+import net.onrc.onos.core.util.IPv6Net;
+import net.onrc.onos.core.util.Port;
+import net.onrc.onos.core.util.Switch;
 import net.onrc.onos.ofcontroller.networkgraph.DeviceEvent;
 import net.onrc.onos.ofcontroller.networkgraph.LinkEvent;
 import net.onrc.onos.ofcontroller.networkgraph.Path;
 import net.onrc.onos.ofcontroller.networkgraph.PortEvent;
 import net.onrc.onos.ofcontroller.networkgraph.SwitchEvent;
 import net.onrc.onos.ofcontroller.networkgraph.TopologyEvent;
-import net.onrc.onos.ofcontroller.util.CallerId;
-import net.onrc.onos.ofcontroller.util.DataPath;
-import net.onrc.onos.ofcontroller.util.DataPathEndpoints;
-import net.onrc.onos.ofcontroller.util.Dpid;
-import net.onrc.onos.ofcontroller.util.FlowEntry;
-import net.onrc.onos.ofcontroller.util.FlowEntryAction;
-import net.onrc.onos.ofcontroller.util.FlowEntryActions;
-import net.onrc.onos.ofcontroller.util.FlowEntryErrorState;
-import net.onrc.onos.ofcontroller.util.FlowEntryId;
-import net.onrc.onos.ofcontroller.util.FlowEntryMatch;
-import net.onrc.onos.ofcontroller.util.FlowEntrySwitchState;
-import net.onrc.onos.ofcontroller.util.FlowEntryUserState;
-import net.onrc.onos.ofcontroller.util.FlowId;
-import net.onrc.onos.ofcontroller.util.FlowPath;
-import net.onrc.onos.ofcontroller.util.FlowPathFlags;
-import net.onrc.onos.ofcontroller.util.FlowPathType;
-import net.onrc.onos.ofcontroller.util.FlowPathUserState;
-import net.onrc.onos.ofcontroller.util.IPv4;
-import net.onrc.onos.ofcontroller.util.IPv4Net;
-import net.onrc.onos.ofcontroller.util.IPv6;
-import net.onrc.onos.ofcontroller.util.IPv6Net;
-import net.onrc.onos.ofcontroller.util.Port;
-import net.onrc.onos.ofcontroller.util.Switch;
-// import net.onrc.onos.ofcontroller.util.SwitchPort;
+// import net.onrc.onos.core.util.SwitchPort;
+
+
 
 
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/MACAddressDeserializer.java b/src/main/java/net/onrc/onos/core/util/serializers/MACAddressDeserializer.java
similarity index 95%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/MACAddressDeserializer.java
rename to src/main/java/net/onrc/onos/core/util/serializers/MACAddressDeserializer.java
index 1436f28..4ed31a5 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/MACAddressDeserializer.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/MACAddressDeserializer.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.io.IOException;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/MACAddressSerializer.java b/src/main/java/net/onrc/onos/core/util/serializers/MACAddressSerializer.java
similarity index 92%
rename from src/main/java/net/onrc/onos/ofcontroller/util/serializers/MACAddressSerializer.java
rename to src/main/java/net/onrc/onos/core/util/serializers/MACAddressSerializer.java
index 9c0e225..e57a777 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/util/serializers/MACAddressSerializer.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/MACAddressSerializer.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.ofcontroller.util.serializers;
+package net.onrc.onos.core.util.serializers;
 
 import java.io.IOException;
 
diff --git a/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java b/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java
index 4134101..62f4f16 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/floodlightlistener/NetworkGraphPublisher.java
@@ -15,12 +15,12 @@
 import net.floodlightcontroller.core.module.IFloodlightService;
 import net.floodlightcontroller.core.util.SingletonTask;
 import net.floodlightcontroller.threadpool.IThreadPoolService;
+import net.onrc.onos.core.devicemanager.IOnosDeviceListener;
+import net.onrc.onos.core.devicemanager.IOnosDeviceService;
+import net.onrc.onos.core.devicemanager.OnosDevice;
+import net.onrc.onos.core.linkdiscovery.ILinkDiscoveryListener;
+import net.onrc.onos.core.linkdiscovery.ILinkDiscoveryService;
 import net.onrc.onos.core.main.IOFSwitchPortListener;
-import net.onrc.onos.ofcontroller.devicemanager.IOnosDeviceListener;
-import net.onrc.onos.ofcontroller.devicemanager.IOnosDeviceService;
-import net.onrc.onos.ofcontroller.devicemanager.OnosDevice;
-import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscoveryListener;
-import net.onrc.onos.ofcontroller.linkdiscovery.ILinkDiscoveryService;
 import net.onrc.onos.ofcontroller.networkgraph.DeviceEvent;
 import net.onrc.onos.ofcontroller.networkgraph.INetworkGraphService;
 import net.onrc.onos.ofcontroller.networkgraph.LinkEvent;
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 732265e..d002c2e 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/TopologyManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/TopologyManager.java
@@ -20,8 +20,8 @@
 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.util.EventEntry;
 import net.onrc.onos.ofcontroller.networkgraph.PortEvent.SwitchPort;
-import net.onrc.onos.ofcontroller.util.EventEntry;
 import net.onrc.onos.registry.controller.IControllerRegistryService;
 
 import org.slf4j.Logger;
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/NetworkGraphShortestPathResource.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/NetworkGraphShortestPathResource.java
index fa5e93b..f5a6479 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/NetworkGraphShortestPathResource.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/NetworkGraphShortestPathResource.java
@@ -5,6 +5,7 @@
 import java.util.List;
 
 import net.onrc.onos.core.intent.ConstrainedBFSTree;
+import net.onrc.onos.core.util.Dpid;
 import net.onrc.onos.ofcontroller.networkgraph.INetworkGraphService;
 import net.onrc.onos.ofcontroller.networkgraph.Link;
 import net.onrc.onos.ofcontroller.networkgraph.LinkEvent;
@@ -12,7 +13,6 @@
 import net.onrc.onos.ofcontroller.networkgraph.Path;
 import net.onrc.onos.ofcontroller.networkgraph.Switch;
 import net.onrc.onos.ofcontroller.networkgraph.serializers.LinkSerializer;
-import net.onrc.onos.ofcontroller.util.Dpid;
 
 import org.codehaus.jackson.Version;
 import org.codehaus.jackson.map.ObjectMapper;