diff --git a/net/api/pom.xml b/net/api/pom.xml
new file mode 100644
index 0000000..f74d08e
--- /dev/null
+++ b/net/api/pom.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onlab.onos</groupId>
+        <artifactId>onos-net</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>onos-api</artifactId>
+    <packaging>bundle</packaging>
+
+    <description>ONOS network control API</description>
+
+</project>
diff --git a/net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProvider.java b/net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProvider.java
deleted file mode 100644
index acb63b4..0000000
--- a/net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProvider.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package net.onrc.onos.api.flow;
-
-import net.onrc.onos.api.Provider;
-
-/**
- * Abstraction of a flow rule provider.
- */
-public interface FlowRuleProvider extends Provider {
-}
\ No newline at end of file
diff --git a/net/api/src/main/java/net/onrc/onos/api/Description.java b/net/api/src/main/java/org/onlab/onos/net/Description.java
similarity index 79%
rename from net/api/src/main/java/net/onrc/onos/api/Description.java
rename to net/api/src/main/java/org/onlab/onos/net/Description.java
index 8a3c127..38338c1 100644
--- a/net/api/src/main/java/net/onrc/onos/api/Description.java
+++ b/net/api/src/main/java/org/onlab/onos/net/Description.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.api;
+package org.onlab.onos.net;
 
 /**
  * Base abstraction of a piece of information about network elements.
diff --git a/net/api/src/main/java/net/onrc/onos/api/DeviceId.java b/net/api/src/main/java/org/onlab/onos/net/DeviceId.java
similarity index 92%
rename from net/api/src/main/java/net/onrc/onos/api/DeviceId.java
rename to net/api/src/main/java/org/onlab/onos/net/DeviceId.java
index 2210742..ebb3fb7 100644
--- a/net/api/src/main/java/net/onrc/onos/api/DeviceId.java
+++ b/net/api/src/main/java/org/onlab/onos/net/DeviceId.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.api;
+package org.onlab.onos.net;
 
 import java.net.URI;
 
diff --git a/net/api/src/main/java/org/onlab/onos/net/GreetService.java b/net/api/src/main/java/org/onlab/onos/net/GreetService.java
new file mode 100644
index 0000000..09f0d96
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/GreetService.java
@@ -0,0 +1,23 @@
+package org.onlab.onos.net;
+
+/**
+ * Example of a simple service that provides greetings and it
+ * remembers the names which were greeted.
+ */
+public interface GreetService {
+
+    /**
+     * Returns a greeting tailored to the specified name.
+     *
+     * @param name some name
+     * @return greeting
+     */
+    String yo(String name);
+
+    /**
+     * Returns an iterable of names encountered thus far.
+     *
+     * @return iterable of names
+     */
+    Iterable<String> names();
+}
diff --git a/net/api/src/main/java/net/onrc/onos/api/PortNumber.java b/net/api/src/main/java/org/onlab/onos/net/PortNumber.java
similarity index 73%
rename from net/api/src/main/java/net/onrc/onos/api/PortNumber.java
rename to net/api/src/main/java/org/onlab/onos/net/PortNumber.java
index 9a6dddd..4ea4e24 100644
--- a/net/api/src/main/java/net/onrc/onos/api/PortNumber.java
+++ b/net/api/src/main/java/org/onlab/onos/net/PortNumber.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.api;
+package org.onlab.onos.net;
 
 /**
  * Representation of a port number.
diff --git a/net/api/src/main/java/net/onrc/onos/api/Provider.java b/net/api/src/main/java/org/onlab/onos/net/Provider.java
similarity index 82%
rename from net/api/src/main/java/net/onrc/onos/api/Provider.java
rename to net/api/src/main/java/org/onlab/onos/net/Provider.java
index 1b38cf4..eda436b 100644
--- a/net/api/src/main/java/net/onrc/onos/api/Provider.java
+++ b/net/api/src/main/java/org/onlab/onos/net/Provider.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.api;
+package org.onlab.onos.net;
 
 /**
  * Abstraction of a provider of information about network environment.
diff --git a/net/api/src/main/java/net/onrc/onos/api/ProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/ProviderBroker.java
similarity index 95%
rename from net/api/src/main/java/net/onrc/onos/api/ProviderBroker.java
rename to net/api/src/main/java/org/onlab/onos/net/ProviderBroker.java
index ef2d4dc..63d7189 100644
--- a/net/api/src/main/java/net/onrc/onos/api/ProviderBroker.java
+++ b/net/api/src/main/java/org/onlab/onos/net/ProviderBroker.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.api;
+package org.onlab.onos.net;
 
 /**
  * Broker used for registering/unregistering information providers with the core.
diff --git a/net/api/src/main/java/net/onrc/onos/api/ProviderId.java b/net/api/src/main/java/org/onlab/onos/net/ProviderId.java
similarity index 95%
rename from net/api/src/main/java/net/onrc/onos/api/ProviderId.java
rename to net/api/src/main/java/org/onlab/onos/net/ProviderId.java
index 3f29bac..53dd739 100644
--- a/net/api/src/main/java/net/onrc/onos/api/ProviderId.java
+++ b/net/api/src/main/java/org/onlab/onos/net/ProviderId.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.api;
+package org.onlab.onos.net;
 
 /**
  * Notion of provider identity.
diff --git a/net/api/src/main/java/net/onrc/onos/api/ProviderService.java b/net/api/src/main/java/org/onlab/onos/net/ProviderService.java
similarity index 85%
rename from net/api/src/main/java/net/onrc/onos/api/ProviderService.java
rename to net/api/src/main/java/org/onlab/onos/net/ProviderService.java
index add3366..8a7d7e9 100644
--- a/net/api/src/main/java/net/onrc/onos/api/ProviderService.java
+++ b/net/api/src/main/java/org/onlab/onos/net/ProviderService.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.api;
+package org.onlab.onos.net;
 
 /**
  * Abstraction of a service through which providers can inject information
diff --git a/net/api/src/main/java/net/onrc/onos/api/device/DeviceDescription.java b/net/api/src/main/java/org/onlab/onos/net/device/DeviceDescription.java
similarity index 84%
rename from net/api/src/main/java/net/onrc/onos/api/device/DeviceDescription.java
rename to net/api/src/main/java/org/onlab/onos/net/device/DeviceDescription.java
index ef9a694..2b83890 100644
--- a/net/api/src/main/java/net/onrc/onos/api/device/DeviceDescription.java
+++ b/net/api/src/main/java/org/onlab/onos/net/device/DeviceDescription.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.api.device;
+package org.onlab.onos.net.device;
 
-import net.onrc.onos.api.Description;
+import org.onlab.onos.net.Description;
 
 import java.net.URI;
 
@@ -18,4 +18,4 @@
      */
     URI deviceURI();
 
