diff --git a/core/api/src/main/java/org/onlab/onos/ApplicationId.java b/core/api/src/main/java/org/onlab/onos/core/ApplicationId.java
similarity index 90%
rename from core/api/src/main/java/org/onlab/onos/ApplicationId.java
rename to core/api/src/main/java/org/onlab/onos/core/ApplicationId.java
index 3fab53f..10c0c75 100644
--- a/core/api/src/main/java/org/onlab/onos/ApplicationId.java
+++ b/core/api/src/main/java/org/onlab/onos/core/ApplicationId.java
@@ -1,4 +1,4 @@
-package org.onlab.onos;
+package org.onlab.onos.core;
 
 
 /**
diff --git a/core/api/src/main/java/org/onlab/onos/core/ApplicationIdStore.java b/core/api/src/main/java/org/onlab/onos/core/ApplicationIdStore.java
new file mode 100644
index 0000000..ccb1414
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/core/ApplicationIdStore.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.onlab.onos.core;
+
+import java.util.Set;
+
+/**
+ * Manages application IDs.
+ */
+public interface ApplicationIdStore {
+
+    /**
+     * Returns the set of currently registered application identifiers.
+     *
+     * @return set of application ids
+     */
+    Set<ApplicationId> getAppIds();
+
+    /**
+     * Returns an existing application id from a given id.
+     * @param id the short value of the id
+     * @return an application id
+     */
+    ApplicationId getAppId(Short id);
+
+    /**
+     * Registers a new application by its name, which is expected
+     * to follow the reverse DNS convention, e.g.
+     * {@code org.flying.circus.app}
+     *
+     * @param identifier string identifier
+     * @return the application id
+     */
+    ApplicationId registerApplication(String identifier);
+
+}
diff --git a/core/api/src/main/java/org/onlab/onos/CoreService.java b/core/api/src/main/java/org/onlab/onos/core/CoreService.java
similarity index 76%
rename from core/api/src/main/java/org/onlab/onos/CoreService.java
rename to core/api/src/main/java/org/onlab/onos/core/CoreService.java
index 3302888..0de33b3 100644
--- a/core/api/src/main/java/org/onlab/onos/CoreService.java
+++ b/core/api/src/main/java/org/onlab/onos/core/CoreService.java
@@ -1,4 +1,6 @@
-package org.onlab.onos;
+package org.onlab.onos.core;
+
+import java.util.Set;
 
 /**
  * Service for interacting with the core system of the controller.
@@ -13,6 +15,20 @@
     Version version();
 
     /**
+     * Returns the set of currently registered application identifiers.
+     *
+     * @return set of application ids
+     */
+    Set<ApplicationId> getAppIds();
+
+    /**
+     * Returns an existing application id from a given id.
+     * @param id the short value of the id
+     * @return an application id
+     */
+    ApplicationId getAppId(Short id);
+
+    /**
      * Registers a new application by its name, which is expected
      * to follow the reverse DNS convention, e.g.
      * {@code org.flying.circus.app}
@@ -22,11 +38,4 @@
      */
     ApplicationId registerApplication(String identifier);
 
-    /**
-     * Returns an existing application id from a given id.
-     * @param id the short value of the id
-     * @return an application id
-     */
-    ApplicationId getAppId(Short id);
-
 }
