Restructured api to multiple packages

Change-Id: I8a3bb2297ef55fa7749bb312b01a4929d1b360f6
diff --git a/src/main/java/org/opencord/cordvtn/api/CordVtnConfig.java b/src/main/java/org/opencord/cordvtn/api/config/CordVtnConfig.java
similarity index 97%
rename from src/main/java/org/opencord/cordvtn/api/CordVtnConfig.java
rename to src/main/java/org/opencord/cordvtn/api/config/CordVtnConfig.java
index d0a9562..9dfa929 100644
--- a/src/main/java/org/opencord/cordvtn/api/CordVtnConfig.java
+++ b/src/main/java/org/opencord/cordvtn/api/config/CordVtnConfig.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.config;
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -25,6 +25,9 @@
 import org.onlab.packet.TpPort;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.net.config.Config;
+import org.opencord.cordvtn.api.node.CordVtnNode;
+import org.opencord.cordvtn.api.node.NetworkAddress;
+import org.opencord.cordvtn.api.node.SshAccessInfo;
 import org.slf4j.Logger;
 
 import java.util.Map;
diff --git a/src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java b/src/main/java/org/opencord/cordvtn/api/config/package-info.java
similarity index 76%
copy from src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java
copy to src/main/java/org/opencord/cordvtn/api/config/package-info.java
index be78ef0..b4fa066 100644
--- a/src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java
+++ b/src/main/java/org/opencord/cordvtn/api/config/package-info.java
@@ -13,12 +13,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
-
-import org.onosproject.event.EventListener;
 
 /**
- * Listener for vtn network event.
+ * CORD VTN configuration API definitions.
  */
-public interface VtnNetworkListener extends EventListener<VtnNetworkEvent> {
-}
+package org.opencord.cordvtn.api.config;
\ No newline at end of file
diff --git a/src/main/java/org/opencord/cordvtn/api/CordVtnAdminService.java b/src/main/java/org/opencord/cordvtn/api/core/CordVtnAdminService.java
similarity index 88%
rename from src/main/java/org/opencord/cordvtn/api/CordVtnAdminService.java
rename to src/main/java/org/opencord/cordvtn/api/core/CordVtnAdminService.java
index db5681c..fbe743b 100644
--- a/src/main/java/org/opencord/cordvtn/api/CordVtnAdminService.java
+++ b/src/main/java/org/opencord/cordvtn/api/core/CordVtnAdminService.java
@@ -13,8 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.core;
 
+import org.opencord.cordvtn.api.net.NetworkId;
+import org.opencord.cordvtn.api.net.NetworkService;
+import org.opencord.cordvtn.api.net.PortId;
+import org.opencord.cordvtn.api.net.ServiceNetwork;
+import org.opencord.cordvtn.api.net.ServiceNetworkService;
+import org.opencord.cordvtn.api.net.ServicePort;
+import org.opencord.cordvtn.api.net.SubnetId;
 import org.openstack4j.model.network.Network;
 import org.openstack4j.model.network.Port;
 import org.openstack4j.model.network.Subnet;
diff --git a/src/main/java/org/opencord/cordvtn/api/CordVtnService.java b/src/main/java/org/opencord/cordvtn/api/core/CordVtnService.java
similarity index 83%
rename from src/main/java/org/opencord/cordvtn/api/CordVtnService.java
rename to src/main/java/org/opencord/cordvtn/api/core/CordVtnService.java
index 1a9f78f..6f5e55e 100644
--- a/src/main/java/org/opencord/cordvtn/api/CordVtnService.java
+++ b/src/main/java/org/opencord/cordvtn/api/core/CordVtnService.java
@@ -13,9 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.core;
 
 import org.onosproject.event.ListenerService;
+import org.opencord.cordvtn.api.net.NetworkId;
+import org.opencord.cordvtn.api.net.PortId;
+import org.opencord.cordvtn.api.net.VtnNetwork;
+import org.opencord.cordvtn.api.net.VtnNetworkEvent;
+import org.opencord.cordvtn.api.net.VtnNetworkListener;
+import org.opencord.cordvtn.api.net.VtnPort;
 
 import java.util.Set;
 
diff --git a/src/main/java/org/opencord/cordvtn/api/CordVtnStore.java b/src/main/java/org/opencord/cordvtn/api/core/CordVtnStore.java
similarity index 92%
rename from src/main/java/org/opencord/cordvtn/api/CordVtnStore.java
rename to src/main/java/org/opencord/cordvtn/api/core/CordVtnStore.java
index 42b71c8..200358a 100644
--- a/src/main/java/org/opencord/cordvtn/api/CordVtnStore.java
+++ b/src/main/java/org/opencord/cordvtn/api/core/CordVtnStore.java
@@ -13,9 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.core;
 
 import org.onosproject.store.Store;
+import org.opencord.cordvtn.api.net.NetworkId;
+import org.opencord.cordvtn.api.net.PortId;
+import org.opencord.cordvtn.api.net.SubnetId;
+import org.opencord.cordvtn.api.net.VtnNetwork;
+import org.opencord.cordvtn.api.net.VtnNetworkEvent;
+import org.opencord.cordvtn.api.net.VtnPort;
 import org.openstack4j.model.network.Network;
 import org.openstack4j.model.network.Port;
 import org.openstack4j.model.network.Subnet;
diff --git a/src/main/java/org/opencord/cordvtn/api/CordVtnStoreDelegate.java b/src/main/java/org/opencord/cordvtn/api/core/CordVtnStoreDelegate.java
similarity index 89%
rename from src/main/java/org/opencord/cordvtn/api/CordVtnStoreDelegate.java
rename to src/main/java/org/opencord/cordvtn/api/core/CordVtnStoreDelegate.java
index eb43f92..d5d7b91 100644
--- a/src/main/java/org/opencord/cordvtn/api/CordVtnStoreDelegate.java
+++ b/src/main/java/org/opencord/cordvtn/api/core/CordVtnStoreDelegate.java
@@ -13,9 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.core;
 
 import org.onosproject.store.StoreDelegate;
+import org.opencord.cordvtn.api.net.VtnNetworkEvent;
 
 /**
  * VTN store delegate abstraction.
diff --git a/src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java b/src/main/java/org/opencord/cordvtn/api/core/package-info.java
similarity index 76%
copy from src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java
copy to src/main/java/org/opencord/cordvtn/api/core/package-info.java
index be78ef0..a6337c7 100644
--- a/src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java
+++ b/src/main/java/org/opencord/cordvtn/api/core/package-info.java
@@ -13,12 +13,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
-
-import org.onosproject.event.EventListener;
 
 /**
- * Listener for vtn network event.
+ * CORD VTN core API definitions.
  */
-public interface VtnNetworkListener extends EventListener<VtnNetworkEvent> {
-}
+package org.opencord.cordvtn.api.core;
\ No newline at end of file
diff --git a/src/main/java/org/opencord/cordvtn/api/Dependency.java b/src/main/java/org/opencord/cordvtn/api/dependency/Dependency.java
similarity index 97%
rename from src/main/java/org/opencord/cordvtn/api/Dependency.java
rename to src/main/java/org/opencord/cordvtn/api/dependency/Dependency.java
index bbe7ef5..775fb16 100644
--- a/src/main/java/org/opencord/cordvtn/api/Dependency.java
+++ b/src/main/java/org/opencord/cordvtn/api/dependency/Dependency.java
@@ -13,9 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.dependency;
 
 import com.google.common.base.MoreObjects;
+import org.opencord.cordvtn.api.net.VtnNetwork;
 
 import java.util.Objects;
 
diff --git a/src/main/java/org/opencord/cordvtn/api/DependencyService.java b/src/main/java/org/opencord/cordvtn/api/dependency/DependencyService.java
similarity index 88%
rename from src/main/java/org/opencord/cordvtn/api/DependencyService.java
rename to src/main/java/org/opencord/cordvtn/api/dependency/DependencyService.java
index 08ad58d..3323d66 100644
--- a/src/main/java/org/opencord/cordvtn/api/DependencyService.java
+++ b/src/main/java/org/opencord/cordvtn/api/dependency/DependencyService.java
@@ -13,9 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.dependency;
 