-}
\ No newline at end of file
+}
diff --git a/net/api/src/main/java/net/onrc/onos/api/device/DeviceProvider.java b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProvider.java
similarity index 61%
rename from net/api/src/main/java/net/onrc/onos/api/device/DeviceProvider.java
rename to net/api/src/main/java/org/onlab/onos/net/device/DeviceProvider.java
index c93cab5..04ca92c 100644
--- a/net/api/src/main/java/net/onrc/onos/api/device/DeviceProvider.java
+++ b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProvider.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.api.device;
+package org.onlab.onos.net.device;
 
-import net.onrc.onos.api.Provider;
+import org.onlab.onos.net.Provider;
 
 /**
  * Abstraction of a device information provider.
diff --git a/net/api/src/main/java/net/onrc/onos/api/device/DeviceProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderBroker.java
similarity index 68%
rename from net/api/src/main/java/net/onrc/onos/api/device/DeviceProviderBroker.java
rename to net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderBroker.java
index fdbe322..926f76e 100644
--- a/net/api/src/main/java/net/onrc/onos/api/device/DeviceProviderBroker.java
+++ b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderBroker.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.api.device;
+package org.onlab.onos.net.device;
 
-import net.onrc.onos.api.ProviderBroker;
+import org.onlab.onos.net.ProviderBroker;
 
 /**
  * Abstraction of a device provider brokerage.
diff --git a/net/api/src/main/java/net/onrc/onos/api/device/DeviceProviderService.java b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderService.java
similarity index 93%
rename from net/api/src/main/java/net/onrc/onos/api/device/DeviceProviderService.java
rename to net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderService.java
index b0a33a6..e5ee1f0 100644
--- a/net/api/src/main/java/net/onrc/onos/api/device/DeviceProviderService.java
+++ b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderService.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.api.device;
+package org.onlab.onos.net.device;
 
-import net.onrc.onos.api.ProviderService;
+import org.onlab.onos.net.ProviderService;
 
 import java.util.List;
 
diff --git a/net/api/src/main/java/net/onrc/onos/api/device/PortDescription.java b/net/api/src/main/java/org/onlab/onos/net/device/PortDescription.java
similarity index 84%
rename from net/api/src/main/java/net/onrc/onos/api/device/PortDescription.java
rename to net/api/src/main/java/org/onlab/onos/net/device/PortDescription.java
index 9f5db2a..4c944ab 100644
--- a/net/api/src/main/java/net/onrc/onos/api/device/PortDescription.java
+++ b/net/api/src/main/java/org/onlab/onos/net/device/PortDescription.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.api.device;
+package org.onlab.onos.net.device;
 
 /**
  * Information about a port.
diff --git a/net/api/src/main/java/net/onrc/onos/api/flow/FlowDescription.java b/net/api/src/main/java/org/onlab/onos/net/flow/FlowDescription.java
similarity index 72%
rename from net/api/src/main/java/net/onrc/onos/api/flow/FlowDescription.java
rename to net/api/src/main/java/org/onlab/onos/net/flow/FlowDescription.java
index 80fc051..2a64815 100644
--- a/net/api/src/main/java/net/onrc/onos/api/flow/FlowDescription.java
+++ b/net/api/src/main/java/org/onlab/onos/net/flow/FlowDescription.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.api.flow;
+package org.onlab.onos.net.flow;
 
-package net.onrc.onos.api.Description;
+import org.onlab.onos.net.Description;
 
 /**
  * Information about a flow rule.
diff --git a/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProvider.java b/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProvider.java
new file mode 100644
index 0000000..ac46da8
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProvider.java
@@ -0,0 +1,9 @@
+package org.onlab.onos.net.flow;
+
+import org.onlab.onos.net.Provider;
+
+/**
+ * Abstraction of a flow rule provider.
+ */
+public interface FlowRuleProvider extends Provider {
+}
diff --git a/net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderBroker.java
similarity index 70%
rename from net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProviderBroker.java
rename to net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderBroker.java
index 27f1ca6..c3f7602 100644
--- a/net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProviderBroker.java
+++ b/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderBroker.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.api.flow;
+package org.onlab.onos.net.flow;
 