diff --git a/core/api/src/main/java/org/onlab/onos/core/DefaultApplicationId.java b/core/api/src/main/java/org/onlab/onos/core/DefaultApplicationId.java
new file mode 100644
index 0000000..b5ecccc
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/core/DefaultApplicationId.java
@@ -0,0 +1,64 @@
+package org.onlab.onos.core;
+
+import java.util.Objects;
+
+import static com.google.common.base.MoreObjects.toStringHelper;
+
+/**
+ * Application identifier.
+ */
+public class DefaultApplicationId implements ApplicationId {
+
+    private final short id;
+    private final String name;
+
+    /**
+     * Creates a new application ID.
+     *
+     * @param id   application identifier
+     * @param name application name
+     */
+    public DefaultApplicationId(Short id, String name) {
+        this.id = id;
+        this.name = name;
+    }
+
+    // Constructor for serializers.
+    private DefaultApplicationId() {
+        this.id = 0;
+        this.name = null;
+    }
+
+    @Override
+    public short id() {
+        return id;
+    }
+
+    @Override
+    public String name() {
+        return name;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(id);
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj instanceof DefaultApplicationId) {
+            DefaultApplicationId other = (DefaultApplicationId) obj;
+            return Objects.equals(this.id, other.id);
+        }
+        return false;
+    }
+
+    @Override
+    public String toString() {
+        return toStringHelper(this).add("id", id).add("name", name).toString();
+    }
+
+}
diff --git a/core/api/src/main/java/org/onlab/onos/Version.java b/core/api/src/main/java/org/onlab/onos/core/Version.java
similarity index 98%
rename from core/api/src/main/java/org/onlab/onos/Version.java
rename to core/api/src/main/java/org/onlab/onos/core/Version.java
index 5d071b7..72fd509 100644
--- a/core/api/src/main/java/org/onlab/onos/Version.java
+++ b/core/api/src/main/java/org/onlab/onos/core/Version.java
@@ -1,4 +1,4 @@
-package org.onlab.onos;
+package org.onlab.onos.core;
 
 import java.util.Objects;
 
diff --git a/core/api/src/main/java/org/onlab/onos/core/package-info.java b/core/api/src/main/java/org/onlab/onos/core/package-info.java
new file mode 100644
index 0000000..fb97734
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/core/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * ONOS Core API definitions.
+ */
+package org.onlab.onos.core;
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/DefaultFlowRule.java b/core/api/src/main/java/org/onlab/onos/net/flow/DefaultFlowRule.java
index 53a94bb..deb654e 100644
--- a/core/api/src/main/java/org/onlab/onos/net/flow/DefaultFlowRule.java
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/DefaultFlowRule.java
@@ -23,7 +23,7 @@
 
 import java.util.Objects;
 
-import org.onlab.onos.ApplicationId;
+import org.onlab.onos.core.ApplicationId;
 import org.onlab.onos.net.DeviceId;
 import org.slf4j.Logger;
 
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProvider.java b/core/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProvider.java
index ae74ac5..8748fe8 100644
--- a/core/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProvider.java
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProvider.java
@@ -18,7 +18,7 @@
  */
 package org.onlab.onos.net.flow;
 
-import org.onlab.onos.ApplicationId;
+import org.onlab.onos.core.ApplicationId;
 import org.onlab.onos.net.provider.Provider;
 
 import com.google.common.util.concurrent.ListenableFuture;
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/FlowRuleService.java b/core/api/src/main/java/org/onlab/onos/net/flow/FlowRuleService.java
index 0b6f6c7..6fbc053 100644
--- a/core/api/src/main/java/org/onlab/onos/net/flow/FlowRuleService.java
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/FlowRuleService.java
@@ -20,7 +20,7 @@
 
 import java.util.concurrent.Future;
 
-import org.onlab.onos.ApplicationId;
+import org.onlab.onos.core.ApplicationId;
 import org.onlab.onos.net.DeviceId;
 
 /**
diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/ConnectivityIntent.java b/core/api/src/main/java/org/onlab/onos/net/intent/ConnectivityIntent.java
index 710ae4e..d15a15a 100644
--- a/core/api/src/main/java/org/onlab/onos/net/intent/ConnectivityIntent.java
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/ConnectivityIntent.java
@@ -19,7 +19,7 @@
 package org.onlab.onos.net.intent;
 
 import com.google.common.collect.ImmutableSet;
-import org.onlab.onos.ApplicationId;
+import org.onlab.onos.core.ApplicationId;
 import org.onlab.onos.net.Link;
 import org.onlab.onos.net.NetworkResource;
 import org.onlab.onos.net.flow.TrafficSelector;
diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/HostToHostIntent.java b/core/api/src/main/java/org/onlab/onos/net/intent/HostToHostIntent.java
index 795f681..3bf5e4e 100644
--- a/core/api/src/main/java/org/onlab/onos/net/intent/HostToHostIntent.java
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/HostToHostIntent.java
@@ -19,7 +19,7 @@
 package org.onlab.onos.net.intent;
 
 import com.google.common.base.MoreObjects;
-import org.onlab.onos.ApplicationId;
+import org.onlab.onos.core.ApplicationId;
 import org.onlab.onos.net.HostId;
 import org.onlab.onos.net.flow.TrafficSelector;
 import org.onlab.onos.net.flow.TrafficTreatment;
diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/Intent.java b/core/api/src/main/java/org/onlab/onos/net/intent/Intent.java
index b5fefb2..32ed36f 100644
--- a/core/api/src/main/java/org/onlab/onos/net/intent/Intent.java
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/Intent.java
@@ -18,7 +18,7 @@
  */
 package org.onlab.onos.net.intent;
 