-import org.opencord.cordvtn.api.Dependency.Type;
+import org.opencord.cordvtn.api.dependency.Dependency.Type;
+import org.opencord.cordvtn.api.net.NetworkId;
 
 /**
  * Provides dependency services.
diff --git a/src/main/java/org/opencord/cordvtn/api/CordVtnStoreDelegate.java b/src/main/java/org/opencord/cordvtn/api/dependency/package-info.java
similarity index 75%
copy from src/main/java/org/opencord/cordvtn/api/CordVtnStoreDelegate.java
copy to src/main/java/org/opencord/cordvtn/api/dependency/package-info.java
index eb43f92..7e6589f 100644
--- a/src/main/java/org/opencord/cordvtn/api/CordVtnStoreDelegate.java
+++ b/src/main/java/org/opencord/cordvtn/api/dependency/package-info.java
@@ -13,12 +13,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
-
-import org.onosproject.store.StoreDelegate;
 
 /**
- * VTN store delegate abstraction.
+ * CORD VTN service dependency API definitions.
  */
-public interface CordVtnStoreDelegate extends StoreDelegate<VtnNetworkEvent> {
-}
+package org.opencord.cordvtn.api.dependency;
\ No newline at end of file
diff --git a/src/main/java/org/opencord/cordvtn/api/Instance.java b/src/main/java/org/opencord/cordvtn/api/instance/Instance.java
similarity index 95%
rename from src/main/java/org/opencord/cordvtn/api/Instance.java
rename to src/main/java/org/opencord/cordvtn/api/instance/Instance.java
index d81440e..79e478f 100644
--- a/src/main/java/org/opencord/cordvtn/api/Instance.java
+++ b/src/main/java/org/opencord/cordvtn/api/instance/Instance.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.instance;
 
 import com.google.common.base.Strings;
 import org.onlab.packet.Ip4Address;
@@ -21,7 +21,9 @@
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.Host;
 import org.onosproject.net.PortNumber;
-import org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType;
+import org.opencord.cordvtn.api.net.NetworkId;
+import org.opencord.cordvtn.api.net.PortId;
+import org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType;
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
diff --git a/src/main/java/org/opencord/cordvtn/api/InstanceHandler.java b/src/main/java/org/opencord/cordvtn/api/instance/InstanceHandler.java
similarity index 96%
rename from src/main/java/org/opencord/cordvtn/api/InstanceHandler.java
rename to src/main/java/org/opencord/cordvtn/api/instance/InstanceHandler.java
index a2364fd..6e1cdc9 100644
--- a/src/main/java/org/opencord/cordvtn/api/InstanceHandler.java
+++ b/src/main/java/org/opencord/cordvtn/api/instance/InstanceHandler.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.instance;
 
 /**
  * Handles service instance detection and removal.
diff --git a/src/main/java/org/opencord/cordvtn/api/InstanceService.java b/src/main/java/org/opencord/cordvtn/api/instance/InstanceService.java
similarity index 97%
rename from src/main/java/org/opencord/cordvtn/api/InstanceService.java
rename to src/main/java/org/opencord/cordvtn/api/instance/InstanceService.java
index add968f..4d3ccca 100644
--- a/src/main/java/org/opencord/cordvtn/api/InstanceService.java
+++ b/src/main/java/org/opencord/cordvtn/api/instance/InstanceService.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.instance;
 
 import org.onosproject.net.ConnectPoint;
 import org.onosproject.net.HostId;
diff --git a/src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java b/src/main/java/org/opencord/cordvtn/api/instance/package-info.java
similarity index 76%
copy from src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java
copy to src/main/java/org/opencord/cordvtn/api/instance/package-info.java
index be78ef0..bdb3900 100644
--- a/src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java
+++ b/src/main/java/org/opencord/cordvtn/api/instance/package-info.java
@@ -13,12 +13,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
-
-import org.onosproject.event.EventListener;
 
 /**
- * Listener for vtn network event.
+ * CORD VTN service instance API definitions.
  */
-public interface VtnNetworkListener extends EventListener<VtnNetworkEvent> {
-}
+package org.opencord.cordvtn.api.instance;
\ No newline at end of file
diff --git a/src/main/java/org/opencord/cordvtn/api/AddressPair.java b/src/main/java/org/opencord/cordvtn/api/net/AddressPair.java
similarity index 98%
rename from src/main/java/org/opencord/cordvtn/api/AddressPair.java
rename to src/main/java/org/opencord/cordvtn/api/net/AddressPair.java
index 03ad60f..ee13628 100644
--- a/src/main/java/org/opencord/cordvtn/api/AddressPair.java
+++ b/src/main/java/org/opencord/cordvtn/api/net/AddressPair.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.net;
 
 import com.google.common.base.MoreObjects;
 import org.onlab.packet.IpAddress;
diff --git a/src/main/java/org/opencord/cordvtn/api/NetworkId.java b/src/main/java/org/opencord/cordvtn/api/net/NetworkId.java
similarity index 96%
rename from src/main/java/org/opencord/cordvtn/api/NetworkId.java
rename to src/main/java/org/opencord/cordvtn/api/net/NetworkId.java
index 843be7e..8bdafee 100644
--- a/src/main/java/org/opencord/cordvtn/api/NetworkId.java
+++ b/src/main/java/org/opencord/cordvtn/api/net/NetworkId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.net;
 
 import org.onlab.util.Identifier;
 
diff --git a/src/main/java/org/opencord/cordvtn/api/NetworkService.java b/src/main/java/org/opencord/cordvtn/api/net/NetworkService.java
similarity index 97%
rename from src/main/java/org/opencord/cordvtn/api/NetworkService.java
rename to src/main/java/org/opencord/cordvtn/api/net/NetworkService.java
index aa178e5..ac505e2 100644
--- a/src/main/java/org/opencord/cordvtn/api/NetworkService.java
+++ b/src/main/java/org/opencord/cordvtn/api/net/NetworkService.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.net;
 
 import org.openstack4j.model.network.Network;
 import org.openstack4j.model.network.Port;
diff --git a/src/main/java/org/opencord/cordvtn/api/PortId.java b/src/main/java/org/opencord/cordvtn/api/net/PortId.java
similarity index 96%
rename from src/main/java/org/opencord/cordvtn/api/PortId.java
rename to src/main/java/org/opencord/cordvtn/api/net/PortId.java
index 6162070..10c9e8d 100644
--- a/src/main/java/org/opencord/cordvtn/api/PortId.java
+++ b/src/main/java/org/opencord/cordvtn/api/net/PortId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.net;
 
 import org.onlab.util.Identifier;
 
diff --git a/src/main/java/org/opencord/cordvtn/api/ProviderNetwork.java b/src/main/java/org/opencord/cordvtn/api/net/ProviderNetwork.java
similarity index 95%
rename from src/main/java/org/opencord/cordvtn/api/ProviderNetwork.java
rename to src/main/java/org/opencord/cordvtn/api/net/ProviderNetwork.java
index 9caabbd..37fce8c 100644
--- a/src/main/java/org/opencord/cordvtn/api/ProviderNetwork.java
+++ b/src/main/java/org/opencord/cordvtn/api/net/ProviderNetwork.java
@@ -13,10 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.net;
 
 import com.google.common.base.MoreObjects;
-import org.opencord.cordvtn.api.Dependency.Type;
+import org.opencord.cordvtn.api.dependency.Dependency.Type;
 
 import java.util.Objects;
 
diff --git a/src/main/java/org/opencord/cordvtn/api/SegmentId.java b/src/main/java/org/opencord/cordvtn/api/net/SegmentId.java
similarity index 96%
rename from src/main/java/org/opencord/cordvtn/api/SegmentId.java
rename to src/main/java/org/opencord/cordvtn/api/net/SegmentId.java
index e4101b3..45568d1 100644
--- a/src/main/java/org/opencord/cordvtn/api/SegmentId.java
+++ b/src/main/java/org/opencord/cordvtn/api/net/SegmentId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.net;
 
 import org.onlab.util.Identifier;
 