-import net.onrc.onos.api.ProviderBroker;
+import org.onlab.onos.net.ProviderBroker;
 
 /**
  * Abstraction for a flow rule provider brokerage.
diff --git a/net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProviderService.java b/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderService.java
similarity index 91%
rename from net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProviderService.java
rename to net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderService.java
index 8f90c32..9b26d76 100644
--- a/net/api/src/main/java/net/onrc/onos/api/flow/FlowRuleProviderService.java
+++ b/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderService.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.api.flow;
+package org.onlab.onos.net.flow;
 
-import net.onrc.onos.api.ProviderService;
+import org.onlab.onos.net.ProviderService;
 
 /**
  * Service through which flowrule providers can inject flowrule information into
@@ -32,4 +32,4 @@
      */
     void flowAdded(FlowDescription flowDescription);
 
-}
\ No newline at end of file
+}
diff --git a/net/api/src/main/java/net/onrc/onos/api/host/HostDescription.java b/net/api/src/main/java/org/onlab/onos/net/host/HostDescription.java
similarity index 81%
rename from net/api/src/main/java/net/onrc/onos/api/host/HostDescription.java
rename to net/api/src/main/java/org/onlab/onos/net/host/HostDescription.java
index a397155..e3c67b9 100644
--- a/net/api/src/main/java/net/onrc/onos/api/host/HostDescription.java
+++ b/net/api/src/main/java/org/onlab/onos/net/host/HostDescription.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.api.host;
+package org.onlab.onos.net.host;
 
 /**
  * Information describing host and its location.
@@ -6,6 +6,6 @@
 public interface HostDescription {
 
     // IP, MAC, VLAN-ID, HostLocation -> (ConnectionPoint + timestamp)
-    
 
 }
+
diff --git a/net/api/src/main/java/net/onrc/onos/api/host/HostProvider.java b/net/api/src/main/java/org/onlab/onos/net/host/HostProvider.java
similarity index 66%
rename from net/api/src/main/java/net/onrc/onos/api/host/HostProvider.java
rename to net/api/src/main/java/org/onlab/onos/net/host/HostProvider.java
index f05e26d..1ad2c65 100644
--- a/net/api/src/main/java/net/onrc/onos/api/host/HostProvider.java
+++ b/net/api/src/main/java/org/onlab/onos/net/host/HostProvider.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.api.host;
+package org.onlab.onos.net.host;
 
-import net.onrc.onos.api.Provider;
+import org.onlab.onos.net.Provider;
 
 /**
  * Provider of information about hosts and their location on the network.
diff --git a/net/api/src/main/java/net/onrc/onos/api/host/HostProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/host/HostProviderBroker.java
similarity index 68%
rename from net/api/src/main/java/net/onrc/onos/api/host/HostProviderBroker.java
rename to net/api/src/main/java/org/onlab/onos/net/host/HostProviderBroker.java
index c799b20..427e54e 100644
--- a/net/api/src/main/java/net/onrc/onos/api/host/HostProviderBroker.java
+++ b/net/api/src/main/java/org/onlab/onos/net/host/HostProviderBroker.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.api.host;
+package org.onlab.onos.net.host;
 
-import net.onrc.onos.api.ProviderBroker;
+import org.onlab.onos.net.ProviderBroker;
 
 /**
  * Abstraction of a host provider brokerage.
diff --git a/net/api/src/main/java/net/onrc/onos/api/host/HostProviderService.java b/net/api/src/main/java/org/onlab/onos/net/host/HostProviderService.java
similarity index 69%
rename from net/api/src/main/java/net/onrc/onos/api/host/HostProviderService.java
rename to net/api/src/main/java/org/onlab/onos/net/host/HostProviderService.java
index 662ba75..4d5d470 100644
--- a/net/api/src/main/java/net/onrc/onos/api/host/HostProviderService.java
+++ b/net/api/src/main/java/org/onlab/onos/net/host/HostProviderService.java
@@ -1,12 +1,12 @@
-package net.onrc.onos.api.host;
+package org.onlab.onos.net.host;
 
-import net.onrc.onos.api.ProviderService;
+import org.onlab.onos.net.ProviderService;
 
 /**
  * Means of conveying host information to the core.
  */
 public interface HostProviderService extends ProviderService {
-    
+
     void hostDetected(HostDescription hostDescription);
 
 }