-import org.onlab.onos.ApplicationId;
+import org.onlab.onos.core.ApplicationId;
 import org.onlab.onos.net.NetworkResource;
 import org.onlab.onos.net.flow.BatchOperationTarget;
 
diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/LinkCollectionIntent.java b/core/api/src/main/java/org/onlab/onos/net/intent/LinkCollectionIntent.java
index 65d1ba8..c328a4e 100644
--- a/core/api/src/main/java/org/onlab/onos/net/intent/LinkCollectionIntent.java
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/LinkCollectionIntent.java
@@ -19,7 +19,7 @@
 package org.onlab.onos.net.intent;
 
 import com.google.common.base.MoreObjects;
-import org.onlab.onos.ApplicationId;
+import org.onlab.onos.core.ApplicationId;
 import org.onlab.onos.net.ConnectPoint;
 import org.onlab.onos.net.Link;
 import org.onlab.onos.net.flow.TrafficSelector;
diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/MultiPointToSinglePointIntent.java b/core/api/src/main/java/org/onlab/onos/net/intent/MultiPointToSinglePointIntent.java
index 13324d0..9766f8f 100644
--- a/core/api/src/main/java/org/onlab/onos/net/intent/MultiPointToSinglePointIntent.java
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/MultiPointToSinglePointIntent.java
@@ -20,7 +20,7 @@
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.Sets;
-import org.onlab.onos.ApplicationId;
+import org.onlab.onos.core.ApplicationId;
 import org.onlab.onos.net.ConnectPoint;
 import org.onlab.onos.net.flow.TrafficSelector;
 import org.onlab.onos.net.flow.TrafficTreatment;
diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/OpticalConnectivityIntent.java b/core/api/src/main/java/org/onlab/onos/net/intent/OpticalConnectivityIntent.java
index 6e595c5..d22700b 100644
--- a/core/api/src/main/java/org/onlab/onos/net/intent/OpticalConnectivityIntent.java
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/OpticalConnectivityIntent.java
@@ -1,6 +1,6 @@
 package org.onlab.onos.net.intent;
 