diff --git a/src/main/java/org/opencord/cordvtn/api/ServiceNetwork.java b/src/main/java/org/opencord/cordvtn/api/net/ServiceNetwork.java
similarity index 98%
rename from src/main/java/org/opencord/cordvtn/api/ServiceNetwork.java
rename to src/main/java/org/opencord/cordvtn/api/net/ServiceNetwork.java
index 90de69c..cbdde5f 100644
--- a/src/main/java/org/opencord/cordvtn/api/ServiceNetwork.java
+++ b/src/main/java/org/opencord/cordvtn/api/net/ServiceNetwork.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.net;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableSet;
diff --git a/src/main/java/org/opencord/cordvtn/api/ServiceNetworkService.java b/src/main/java/org/opencord/cordvtn/api/net/ServiceNetworkService.java
similarity index 97%
rename from src/main/java/org/opencord/cordvtn/api/ServiceNetworkService.java
rename to src/main/java/org/opencord/cordvtn/api/net/ServiceNetworkService.java
index 1b387b7..173f723 100644
--- a/src/main/java/org/opencord/cordvtn/api/ServiceNetworkService.java
+++ b/src/main/java/org/opencord/cordvtn/api/net/ServiceNetworkService.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.net;
 
 import java.util.Set;
 
diff --git a/src/main/java/org/opencord/cordvtn/api/ServicePort.java b/src/main/java/org/opencord/cordvtn/api/net/ServicePort.java
similarity index 98%
rename from src/main/java/org/opencord/cordvtn/api/ServicePort.java
rename to src/main/java/org/opencord/cordvtn/api/net/ServicePort.java
index a6e048b..99a79ff 100644
--- a/src/main/java/org/opencord/cordvtn/api/ServicePort.java
+++ b/src/main/java/org/opencord/cordvtn/api/net/ServicePort.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.net;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableSet;
diff --git a/src/main/java/org/opencord/cordvtn/api/SubnetId.java b/src/main/java/org/opencord/cordvtn/api/net/SubnetId.java
similarity index 96%
rename from src/main/java/org/opencord/cordvtn/api/SubnetId.java
rename to src/main/java/org/opencord/cordvtn/api/net/SubnetId.java
index e98ebd8..b7c49bd 100644
--- a/src/main/java/org/opencord/cordvtn/api/SubnetId.java
+++ b/src/main/java/org/opencord/cordvtn/api/net/SubnetId.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.net;
 
 import org.onlab.util.Identifier;
 
diff --git a/src/main/java/org/opencord/cordvtn/api/VtnNetwork.java b/src/main/java/org/opencord/cordvtn/api/net/VtnNetwork.java
similarity index 97%
rename from src/main/java/org/opencord/cordvtn/api/VtnNetwork.java
rename to src/main/java/org/opencord/cordvtn/api/net/VtnNetwork.java
index 55fb595..84cac7b 100644
--- a/src/main/java/org/opencord/cordvtn/api/VtnNetwork.java
+++ b/src/main/java/org/opencord/cordvtn/api/net/VtnNetwork.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.net;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Strings;
@@ -21,6 +21,7 @@
 import com.google.common.collect.Sets;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.IpPrefix;
+import org.opencord.cordvtn.api.dependency.Dependency;
 import org.openstack4j.model.network.Network;
 import org.openstack4j.model.network.Subnet;
 
@@ -29,12 +30,12 @@
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
-import static org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType.PRIVATE;
+import static org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType.PRIVATE;
 
 /**
  * Representation of a network holding the basic virtual network and additional
  * service network specific information.
- * All the services making use of {@link CordVtnService} are intended to interface
+ * All the services making use of CordVtnService are intended to interface
  * with this VtnNetwork, and not allowed to directly access {@link Network} or
  * {@link ServiceNetwork}.
  */
diff --git a/src/main/java/org/opencord/cordvtn/api/VtnNetworkEvent.java b/src/main/java/org/opencord/cordvtn/api/net/VtnNetworkEvent.java
similarity index 98%
rename from src/main/java/org/opencord/cordvtn/api/VtnNetworkEvent.java
rename to src/main/java/org/opencord/cordvtn/api/net/VtnNetworkEvent.java
index c1d6fef..c6f187f 100644
--- a/src/main/java/org/opencord/cordvtn/api/VtnNetworkEvent.java
+++ b/src/main/java/org/opencord/cordvtn/api/net/VtnNetworkEvent.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.net;
 
 import org.joda.time.LocalDateTime;
 import org.onosproject.event.AbstractEvent;
diff --git a/src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java b/src/main/java/org/opencord/cordvtn/api/net/VtnNetworkListener.java
similarity index 95%
rename from src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java
rename to src/main/java/org/opencord/cordvtn/api/net/VtnNetworkListener.java
index be78ef0..62cf834 100644
--- a/src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java
+++ b/src/main/java/org/opencord/cordvtn/api/net/VtnNetworkListener.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.net;
 
 import org.onosproject.event.EventListener;
 
diff --git a/src/main/java/org/opencord/cordvtn/api/VtnPort.java b/src/main/java/org/opencord/cordvtn/api/net/VtnPort.java
similarity index 98%
rename from src/main/java/org/opencord/cordvtn/api/VtnPort.java
rename to src/main/java/org/opencord/cordvtn/api/net/VtnPort.java
index af1bd99..0ec1078 100644
--- a/src/main/java/org/opencord/cordvtn/api/VtnPort.java
+++ b/src/main/java/org/opencord/cordvtn/api/net/VtnPort.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.net;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableSet;
@@ -32,7 +32,7 @@
 /**
  * Representation of a port holding the basic virtual port and additional service
  * port specific information.
- * All the services making use of {@link CordVtnService} are intended to interface
+ * All the services making use of CordVtnService are intended to interface
  * with this VtnPort, and not allowed to directly access {@link Port} or
  * {@link ServicePort}.
  */
diff --git a/src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java b/src/main/java/org/opencord/cordvtn/api/net/package-info.java
similarity index 76%
copy from src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java
copy to src/main/java/org/opencord/cordvtn/api/net/package-info.java
index be78ef0..2f8f49a 100644
--- a/src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java
+++ b/src/main/java/org/opencord/cordvtn/api/net/package-info.java
@@ -13,12 +13,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
-
-import org.onosproject.event.EventListener;
 
 /**
- * Listener for vtn network event.
+ * CORD VTN network API definitions.
  */
