diff --git a/features/features.xml b/features/features.xml
index 765587a..9bb4519 100644
--- a/features/features.xml
+++ b/features/features.xml
@@ -23,8 +23,9 @@
              description="ONOS services and model API">
         <feature>scr</feature>
         <feature>onos-thirdparty-base</feature>
-        <bundle>mvn:org.onlab.onos/onos-utils-osgi/1.0.0-SNAPSHOT</bundle>
-        <bundle>mvn:org.onlab.onos/onos-utils-rest/1.0.0-SNAPSHOT</bundle>
+        <bundle>mvn:org.onlab.onos/onlab-misc/1.0.0-SNAPSHOT</bundle>
+        <bundle>mvn:org.onlab.onos/onlab-osgi/1.0.0-SNAPSHOT</bundle>
+        <bundle>mvn:org.onlab.onos/onlab-rest/1.0.0-SNAPSHOT</bundle>
 
         <bundle>mvn:org.onlab.onos/onos-api/1.0.0-SNAPSHOT</bundle>
     </feature>
diff --git a/net/core/trivial/src/main/java/org/onlab/onos/event/impl/SimpleEventDispatcher.java b/net/core/trivial/src/main/java/org/onlab/onos/event/impl/SimpleEventDispatcher.java
new file mode 100644
index 0000000..67cbc73
--- /dev/null
+++ b/net/core/trivial/src/main/java/org/onlab/onos/event/impl/SimpleEventDispatcher.java
@@ -0,0 +1,46 @@
+package org.onlab.onos.event.impl;
+
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Service;
+import org.onlab.onos.event.Event;
+import org.onlab.onos.event.EventDispatchService;
+import org.onlab.onos.event.EventSink;
+
+import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * Simple implementation of an event dispatching service.
+ */
+@Component(immediate = true)
+@Service
+public class SimpleEventDispatcher implements EventDispatchService {
+
+    private final ExecutorService executor = Executors.newSingleThreadExecutor();
+
+    @Override
+    public void post(Event event) {
+
+    }
+
+    @Override
+    public <E extends Event> void addSink(Class<E> eventClass, EventSink<E> sink) {
+
+    }
+
+    @Override
+    public <E extends Event> void removeSink(Class<E> eventClass) {
+
+    }
+
+    @Override
+    public <E extends Event> EventSink<E> getSink(Class<E> eventClass) {
+        return null;
+    }
+
+    @Override
+    public Set<Class<? extends Event>> getSinks() {
+        return null;
+    }
+}
diff --git a/utils/misc/src/main/java/org/onlab/util/Foo.java b/utils/misc/src/main/java/org/onlab/util/Foo.java
new file mode 100644
index 0000000..8113e1f
--- /dev/null
+++ b/utils/misc/src/main/java/org/onlab/util/Foo.java
@@ -0,0 +1,4 @@
+package org.onlab.util;
+
+public class Foo {
+}
diff --git a/utils/osgi/pom.xml b/utils/osgi/pom.xml
index ccf3385..c68f76d 100644
--- a/utils/osgi/pom.xml
+++ b/utils/osgi/pom.xml
@@ -6,15 +6,15 @@
 
     <parent>
         <groupId>org.onlab.onos</groupId>
-        <artifactId>onos-utils</artifactId>
+        <artifactId>onlab-utils</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>onos-utils-osgi</artifactId>
+    <artifactId>onlab-osgi</artifactId>
     <packaging>bundle</packaging>
 
-    <description>OSGI utilities</description>
+    <description>ON.Lab OSGI utilities</description>
 
     <dependencies>
         <dependency>
diff --git a/utils/pom.xml b/utils/pom.xml
index 60cd862..c956abe 100644
--- a/utils/pom.xml
+++ b/utils/pom.xml
@@ -11,12 +11,13 @@
         <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>onos-utils</artifactId>
+    <artifactId>onlab-utils</artifactId>
     <packaging>pom</packaging>
 
-    <description>Domain agnostic utilities</description>
+    <description>Domain agnostic ON.Lab utilities</description>
 
     <modules>
+        <module>misc</module>
         <module>osgi</module>
         <module>rest</module>
     </modules>
@@ -28,7 +29,6 @@
         </dependency>
     </dependencies>
 
-
     <build>
         <plugins>
             <plugin>
diff --git a/utils/rest/pom.xml b/utils/rest/pom.xml
index 52988cf..01f2bdc 100644
--- a/utils/rest/pom.xml
+++ b/utils/rest/pom.xml
@@ -6,15 +6,15 @@
 
     <parent>
         <groupId>org.onlab.onos</groupId>
-        <artifactId>onos-utils</artifactId>
+        <artifactId>onlab-utils</artifactId>
         <version>1.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>onos-utils-rest</artifactId>
+    <artifactId>onlab-rest</artifactId>
     <packaging>bundle</packaging>
 
-    <description>JAX-RS utilities</description>
+    <description>ON.Lab JAX-RS utilities</description>
 
     <dependencies>
         <dependency>
@@ -36,7 +36,7 @@
 
         <dependency>
             <groupId>org.onlab.onos</groupId>
-            <artifactId>onos-utils-osgi</artifactId>
+            <artifactId>onlab-osgi</artifactId>
             <version>${project.version}</version>
         </dependency>
     </dependencies>
diff --git a/web/pom.xml b/web/pom.xml
index 5eb67bb..3e9f2a0 100644
--- a/web/pom.xml
+++ b/web/pom.xml
@@ -33,13 +33,13 @@
 
         <dependency>
             <groupId>org.onlab.onos</groupId>
-            <artifactId>onos-utils-osgi</artifactId>
+            <artifactId>onlab-osgi</artifactId>
             <version>${project.version}</version>
         </dependency>
 
         <dependency>
             <groupId>org.onlab.onos</groupId>
-            <artifactId>onos-utils-rest</artifactId>
+            <artifactId>onlab-rest</artifactId>
             <version>${project.version}</version>
         </dependency>
 