diff --git a/net/api/src/main/java/net/onrc/onos/api/link/LinkDescription.java b/net/api/src/main/java/org/onlab/onos/net/link/LinkDescription.java
similarity index 90%
rename from net/api/src/main/java/net/onrc/onos/api/link/LinkDescription.java
rename to net/api/src/main/java/org/onlab/onos/net/link/LinkDescription.java
index c40f522..8d712f0 100644
--- a/net/api/src/main/java/net/onrc/onos/api/link/LinkDescription.java
+++ b/net/api/src/main/java/org/onlab/onos/net/link/LinkDescription.java
@@ -1,4 +1,4 @@
-package net.onrc.onos.api.link;
+package org.onlab.onos.net.link;
 
 /**
  * Describes an infrastructure link.
diff --git a/net/api/src/main/java/net/onrc/onos/api/link/LinkProvider.java b/net/api/src/main/java/org/onlab/onos/net/link/LinkProvider.java
similarity index 69%
rename from net/api/src/main/java/net/onrc/onos/api/link/LinkProvider.java
rename to net/api/src/main/java/org/onlab/onos/net/link/LinkProvider.java
index 4d7ab86..57cc45d 100644
--- a/net/api/src/main/java/net/onrc/onos/api/link/LinkProvider.java
+++ b/net/api/src/main/java/org/onlab/onos/net/link/LinkProvider.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.api.link;
+package org.onlab.onos.net.link;
 
-import net.onrc.onos.api.Provider;
+import org.onlab.onos.net.Provider;
 
 /**
  * Abstraction of an entity providing information about infrastructure links
diff --git a/net/api/src/main/java/net/onrc/onos/api/link/LinkProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/link/LinkProviderBroker.java
similarity index 70%
rename from net/api/src/main/java/net/onrc/onos/api/link/LinkProviderBroker.java
rename to net/api/src/main/java/org/onlab/onos/net/link/LinkProviderBroker.java
index 8da7bab..b0bfb05 100644
--- a/net/api/src/main/java/net/onrc/onos/api/link/LinkProviderBroker.java
+++ b/net/api/src/main/java/org/onlab/onos/net/link/LinkProviderBroker.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.api.link;
+package org.onlab.onos.net.link;
 
-import net.onrc.onos.api.ProviderBroker;
+import org.onlab.onos.net.ProviderBroker;
 
 /**
  * Abstraction of an infrastructure link provider brokerage.
diff --git a/net/api/src/main/java/net/onrc/onos/api/link/LinkProviderService.java b/net/api/src/main/java/org/onlab/onos/net/link/LinkProviderService.java
similarity index 86%
rename from net/api/src/main/java/net/onrc/onos/api/link/LinkProviderService.java
rename to net/api/src/main/java/org/onlab/onos/net/link/LinkProviderService.java
index 23fced8..9f523f7 100644
--- a/net/api/src/main/java/net/onrc/onos/api/link/LinkProviderService.java
+++ b/net/api/src/main/java/org/onlab/onos/net/link/LinkProviderService.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.api.link;
+package org.onlab.onos.net.link;
 
-import net.onrc.onos.api.ProviderService;
+import org.onlab.onos.net.ProviderService;
 
 /**
  * Means for injecting link information into the core.
diff --git a/net/api/src/main/java/net/onrc/onos/api/topology/TopologyDescription.java b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyDescription.java
similarity index 84%
rename from net/api/src/main/java/net/onrc/onos/api/topology/TopologyDescription.java
rename to net/api/src/main/java/org/onlab/onos/net/topology/TopologyDescription.java
index 306447e..0c55314 100644
--- a/net/api/src/main/java/net/onrc/onos/api/topology/TopologyDescription.java
+++ b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyDescription.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.api.topology;
+package org.onlab.onos.net.topology;
 
-import net.onrc.onos.api.Description;
+import org.onlab.onos.net.Description;
 
 import java.util.Collection;
 
@@ -17,4 +17,4 @@
      */
     Collection<Description> details();
 