-public interface VtnNetworkListener extends EventListener<VtnNetworkEvent> {
-}
+package org.opencord.cordvtn.api.net;
\ No newline at end of file
diff --git a/src/main/java/org/opencord/cordvtn/api/ConnectionHandler.java b/src/main/java/org/opencord/cordvtn/api/node/ConnectionHandler.java
similarity index 96%
rename from src/main/java/org/opencord/cordvtn/api/ConnectionHandler.java
rename to src/main/java/org/opencord/cordvtn/api/node/ConnectionHandler.java
index 6f032fa..f3e3ad4 100644
--- a/src/main/java/org/opencord/cordvtn/api/ConnectionHandler.java
+++ b/src/main/java/org/opencord/cordvtn/api/node/ConnectionHandler.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.node;
 
 /**
  * Entity capable of handling a subject connected and disconnected situation.
diff --git a/src/main/java/org/opencord/cordvtn/api/CordVtnNode.java b/src/main/java/org/opencord/cordvtn/api/node/CordVtnNode.java
similarity index 99%
rename from src/main/java/org/opencord/cordvtn/api/CordVtnNode.java
rename to src/main/java/org/opencord/cordvtn/api/node/CordVtnNode.java
index 206220f..2c3916c 100644
--- a/src/main/java/org/opencord/cordvtn/api/CordVtnNode.java
+++ b/src/main/java/org/opencord/cordvtn/api/node/CordVtnNode.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.node;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Strings;
diff --git a/src/main/java/org/opencord/cordvtn/api/CordVtnNodeState.java b/src/main/java/org/opencord/cordvtn/api/node/CordVtnNodeState.java
similarity index 95%
rename from src/main/java/org/opencord/cordvtn/api/CordVtnNodeState.java
rename to src/main/java/org/opencord/cordvtn/api/node/CordVtnNodeState.java
index c95e270..e3d9cd5 100644
--- a/src/main/java/org/opencord/cordvtn/api/CordVtnNodeState.java
+++ b/src/main/java/org/opencord/cordvtn/api/node/CordVtnNodeState.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.node;
 
 /**
  * Entity that defines possible init state of the cordvtn node.
diff --git a/src/main/java/org/opencord/cordvtn/api/NetworkAddress.java b/src/main/java/org/opencord/cordvtn/api/node/NetworkAddress.java
similarity index 98%
rename from src/main/java/org/opencord/cordvtn/api/NetworkAddress.java
rename to src/main/java/org/opencord/cordvtn/api/node/NetworkAddress.java
index 551d084..93bcb7a 100644
--- a/src/main/java/org/opencord/cordvtn/api/NetworkAddress.java
+++ b/src/main/java/org/opencord/cordvtn/api/node/NetworkAddress.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.node;
 
 import com.google.common.base.MoreObjects;
 import org.onlab.packet.IpAddress;
diff --git a/src/main/java/org/opencord/cordvtn/api/SshAccessInfo.java b/src/main/java/org/opencord/cordvtn/api/node/SshAccessInfo.java
similarity index 98%
rename from src/main/java/org/opencord/cordvtn/api/SshAccessInfo.java
rename to src/main/java/org/opencord/cordvtn/api/node/SshAccessInfo.java
index 3a85978..6ed720e 100644
--- a/src/main/java/org/opencord/cordvtn/api/SshAccessInfo.java
+++ b/src/main/java/org/opencord/cordvtn/api/node/SshAccessInfo.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
+package org.opencord.cordvtn.api.node;
 
 import com.google.common.base.MoreObjects;
 import org.onlab.packet.Ip4Address;
diff --git a/src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java b/src/main/java/org/opencord/cordvtn/api/node/package-info.java
similarity index 76%
copy from src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java
copy to src/main/java/org/opencord/cordvtn/api/node/package-info.java
index be78ef0..261cbc7 100644
--- a/src/main/java/org/opencord/cordvtn/api/VtnNetworkListener.java
+++ b/src/main/java/org/opencord/cordvtn/api/node/package-info.java
@@ -13,12 +13,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.opencord.cordvtn.api;
-
-import org.onosproject.event.EventListener;
 
 /**
- * Listener for vtn network event.
+ * CORD VTN node API definitions.
  */
-public interface VtnNetworkListener extends EventListener<VtnNetworkEvent> {
-}
+package org.opencord.cordvtn.api.node;
\ No newline at end of file
diff --git a/src/main/java/org/opencord/cordvtn/cli/CordVtnNodeCheckCommand.java b/src/main/java/org/opencord/cordvtn/cli/CordVtnNodeCheckCommand.java
index d0189e4..17dbb45 100644
--- a/src/main/java/org/opencord/cordvtn/cli/CordVtnNodeCheckCommand.java
+++ b/src/main/java/org/opencord/cordvtn/cli/CordVtnNodeCheckCommand.java
@@ -23,7 +23,7 @@
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.Port;
-import org.opencord.cordvtn.api.CordVtnNode;
+import org.opencord.cordvtn.api.node.CordVtnNode;
 import org.opencord.cordvtn.impl.CordVtnNodeManager;
 import org.onosproject.net.Device;
 import org.onosproject.net.device.DeviceService;
diff --git a/src/main/java/org/opencord/cordvtn/cli/CordVtnNodeDeleteCommand.java b/src/main/java/org/opencord/cordvtn/cli/CordVtnNodeDeleteCommand.java
index 19a4b8a..d098efe 100644
--- a/src/main/java/org/opencord/cordvtn/cli/CordVtnNodeDeleteCommand.java
+++ b/src/main/java/org/opencord/cordvtn/cli/CordVtnNodeDeleteCommand.java
@@ -20,7 +20,7 @@
 import org.apache.karaf.shell.commands.Command;
 import org.onosproject.cli.AbstractShellCommand;
 import org.opencord.cordvtn.impl.CordVtnNodeManager;
-import org.opencord.cordvtn.api.CordVtnNode;
+import org.opencord.cordvtn.api.node.CordVtnNode;
 
 import java.util.NoSuchElementException;
 
diff --git a/src/main/java/org/opencord/cordvtn/cli/CordVtnNodeInitCommand.java b/src/main/java/org/opencord/cordvtn/cli/CordVtnNodeInitCommand.java
index 4ec2040..c7da215 100644
--- a/src/main/java/org/opencord/cordvtn/cli/CordVtnNodeInitCommand.java
+++ b/src/main/java/org/opencord/cordvtn/cli/CordVtnNodeInitCommand.java
@@ -20,7 +20,7 @@
 import org.apache.karaf.shell.commands.Command;
 import org.onosproject.cli.AbstractShellCommand;
 import org.opencord.cordvtn.impl.CordVtnNodeManager;
-import org.opencord.cordvtn.api.CordVtnNode;
+import org.opencord.cordvtn.api.node.CordVtnNode;
 
 import java.util.NoSuchElementException;
 
diff --git a/src/main/java/org/opencord/cordvtn/cli/CordVtnNodeListCommand.java b/src/main/java/org/opencord/cordvtn/cli/CordVtnNodeListCommand.java
index 0b25e7b..1a40397 100644
--- a/src/main/java/org/opencord/cordvtn/cli/CordVtnNodeListCommand.java
+++ b/src/main/java/org/opencord/cordvtn/cli/CordVtnNodeListCommand.java
@@ -22,7 +22,7 @@
 import org.apache.karaf.shell.commands.Command;
 import org.onosproject.cli.AbstractShellCommand;
 import org.opencord.cordvtn.impl.CordVtnNodeManager;
-import org.opencord.cordvtn.api.CordVtnNode;
+import org.opencord.cordvtn.api.node.CordVtnNode;
 
 import java.util.Collections;
 import java.util.List;
diff --git a/src/main/java/org/opencord/cordvtn/codec/CodecRegistrator.java b/src/main/java/org/opencord/cordvtn/codec/CodecRegistrator.java
index 0352f98..f9e1f3f 100644
--- a/src/main/java/org/opencord/cordvtn/codec/CodecRegistrator.java
+++ b/src/main/java/org/opencord/cordvtn/codec/CodecRegistrator.java
@@ -21,8 +21,8 @@
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.onosproject.codec.CodecService;
-import org.opencord.cordvtn.api.ServiceNetwork;
-import org.opencord.cordvtn.api.ServicePort;
+import org.opencord.cordvtn.api.net.ServiceNetwork;
+import org.opencord.cordvtn.api.net.ServicePort;
 import org.slf4j.Logger;
 
 import static org.slf4j.LoggerFactory.getLogger;
diff --git a/src/main/java/org/opencord/cordvtn/codec/ServiceNetworkCodec.java b/src/main/java/org/opencord/cordvtn/codec/ServiceNetworkCodec.java
index 37df2d0..b2ab70f 100644
--- a/src/main/java/org/opencord/cordvtn/codec/ServiceNetworkCodec.java
+++ b/src/main/java/org/opencord/cordvtn/codec/ServiceNetworkCodec.java
@@ -20,19 +20,19 @@
 import com.google.common.collect.Sets;
 import org.onosproject.codec.CodecContext;
 import org.onosproject.codec.JsonCodec;
-import org.opencord.cordvtn.api.Dependency;
-import org.opencord.cordvtn.api.NetworkId;
-import org.opencord.cordvtn.api.ProviderNetwork;
-import org.opencord.cordvtn.api.ServiceNetwork;
-import org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType;
+import org.opencord.cordvtn.api.dependency.Dependency;
+import org.opencord.cordvtn.api.net.NetworkId;
+import org.opencord.cordvtn.api.net.ProviderNetwork;
+import org.opencord.cordvtn.api.net.ServiceNetwork;
+import org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType;
 
 import java.util.Set;
 
 import static java.lang.Boolean.FALSE;
 import static java.lang.Boolean.TRUE;