-import org.onlab.onos.ApplicationId;
+import org.onlab.onos.core.ApplicationId;
 import org.onlab.onos.net.ConnectPoint;
 
 /**
diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/OpticalPathIntent.java b/core/api/src/main/java/org/onlab/onos/net/intent/OpticalPathIntent.java
index edf3d5c..e9bf826 100644
--- a/core/api/src/main/java/org/onlab/onos/net/intent/OpticalPathIntent.java
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/OpticalPathIntent.java
@@ -2,7 +2,7 @@
 
 import java.util.Collection;
 
-import org.onlab.onos.ApplicationId;
+import org.onlab.onos.core.ApplicationId;
 import org.onlab.onos.net.ConnectPoint;
 import org.onlab.onos.net.Link;
 import org.onlab.onos.net.NetworkResource;
diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/PathIntent.java b/core/api/src/main/java/org/onlab/onos/net/intent/PathIntent.java
index d7996c9..639e68b 100644
--- a/core/api/src/main/java/org/onlab/onos/net/intent/PathIntent.java
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/PathIntent.java
@@ -19,7 +19,7 @@
 package org.onlab.onos.net.intent;
 
 import com.google.common.base.MoreObjects;
-import org.onlab.onos.ApplicationId;
+import org.onlab.onos.core.ApplicationId;
 import org.onlab.onos.net.Path;
 import org.onlab.onos.net.flow.TrafficSelector;
 import org.onlab.onos.net.flow.TrafficTreatment;
diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/PointToPointIntent.java b/core/api/src/main/java/org/onlab/onos/net/intent/PointToPointIntent.java
index 7b91cdf..7c69887 100644
--- a/core/api/src/main/java/org/onlab/onos/net/intent/PointToPointIntent.java
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/PointToPointIntent.java
@@ -19,7 +19,7 @@
 package org.onlab.onos.net.intent;
 
 import com.google.common.base.MoreObjects;
-import org.onlab.onos.ApplicationId;
+import org.onlab.onos.core.ApplicationId;
 import org.onlab.onos.net.ConnectPoint;
 import org.onlab.onos.net.flow.TrafficSelector;
 import org.onlab.onos.net.flow.TrafficTreatment;
diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/SinglePointToMultiPointIntent.java b/core/api/src/main/java/org/onlab/onos/net/intent/SinglePointToMultiPointIntent.java
index e5790d0..f08c1d7 100644
--- a/core/api/src/main/java/org/onlab/onos/net/intent/SinglePointToMultiPointIntent.java
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/SinglePointToMultiPointIntent.java
@@ -20,7 +20,7 @@
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.Sets;
-import org.onlab.onos.ApplicationId;
+import org.onlab.onos.core.ApplicationId;
 import org.onlab.onos.net.ConnectPoint;
 import org.onlab.onos.net.flow.TrafficSelector;
 import org.onlab.onos.net.flow.TrafficTreatment;
diff --git a/core/api/src/main/java/org/onlab/onos/package-info.java b/core/api/src/main/java/org/onlab/onos/package-info.java
deleted file mode 100644
index 65ef461..0000000
--- a/core/api/src/main/java/org/onlab/onos/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-/**
- * ONOS Core API definitions.
- */
-package org.onlab.onos;
diff --git a/core/api/src/test/java/org/onlab/onos/TestApplicationId.java b/core/api/src/test/java/org/onlab/onos/TestApplicationId.java
index e8c0304..cb16219 100644
--- a/core/api/src/test/java/org/onlab/onos/TestApplicationId.java
+++ b/core/api/src/test/java/org/onlab/onos/TestApplicationId.java
@@ -1,5 +1,7 @@
 package org.onlab.onos;
 
+import org.onlab.onos.core.ApplicationId;
+
 import java.util.Objects;
 
 /**
diff --git a/core/api/src/test/java/org/onlab/onos/VersionTest.java b/core/api/src/test/java/org/onlab/onos/VersionTest.java
index e357f9d..14b69d7 100644
--- a/core/api/src/test/java/org/onlab/onos/VersionTest.java
+++ b/core/api/src/test/java/org/onlab/onos/VersionTest.java
@@ -2,9 +2,10 @@
 
 import com.google.common.testing.EqualsTester;
 import org.junit.Test;
+import org.onlab.onos.core.Version;
 
 import static org.junit.Assert.*;
-import static org.onlab.onos.Version.version;
+import static org.onlab.onos.core.Version.version;
 
 /**
  * Tests of the version descriptor.
diff --git a/core/api/src/test/java/org/onlab/onos/net/intent/ConnectivityIntentTest.java b/core/api/src/test/java/org/onlab/onos/net/intent/ConnectivityIntentTest.java
index 03b101a..3d92e87 100644
--- a/core/api/src/test/java/org/onlab/onos/net/intent/ConnectivityIntentTest.java
+++ b/core/api/src/test/java/org/onlab/onos/net/intent/ConnectivityIntentTest.java
@@ -2,7 +2,7 @@
 
 import java.util.Set;
 
-import org.onlab.onos.ApplicationId;
+import org.onlab.onos.core.ApplicationId;
 import org.onlab.onos.TestApplicationId;
 import org.onlab.onos.net.ConnectPoint;
 import org.onlab.onos.net.DeviceId;