-}
\ No newline at end of file
+}
diff --git a/net/api/src/main/java/net/onrc/onos/api/topology/TopologyProvider.java b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProvider.java
similarity index 63%
rename from net/api/src/main/java/net/onrc/onos/api/topology/TopologyProvider.java
rename to net/api/src/main/java/org/onlab/onos/net/topology/TopologyProvider.java
index f997c61..70264dc 100644
--- a/net/api/src/main/java/net/onrc/onos/api/topology/TopologyProvider.java
+++ b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProvider.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.api.topology;
+package org.onlab.onos.net.topology;
 
-import net.onrc.onos.api.Provider;
+import org.onlab.onos.net.Provider;
 
 /**
  * Means for injecting topology information into the core.
diff --git a/net/api/src/main/java/net/onrc/onos/api/topology/TopologyProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderBroker.java
similarity index 70%
rename from net/api/src/main/java/net/onrc/onos/api/topology/TopologyProviderBroker.java
rename to net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderBroker.java
index 207f33a..9caa817 100644
--- a/net/api/src/main/java/net/onrc/onos/api/topology/TopologyProviderBroker.java
+++ b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderBroker.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.api.topology;
+package org.onlab.onos.net.topology;
 
-import net.onrc.onos.api.ProviderBroker;
+import org.onlab.onos.net.ProviderBroker;
 
 /**
  * Abstraction of a network topology provider brokerage.
diff --git a/net/api/src/main/java/net/onrc/onos/api/topology/TopologyProviderService.java b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderService.java
similarity index 84%
rename from net/api/src/main/java/net/onrc/onos/api/topology/TopologyProviderService.java
rename to net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderService.java
index 67fbb1d..bef83ed 100644
--- a/net/api/src/main/java/net/onrc/onos/api/topology/TopologyProviderService.java
+++ b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderService.java
@@ -1,6 +1,6 @@
-package net.onrc.onos.api.topology;
+package org.onlab.onos.net.topology;
 
-import net.onrc.onos.api.ProviderService;
+import org.onlab.onos.net.ProviderService;
 
 /**
  * Means for injecting topology information into the core.
diff --git a/net/api/src/main/javadoc/org/onlab/onos/net/package.html b/net/api/src/main/javadoc/org/onlab/onos/net/package.html
new file mode 100644
index 0000000..f03b788
--- /dev/null
+++ b/net/api/src/main/javadoc/org/onlab/onos/net/package.html
@@ -0,0 +1,3 @@
+<body>
+ONOS API definitions.
+</body>
\ No newline at end of file
diff --git a/net/core/pom.xml b/net/core/pom.xml
new file mode 100644
index 0000000..30f6e12
--- /dev/null
+++ b/net/core/pom.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onlab.onos</groupId>
+        <artifactId>onos-net</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>onos-core</artifactId>
+    <packaging>bundle</packaging>
+
+    <description>ONOS network control core subsystems</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.onlab.onos</groupId>
+            <artifactId>onos-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.scr.annotations</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-scr-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/net/core/src/main/java/org/onlab/onos/net/impl/GreetManager.java b/net/core/src/main/java/org/onlab/onos/net/impl/GreetManager.java
new file mode 100644
index 0000000..65a42bc
--- /dev/null
+++ b/net/core/src/main/java/org/onlab/onos/net/impl/GreetManager.java
@@ -0,0 +1,52 @@
+package org.onlab.onos.net.impl;
+
+import com.google.common.collect.ImmutableSet;
+import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Deactivate;
+import org.apache.felix.scr.annotations.Service;
+import org.onlab.onos.net.GreetService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+/**
+ * Trivial implementation of the seed service to demonstrate component and
+ * service annotations.
+ */
+@Component(immediate = true)
+@Service
+public class GreetManager implements GreetService {
+
+    private final Logger log = LoggerFactory.getLogger(getClass());
+
+    private final Set<String> names = new HashSet<>();
+
+    @Override
+    public synchronized String yo(String name) {
+        checkNotNull(name, "Name cannot be null");
+        names.add(name);
+        log.info("Greeted '{}'", name);
+        return "Whazup " + name + "?";
+    }
+
+    @Override
+    public synchronized Iterable<String> names() {
+        return ImmutableSet.copyOf(names);
+    }
+
+    @Activate
+    public void activate() {
+        log.info("SeedManager started");
+    }
+
+    @Deactivate
+    public void deactivate() {
+        log.info("SeedManager stopped");
+    }
+
+}
diff --git a/net/core/src/main/java/org/onlab/onos/net/impl/SomeOtherComponent.java b/net/core/src/main/java/org/onlab/onos/net/impl/SomeOtherComponent.java
new file mode 100644
index 0000000..c53ab04
--- /dev/null
+++ b/net/core/src/main/java/org/onlab/onos/net/impl/SomeOtherComponent.java
@@ -0,0 +1,36 @@
+package org.onlab.onos.net.impl;
+
+import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Deactivate;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.onlab.onos.net.GreetService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Example of a component that does not provide any service, but consumes one.
+ */
+@Component(immediate = true)
+public class SomeOtherComponent {
+
+    private final Logger log = LoggerFactory.getLogger(SomeOtherComponent.class);
+
+    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    protected GreetService service;
+    // protected to allow injection for testing;
+    // alternative is to write bindSeedService and unbindSeedService, which is more code
+
+    @Activate
+    public void activate() {
+        log.info("SomeOtherComponent started");
+        service.yo("neighbour");
+    }
+
+    @Deactivate
+    public void deactivate() {
+        log.info("SomeOtherComponent stopped");
+    }
+
+}
diff --git a/net/core/src/main/javadoc/org/onlab/onos/net/impl/package.html b/net/core/src/main/javadoc/org/onlab/onos/net/impl/package.html
new file mode 100644
index 0000000..ba285bd
--- /dev/null
+++ b/net/core/src/main/javadoc/org/onlab/onos/net/impl/package.html
@@ -0,0 +1,3 @@
+<body>
+ONOS core implementations.
+</body>
\ No newline at end of file
diff --git a/net/core/src/test/java/org/onlab/onos/net/impl/GreetManagerTest.java b/net/core/src/test/java/org/onlab/onos/net/impl/GreetManagerTest.java
new file mode 100644
index 0000000..9c05f20
--- /dev/null
+++ b/net/core/src/test/java/org/onlab/onos/net/impl/GreetManagerTest.java
@@ -0,0 +1,31 @@
+package org.onlab.onos.net.impl;
+
+import org.junit.Test;
+import org.onlab.onos.net.GreetService;
+
+import java.util.Iterator;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+/**
+ * Example of a component &amp; service implementation unit test.
+ */
+public class GreetManagerTest {
+
+    @Test
+    public void basics() {
+        GreetService service = new GreetManager();
+        assertEquals("incorrect greeting", "Whazup dude?", service.yo("dude"));
+
+        Iterator<String> names = service.names().iterator();
+        assertEquals("incorrect name", "dude", names.next());
+        assertFalse("no more names expected", names.hasNext());
+    }
+
+    @Test(expected = NullPointerException.class)
+    public void nullArg() {
+        new GreetManager().yo(null);
+    }
+
+}
diff --git a/net/pom.xml b/net/pom.xml
new file mode 100644
index 0000000..bd4fa6e
--- /dev/null
+++ b/net/pom.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.onlab.onos</groupId>
+        <artifactId>onos</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>onos-net</artifactId>
+    <packaging>pom</packaging>
+
+    <description>ONOS Core root project</description>
+
+    <modules>
+        <module>api</module>
+        <module>core</module>
+    </modules>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