-import static org.opencord.cordvtn.api.Dependency.Type.BIDIRECTIONAL;
-import static org.opencord.cordvtn.api.Dependency.Type.UNIDIRECTIONAL;
-import static org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType.valueOf;
+import static org.opencord.cordvtn.api.dependency.Dependency.Type.BIDIRECTIONAL;
+import static org.opencord.cordvtn.api.dependency.Dependency.Type.UNIDIRECTIONAL;
+import static org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType.valueOf;
 
 /**
  * Service network JSON codec.
diff --git a/src/main/java/org/opencord/cordvtn/codec/ServicePortCodec.java b/src/main/java/org/opencord/cordvtn/codec/ServicePortCodec.java
index 91681d0..9630ee8 100644
--- a/src/main/java/org/opencord/cordvtn/codec/ServicePortCodec.java
+++ b/src/main/java/org/opencord/cordvtn/codec/ServicePortCodec.java
@@ -23,9 +23,9 @@
 import org.onlab.packet.VlanId;
 import org.onosproject.codec.CodecContext;
 import org.onosproject.codec.JsonCodec;
-import org.opencord.cordvtn.api.AddressPair;
-import org.opencord.cordvtn.api.PortId;
-import org.opencord.cordvtn.api.ServicePort;
+import org.opencord.cordvtn.api.net.AddressPair;
+import org.opencord.cordvtn.api.net.PortId;
+import org.opencord.cordvtn.api.net.ServicePort;
 
 import java.util.Set;
 
diff --git a/src/main/java/org/opencord/cordvtn/impl/CordVtnArpProxy.java b/src/main/java/org/opencord/cordvtn/impl/CordVtnArpProxy.java
index 15269dd..c2e2a62 100644
--- a/src/main/java/org/opencord/cordvtn/impl/CordVtnArpProxy.java
+++ b/src/main/java/org/opencord/cordvtn/impl/CordVtnArpProxy.java
@@ -34,8 +34,8 @@
 import org.onosproject.net.config.NetworkConfigListener;
 import org.onosproject.net.config.NetworkConfigRegistry;
 import org.onosproject.net.packet.PacketProcessor;
-import org.opencord.cordvtn.api.CordVtnConfig;
-import org.opencord.cordvtn.api.Instance;
+import org.opencord.cordvtn.api.config.CordVtnConfig;
+import org.opencord.cordvtn.api.instance.Instance;
 import org.onosproject.net.Host;
 import org.onosproject.net.flow.DefaultTrafficSelector;
 import org.onosproject.net.flow.DefaultTrafficTreatment;
@@ -45,7 +45,7 @@
 import org.onosproject.net.packet.PacketContext;
 import org.onosproject.net.packet.PacketPriority;
 import org.onosproject.net.packet.PacketService;
-import org.opencord.cordvtn.api.VtnNetwork;
+import org.opencord.cordvtn.api.net.VtnNetwork;
 import org.opencord.cordvtn.impl.handler.AbstractInstanceHandler;
 import org.slf4j.Logger;
 
@@ -55,7 +55,7 @@
 import java.util.Set;
 
 import static com.google.common.base.Preconditions.checkNotNull;
-import static org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType.*;
+import static org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType.*;
 import static org.slf4j.LoggerFactory.getLogger;
 
 /**
diff --git a/src/main/java/org/opencord/cordvtn/impl/CordVtnManager.java b/src/main/java/org/opencord/cordvtn/impl/CordVtnManager.java
index d7aead8..43cf3d8 100644
--- a/src/main/java/org/opencord/cordvtn/impl/CordVtnManager.java
+++ b/src/main/java/org/opencord/cordvtn/impl/CordVtnManager.java
@@ -26,22 +26,22 @@
 import org.onosproject.net.Host;
 import org.onosproject.net.HostId;
 import org.onosproject.net.host.HostService;
-import org.opencord.cordvtn.api.CordVtnAdminService;
-import org.opencord.cordvtn.api.CordVtnService;
-import org.opencord.cordvtn.api.CordVtnStore;
-import org.opencord.cordvtn.api.CordVtnStoreDelegate;
-import org.opencord.cordvtn.api.Instance;
-import org.opencord.cordvtn.api.NetworkId;
-import org.opencord.cordvtn.api.NetworkService;
-import org.opencord.cordvtn.api.PortId;
-import org.opencord.cordvtn.api.ServiceNetwork;
-import org.opencord.cordvtn.api.ServiceNetworkService;
-import org.opencord.cordvtn.api.ServicePort;
-import org.opencord.cordvtn.api.SubnetId;
-import org.opencord.cordvtn.api.VtnNetwork;
-import org.opencord.cordvtn.api.VtnNetworkEvent;
-import org.opencord.cordvtn.api.VtnNetworkListener;
-import org.opencord.cordvtn.api.VtnPort;
+import org.opencord.cordvtn.api.core.CordVtnAdminService;
+import org.opencord.cordvtn.api.core.CordVtnService;
+import org.opencord.cordvtn.api.core.CordVtnStore;
+import org.opencord.cordvtn.api.core.CordVtnStoreDelegate;
+import org.opencord.cordvtn.api.instance.Instance;
+import org.opencord.cordvtn.api.net.NetworkId;
+import org.opencord.cordvtn.api.net.NetworkService;
+import org.opencord.cordvtn.api.net.PortId;
+import org.opencord.cordvtn.api.net.ServiceNetwork;
+import org.opencord.cordvtn.api.net.ServiceNetworkService;
+import org.opencord.cordvtn.api.net.ServicePort;
+import org.opencord.cordvtn.api.net.SubnetId;
+import org.opencord.cordvtn.api.net.VtnNetwork;
+import org.opencord.cordvtn.api.net.VtnNetworkEvent;
+import org.opencord.cordvtn.api.net.VtnNetworkListener;
+import org.opencord.cordvtn.api.net.VtnPort;
 import org.openstack4j.model.network.Network;
 import org.openstack4j.model.network.Port;
 import org.openstack4j.model.network.Subnet;
diff --git a/src/main/java/org/opencord/cordvtn/impl/CordVtnNodeManager.java b/src/main/java/org/opencord/cordvtn/impl/CordVtnNodeManager.java
index ff43f93..b1858a3 100644
--- a/src/main/java/org/opencord/cordvtn/impl/CordVtnNodeManager.java
+++ b/src/main/java/org/opencord/cordvtn/impl/CordVtnNodeManager.java
@@ -36,13 +36,13 @@
 import org.onosproject.net.behaviour.TunnelKeys;
 import org.onosproject.net.config.ConfigFactory;
 import org.onosproject.net.config.basics.SubjectFactories;
-import org.opencord.cordvtn.api.ConnectionHandler;
-import org.opencord.cordvtn.api.CordVtnConfig;
-import org.opencord.cordvtn.api.CordVtnNode;
-import org.opencord.cordvtn.api.CordVtnNodeState;
-import org.opencord.cordvtn.api.InstanceService;
-import org.opencord.cordvtn.api.NetworkAddress;
-import org.opencord.cordvtn.api.SshAccessInfo;
+import org.opencord.cordvtn.api.node.ConnectionHandler;
+import org.opencord.cordvtn.api.config.CordVtnConfig;
+import org.opencord.cordvtn.api.node.CordVtnNode;
+import org.opencord.cordvtn.api.node.CordVtnNodeState;
+import org.opencord.cordvtn.api.instance.InstanceService;
+import org.opencord.cordvtn.api.node.NetworkAddress;
+import org.opencord.cordvtn.api.node.SshAccessInfo;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.CoreService;
 import org.onosproject.net.ConnectPoint;
diff --git a/src/main/java/org/opencord/cordvtn/impl/CordVtnPipeline.java b/src/main/java/org/opencord/cordvtn/impl/CordVtnPipeline.java
index 0bea32e..af6f27c 100644
--- a/src/main/java/org/opencord/cordvtn/impl/CordVtnPipeline.java
+++ b/src/main/java/org/opencord/cordvtn/impl/CordVtnPipeline.java
@@ -30,7 +30,7 @@
 import org.onosproject.net.AnnotationKeys;
 import org.onosproject.net.Port;
 import org.opencord.cordvtn.api.Constants;
-import org.opencord.cordvtn.api.CordVtnNode;
+import org.opencord.cordvtn.api.node.CordVtnNode;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.CoreService;
 import org.onosproject.net.Device;
diff --git a/src/main/java/org/opencord/cordvtn/impl/DependencyManager.java b/src/main/java/org/opencord/cordvtn/impl/DependencyManager.java
index 3a36b53..fa9c36a 100644
--- a/src/main/java/org/opencord/cordvtn/impl/DependencyManager.java
+++ b/src/main/java/org/opencord/cordvtn/impl/DependencyManager.java
@@ -38,13 +38,13 @@
 import org.onosproject.store.service.MapEventListener;
 import org.onosproject.store.service.Serializer;
 import org.onosproject.store.service.StorageService;
-import org.opencord.cordvtn.api.CordVtnAdminService;
 import org.onosproject.store.service.Versioned;
-import org.opencord.cordvtn.api.CordVtnNode;
-import org.opencord.cordvtn.api.Dependency;
-import org.opencord.cordvtn.api.Dependency.Type;
-import org.opencord.cordvtn.api.DependencyService;
-import org.opencord.cordvtn.api.Instance;
+import org.opencord.cordvtn.api.core.CordVtnAdminService;
+import org.opencord.cordvtn.api.node.CordVtnNode;
+import org.opencord.cordvtn.api.dependency.Dependency;
+import org.opencord.cordvtn.api.dependency.Dependency.Type;
+import org.opencord.cordvtn.api.dependency.DependencyService;
+import org.opencord.cordvtn.api.instance.Instance;
 import org.onosproject.core.DefaultGroupId;
 import org.onosproject.core.GroupId;
 import org.onosproject.net.DeviceId;
@@ -64,13 +64,13 @@
 import org.onosproject.net.group.GroupDescription;
 import org.onosproject.net.group.GroupKey;
 import org.onosproject.net.group.GroupService;
-import org.opencord.cordvtn.api.NetworkId;
-import org.opencord.cordvtn.api.ProviderNetwork;
-import org.opencord.cordvtn.api.SegmentId;
-import org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType;
-import org.opencord.cordvtn.api.VtnNetwork;
-import org.opencord.cordvtn.api.VtnNetworkEvent;
-import org.opencord.cordvtn.api.VtnNetworkListener;
+import org.opencord.cordvtn.api.net.NetworkId;
+import org.opencord.cordvtn.api.net.ProviderNetwork;
+import org.opencord.cordvtn.api.net.SegmentId;
+import org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType;
+import org.opencord.cordvtn.api.net.VtnNetwork;
+import org.opencord.cordvtn.api.net.VtnNetworkEvent;
+import org.opencord.cordvtn.api.net.VtnNetworkListener;
 import org.opencord.cordvtn.impl.handler.AbstractInstanceHandler;
 import org.slf4j.Logger;
 
@@ -81,8 +81,8 @@
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import static org.opencord.cordvtn.api.Dependency.Type.BIDIRECTIONAL;
-import static org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType.ACCESS_AGENT;
+import static org.opencord.cordvtn.api.dependency.Dependency.Type.BIDIRECTIONAL;
+import static org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType.ACCESS_AGENT;
 import static org.opencord.cordvtn.impl.CordVtnPipeline.*;
 import static org.onosproject.net.group.DefaultGroupBucket.createSelectGroupBucket;
 import static org.slf4j.LoggerFactory.getLogger;
diff --git a/src/main/java/org/opencord/cordvtn/impl/DistributedCordVtnStore.java b/src/main/java/org/opencord/cordvtn/impl/DistributedCordVtnStore.java
index a3b41cc..6846b6f 100644
--- a/src/main/java/org/opencord/cordvtn/impl/DistributedCordVtnStore.java
+++ b/src/main/java/org/opencord/cordvtn/impl/DistributedCordVtnStore.java
@@ -26,7 +26,7 @@
 import org.onosproject.store.service.MapEvent;
 import org.onosproject.store.service.MapEventListener;
 import org.onosproject.store.service.Versioned;
-import org.opencord.cordvtn.api.CordVtnStore;
+import org.opencord.cordvtn.api.core.CordVtnStore;
 import org.onlab.util.KryoNamespace;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.CoreService;
@@ -34,18 +34,18 @@
 import org.onosproject.store.service.ConsistentMap;
 import org.onosproject.store.service.Serializer;
 import org.onosproject.store.service.StorageService;
-import org.opencord.cordvtn.api.AddressPair;
-import org.opencord.cordvtn.api.CordVtnStoreDelegate;
-import org.opencord.cordvtn.api.Dependency;
-import org.opencord.cordvtn.api.NetworkId;
-import org.opencord.cordvtn.api.PortId;
-import org.opencord.cordvtn.api.ProviderNetwork;
-import org.opencord.cordvtn.api.SegmentId;
-import org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType;
-import org.opencord.cordvtn.api.SubnetId;
-import org.opencord.cordvtn.api.VtnNetwork;
-import org.opencord.cordvtn.api.VtnNetworkEvent;
-import org.opencord.cordvtn.api.VtnPort;
+import org.opencord.cordvtn.api.net.AddressPair;
+import org.opencord.cordvtn.api.core.CordVtnStoreDelegate;
+import org.opencord.cordvtn.api.dependency.Dependency;
+import org.opencord.cordvtn.api.net.NetworkId;
+import org.opencord.cordvtn.api.net.PortId;
+import org.opencord.cordvtn.api.net.ProviderNetwork;
+import org.opencord.cordvtn.api.net.SegmentId;
+import org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType;
+import org.opencord.cordvtn.api.net.SubnetId;
+import org.opencord.cordvtn.api.net.VtnNetwork;
+import org.opencord.cordvtn.api.net.VtnNetworkEvent;
+import org.opencord.cordvtn.api.net.VtnPort;
 import org.openstack4j.model.network.IPVersionType;
 import org.openstack4j.model.network.Network;
 import org.openstack4j.model.network.NetworkType;
@@ -70,7 +70,7 @@
 import static java.util.concurrent.Executors.newSingleThreadExecutor;
 import static org.onlab.util.Tools.groupedThreads;
 import static org.opencord.cordvtn.api.Constants.CORDVTN_APP_ID;
-import static org.opencord.cordvtn.api.VtnNetworkEvent.Type.*;
+import static org.opencord.cordvtn.api.net.VtnNetworkEvent.Type.*;
 import static org.slf4j.LoggerFactory.getLogger;
 
 /**
diff --git a/src/main/java/org/opencord/cordvtn/impl/InstanceManager.java b/src/main/java/org/opencord/cordvtn/impl/InstanceManager.java
index 4671c4d..fee0931 100644
--- a/src/main/java/org/opencord/cordvtn/impl/InstanceManager.java
+++ b/src/main/java/org/opencord/cordvtn/impl/InstanceManager.java
@@ -30,8 +30,8 @@
 import org.onosproject.cluster.NodeId;
 import org.opencord.cordconfig.CordConfigService;
 import org.opencord.cordconfig.access.AccessAgentData;
-import org.opencord.cordvtn.api.CordVtnService;
-import org.opencord.cordvtn.api.Instance;
+import org.opencord.cordvtn.api.core.CordVtnService;
+import org.opencord.cordvtn.api.instance.Instance;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.CoreService;
 import org.onosproject.dhcp.DhcpService;
@@ -51,12 +51,12 @@
 import org.onosproject.net.host.HostService;
 import org.onosproject.net.provider.AbstractProvider;
 import org.onosproject.net.provider.ProviderId;
-import org.opencord.cordvtn.api.InstanceService;
-import org.opencord.cordvtn.api.PortId;
-import org.opencord.cordvtn.api.VtnNetwork;
-import org.opencord.cordvtn.api.VtnNetworkEvent;
-import org.opencord.cordvtn.api.VtnNetworkListener;
-import org.opencord.cordvtn.api.VtnPort;
+import org.opencord.cordvtn.api.instance.InstanceService;
+import org.opencord.cordvtn.api.net.PortId;
+import org.opencord.cordvtn.api.net.VtnNetwork;
+import org.opencord.cordvtn.api.net.VtnNetworkEvent;
+import org.opencord.cordvtn.api.net.VtnNetworkListener;
+import org.opencord.cordvtn.api.net.VtnPort;
 import org.slf4j.Logger;
 
 import java.util.Date;
@@ -69,9 +69,9 @@
 import static org.onosproject.dhcp.IpAssignment.AssignmentStatus.Option_RangeNotEnforced;
 import static org.onosproject.net.AnnotationKeys.PORT_NAME;
 import static org.opencord.cordvtn.api.Constants.*;
-import static org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType.ACCESS_AGENT;
-import static org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType.MANAGEMENT_HOST;
-import static org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType.MANAGEMENT_LOCAL;
+import static org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType.ACCESS_AGENT;
+import static org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType.MANAGEMENT_HOST;
+import static org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType.MANAGEMENT_LOCAL;
 import static org.slf4j.LoggerFactory.getLogger;
 
 /**
diff --git a/src/main/java/org/opencord/cordvtn/impl/RemoteIpCommandUtil.java b/src/main/java/org/opencord/cordvtn/impl/RemoteIpCommandUtil.java
index 0be4fc4..e357a27 100644
--- a/src/main/java/org/opencord/cordvtn/impl/RemoteIpCommandUtil.java
+++ b/src/main/java/org/opencord/cordvtn/impl/RemoteIpCommandUtil.java
@@ -23,8 +23,8 @@
 import com.jcraft.jsch.JSchException;
 import com.jcraft.jsch.Session;
 import org.onlab.packet.IpAddress;
-import org.opencord.cordvtn.api.NetworkAddress;
-import org.opencord.cordvtn.api.SshAccessInfo;
+import org.opencord.cordvtn.api.node.NetworkAddress;
+import org.opencord.cordvtn.api.node.SshAccessInfo;
 import org.slf4j.Logger;
 
 import java.io.IOException;
diff --git a/src/main/java/org/opencord/cordvtn/impl/handler/AbstractInstanceHandler.java b/src/main/java/org/opencord/cordvtn/impl/handler/AbstractInstanceHandler.java
index d76f56a..01ccb91 100644
--- a/src/main/java/org/opencord/cordvtn/impl/handler/AbstractInstanceHandler.java
+++ b/src/main/java/org/opencord/cordvtn/impl/handler/AbstractInstanceHandler.java
@@ -26,13 +26,13 @@
 import org.onosproject.net.host.HostListener;
 import org.onosproject.net.host.HostService;
 import org.opencord.cordvtn.api.Constants;
-import org.opencord.cordvtn.api.CordVtnService;
-import org.opencord.cordvtn.api.Instance;
-import org.opencord.cordvtn.api.InstanceHandler;
-import org.opencord.cordvtn.api.NetworkId;
-import org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType;
-import org.opencord.cordvtn.api.VtnNetwork;
-import org.opencord.cordvtn.api.VtnPort;
+import org.opencord.cordvtn.api.core.CordVtnService;
+import org.opencord.cordvtn.api.instance.Instance;
+import org.opencord.cordvtn.api.instance.InstanceHandler;
+import org.opencord.cordvtn.api.net.NetworkId;
+import org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType;
+import org.opencord.cordvtn.api.net.VtnNetwork;
+import org.opencord.cordvtn.api.net.VtnPort;
 import org.slf4j.Logger;
 
 import java.util.Objects;
diff --git a/src/main/java/org/opencord/cordvtn/impl/handler/AccessAgentInstanceHandler.java b/src/main/java/org/opencord/cordvtn/impl/handler/AccessAgentInstanceHandler.java
index 8a818b8..aee4d13 100644
--- a/src/main/java/org/opencord/cordvtn/impl/handler/AccessAgentInstanceHandler.java
+++ b/src/main/java/org/opencord/cordvtn/impl/handler/AccessAgentInstanceHandler.java
@@ -28,12 +28,12 @@
 import org.onosproject.net.flow.FlowRule;
 import org.onosproject.net.flow.TrafficSelector;
 import org.onosproject.net.flow.TrafficTreatment;
-import org.opencord.cordvtn.api.Instance;
-import org.opencord.cordvtn.api.InstanceHandler;
+import org.opencord.cordvtn.api.instance.Instance;
+import org.opencord.cordvtn.api.instance.InstanceHandler;
 import org.opencord.cordvtn.impl.CordVtnNodeManager;
 import org.opencord.cordvtn.impl.CordVtnPipeline;
 
-import static org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType.ACCESS_AGENT;
+import static org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType.ACCESS_AGENT;
 
 /**
  * Provides network connectivity for access agent instances.
diff --git a/src/main/java/org/opencord/cordvtn/impl/handler/DefaultInstanceHandler.java b/src/main/java/org/opencord/cordvtn/impl/handler/DefaultInstanceHandler.java
index 8cda98c..c33bb78 100644
--- a/src/main/java/org/opencord/cordvtn/impl/handler/DefaultInstanceHandler.java
+++ b/src/main/java/org/opencord/cordvtn/impl/handler/DefaultInstanceHandler.java
@@ -32,16 +32,16 @@
 import org.onosproject.net.flow.TrafficSelector;
 import org.onosproject.net.flow.TrafficTreatment;
 import org.onosproject.net.flow.instructions.ExtensionTreatment;
-import org.opencord.cordvtn.api.VtnNetwork;
-import org.opencord.cordvtn.api.CordVtnNode;
-import org.opencord.cordvtn.api.Instance;
-import org.opencord.cordvtn.api.InstanceHandler;
+import org.opencord.cordvtn.api.net.VtnNetwork;
+import org.opencord.cordvtn.api.node.CordVtnNode;
+import org.opencord.cordvtn.api.instance.Instance;
+import org.opencord.cordvtn.api.instance.InstanceHandler;
 import org.opencord.cordvtn.impl.CordVtnNodeManager;
 import org.opencord.cordvtn.impl.CordVtnPipeline;
 
-import static org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType.PRIVATE;
-import static org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType.PUBLIC;
-import static org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType.VSG;
+import static org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType.PRIVATE;
+import static org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType.PUBLIC;
+import static org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType.VSG;
 
 /**
  * Provides network connectivity for default service instances.
diff --git a/src/main/java/org/opencord/cordvtn/impl/handler/ManagementInstanceHandler.java b/src/main/java/org/opencord/cordvtn/impl/handler/ManagementInstanceHandler.java
index 496ed66..dd3eb81 100644
--- a/src/main/java/org/opencord/cordvtn/impl/handler/ManagementInstanceHandler.java
+++ b/src/main/java/org/opencord/cordvtn/impl/handler/ManagementInstanceHandler.java
@@ -29,14 +29,14 @@
 import org.onosproject.net.flow.FlowRule;
 import org.onosproject.net.flow.TrafficSelector;
 import org.onosproject.net.flow.TrafficTreatment;
-import org.opencord.cordvtn.api.Instance;
-import org.opencord.cordvtn.api.InstanceHandler;
-import org.opencord.cordvtn.api.VtnNetwork;
+import org.opencord.cordvtn.api.instance.Instance;
+import org.opencord.cordvtn.api.instance.InstanceHandler;
+import org.opencord.cordvtn.api.net.VtnNetwork;
 import org.opencord.cordvtn.impl.CordVtnNodeManager;
 import org.opencord.cordvtn.impl.CordVtnPipeline;
 
-import static org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType.MANAGEMENT_HOST;
-import static org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType.MANAGEMENT_LOCAL;
+import static org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType.MANAGEMENT_HOST;
+import static org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType.MANAGEMENT_LOCAL;
 
 /**
  * Provides local management network connectivity to the instance. The instance
diff --git a/src/main/java/org/opencord/cordvtn/impl/handler/VsgInstanceHandler.java b/src/main/java/org/opencord/cordvtn/impl/handler/VsgInstanceHandler.java
index 76cef03..694d53a 100644
--- a/src/main/java/org/opencord/cordvtn/impl/handler/VsgInstanceHandler.java
+++ b/src/main/java/org/opencord/cordvtn/impl/handler/VsgInstanceHandler.java
@@ -29,10 +29,10 @@
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 import org.onosproject.net.Host;
-import org.opencord.cordvtn.api.AddressPair;
-import org.opencord.cordvtn.api.InstanceService;
-import org.opencord.cordvtn.api.Instance;
-import org.opencord.cordvtn.api.InstanceHandler;
+import org.opencord.cordvtn.api.net.AddressPair;
+import org.opencord.cordvtn.api.instance.InstanceService;
+import org.opencord.cordvtn.api.instance.Instance;
+import org.opencord.cordvtn.api.instance.InstanceHandler;
 import org.onosproject.net.DefaultAnnotations;
 import org.onosproject.net.HostId;
 import org.onosproject.net.PortNumber;
@@ -50,7 +50,7 @@
 import org.onosproject.net.flow.instructions.L2ModificationInstruction;
 import org.onosproject.net.host.DefaultHostDescription;
 import org.onosproject.net.host.HostDescription;
-import org.opencord.cordvtn.api.VtnPort;
+import org.opencord.cordvtn.api.net.VtnPort;
 import org.opencord.cordvtn.impl.CordVtnNodeManager;
 import org.opencord.cordvtn.impl.CordVtnPipeline;
 
@@ -59,7 +59,7 @@
 
 import static org.onosproject.net.flow.criteria.Criterion.Type.IPV4_DST;
 import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.VLAN_PUSH;
-import static org.opencord.cordvtn.api.ServiceNetwork.ServiceNetworkType.VSG;
+import static org.opencord.cordvtn.api.net.ServiceNetwork.ServiceNetworkType.VSG;
 
 /**
  * Provides network connectivity for vSG instances.
diff --git a/src/main/java/org/opencord/cordvtn/rest/NeutronMl2NetworksWebResource.java b/src/main/java/org/opencord/cordvtn/rest/NeutronMl2NetworksWebResource.java
index f29c12b..5baf99b 100644
--- a/src/main/java/org/opencord/cordvtn/rest/NeutronMl2NetworksWebResource.java
+++ b/src/main/java/org/opencord/cordvtn/rest/NeutronMl2NetworksWebResource.java
@@ -20,8 +20,8 @@
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.onlab.osgi.DefaultServiceDirectory;
 import org.onosproject.rest.AbstractWebResource;
-import org.opencord.cordvtn.api.CordVtnAdminService;
-import org.opencord.cordvtn.api.NetworkId;
+import org.opencord.cordvtn.api.core.CordVtnAdminService;
+import org.opencord.cordvtn.api.net.NetworkId;
 import org.openstack4j.core.transport.ObjectMapperSingleton;
 import org.openstack4j.model.network.Network;
 import org.openstack4j.openstack.networking.domain.NeutronNetwork;
diff --git a/src/main/java/org/opencord/cordvtn/rest/NeutronMl2PortsWebResource.java b/src/main/java/org/opencord/cordvtn/rest/NeutronMl2PortsWebResource.java
index a784330..d1b52ce 100644
--- a/src/main/java/org/opencord/cordvtn/rest/NeutronMl2PortsWebResource.java
+++ b/src/main/java/org/opencord/cordvtn/rest/NeutronMl2PortsWebResource.java
@@ -19,8 +19,8 @@
 import com.fasterxml.jackson.databind.node.ArrayNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.onlab.osgi.DefaultServiceDirectory;
-import org.opencord.cordvtn.api.CordVtnAdminService;
-import org.opencord.cordvtn.api.PortId;
+import org.opencord.cordvtn.api.core.CordVtnAdminService;
+import org.opencord.cordvtn.api.net.PortId;
 import org.onosproject.rest.AbstractWebResource;
 import org.openstack4j.core.transport.ObjectMapperSingleton;
 import org.openstack4j.model.network.Port;
diff --git a/src/main/java/org/opencord/cordvtn/rest/NeutronMl2SubnetsWebResource.java b/src/main/java/org/opencord/cordvtn/rest/NeutronMl2SubnetsWebResource.java
index 3d50604..aa374db 100644
--- a/src/main/java/org/opencord/cordvtn/rest/NeutronMl2SubnetsWebResource.java
+++ b/src/main/java/org/opencord/cordvtn/rest/NeutronMl2SubnetsWebResource.java
@@ -20,8 +20,8 @@
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.onlab.osgi.DefaultServiceDirectory;
 import org.onosproject.rest.AbstractWebResource;
-import org.opencord.cordvtn.api.CordVtnAdminService;
-import org.opencord.cordvtn.api.SubnetId;
+import org.opencord.cordvtn.api.core.CordVtnAdminService;
+import org.opencord.cordvtn.api.net.SubnetId;
 import org.openstack4j.core.transport.ObjectMapperSingleton;
 import org.openstack4j.model.network.Subnet;
 import org.openstack4j.openstack.networking.domain.NeutronSubnet;
diff --git a/src/main/java/org/opencord/cordvtn/rest/ServiceDependencyWebResource.java b/src/main/java/org/opencord/cordvtn/rest/ServiceDependencyWebResource.java
index c194174..be4a94b 100644
--- a/src/main/java/org/opencord/cordvtn/rest/ServiceDependencyWebResource.java
+++ b/src/main/java/org/opencord/cordvtn/rest/ServiceDependencyWebResource.java
@@ -16,9 +16,9 @@
 package org.opencord.cordvtn.rest;
 
 import org.onosproject.rest.AbstractWebResource;
-import org.opencord.cordvtn.api.Dependency.Type;
-import org.opencord.cordvtn.api.DependencyService;
-import org.opencord.cordvtn.api.NetworkId;
+import org.opencord.cordvtn.api.dependency.Dependency.Type;
+import org.opencord.cordvtn.api.dependency.DependencyService;
+import org.opencord.cordvtn.api.net.NetworkId;
 
 import javax.ws.rs.DELETE;
 import javax.ws.rs.POST;
@@ -29,8 +29,8 @@
 import javax.ws.rs.core.Response;
 import java.util.Objects;
 
-import static org.opencord.cordvtn.api.Dependency.Type.BIDIRECTIONAL;
-import static org.opencord.cordvtn.api.Dependency.Type.UNIDIRECTIONAL;
+import static org.opencord.cordvtn.api.dependency.Dependency.Type.BIDIRECTIONAL;
+import static org.opencord.cordvtn.api.dependency.Dependency.Type.UNIDIRECTIONAL;
 
 /**
  * Manages service dependency.
diff --git a/src/main/java/org/opencord/cordvtn/rest/ServiceNetworkWebResource.java b/src/main/java/org/opencord/cordvtn/rest/ServiceNetworkWebResource.java
index 765a7aa..6a468a6 100644
--- a/src/main/java/org/opencord/cordvtn/rest/ServiceNetworkWebResource.java
+++ b/src/main/java/org/opencord/cordvtn/rest/ServiceNetworkWebResource.java
@@ -19,9 +19,9 @@
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.onlab.osgi.DefaultServiceDirectory;
 import org.onosproject.rest.AbstractWebResource;
-import org.opencord.cordvtn.api.CordVtnAdminService;
-import org.opencord.cordvtn.api.NetworkId;
-import org.opencord.cordvtn.api.ServiceNetwork;
+import org.opencord.cordvtn.api.core.CordVtnAdminService;
+import org.opencord.cordvtn.api.net.NetworkId;
+import org.opencord.cordvtn.api.net.ServiceNetwork;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/src/main/java/org/opencord/cordvtn/rest/ServicePortWebResource.java b/src/main/java/org/opencord/cordvtn/rest/ServicePortWebResource.java
index 67df9a2..b3a0580 100644
--- a/src/main/java/org/opencord/cordvtn/rest/ServicePortWebResource.java
+++ b/src/main/java/org/opencord/cordvtn/rest/ServicePortWebResource.java
@@ -19,9 +19,9 @@
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.onlab.osgi.DefaultServiceDirectory;
 import org.onosproject.rest.AbstractWebResource;
-import org.opencord.cordvtn.api.CordVtnAdminService;
-import org.opencord.cordvtn.api.PortId;
-import org.opencord.cordvtn.api.ServicePort;
+import org.opencord.cordvtn.api.core.CordVtnAdminService;
+import org.opencord.cordvtn.api.net.PortId;
+import org.opencord.cordvtn.api.net.ServicePort;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;