Changed nomenclature from Broker to Registry.
diff --git a/net/api/src/main/java/org/onlab/onos/event/AbstractEvent.java b/net/api/src/main/java/org/onlab/onos/event/AbstractEvent.java
index db688e6..93dca8e 100644
--- a/net/api/src/main/java/org/onlab/onos/event/AbstractEvent.java
+++ b/net/api/src/main/java/org/onlab/onos/event/AbstractEvent.java
@@ -1,7 +1,7 @@
 package org.onlab.onos.event;
 
 /**
- * Base abstraction of an event.
+ * Base event implementation.
  */
 public class AbstractEvent<T extends Enum, S extends Object> implements Event<T, S> {
 
diff --git a/net/api/src/main/java/org/onlab/onos/event/AbstractListenerManager.java b/net/api/src/main/java/org/onlab/onos/event/AbstractListenerRegistry.java
similarity index 86%
rename from net/api/src/main/java/org/onlab/onos/event/AbstractListenerManager.java
rename to net/api/src/main/java/org/onlab/onos/event/AbstractListenerRegistry.java
index 0ca3b8e..5e6011a 100644
--- a/net/api/src/main/java/org/onlab/onos/event/AbstractListenerManager.java
+++ b/net/api/src/main/java/org/onlab/onos/event/AbstractListenerRegistry.java
@@ -10,10 +10,10 @@
 import static org.slf4j.LoggerFactory.getLogger;
 
 /**
- * Base implementation of a manager capable of tracking listeners and
- * dispatching events to them.
+ * Base implementation of an event sink and a registry capable of tracking
+ * listeners and dispatching events to them as part of event sink processing.
  */
-public class AbstractListenerManager<E extends Event, L extends EventListener<E>>
+public class AbstractListenerRegistry<E extends Event, L extends EventListener<E>>
         implements EventSink<E> {
 
     private final Logger log = getLogger(getClass());
diff --git a/net/api/src/main/java/org/onlab/onos/event/DefaultEventSinkBroker.java b/net/api/src/main/java/org/onlab/onos/event/DefaultEventSinkRegistry.java
similarity index 88%
rename from net/api/src/main/java/org/onlab/onos/event/DefaultEventSinkBroker.java
rename to net/api/src/main/java/org/onlab/onos/event/DefaultEventSinkRegistry.java
index c791544..1c7fb13 100644
--- a/net/api/src/main/java/org/onlab/onos/event/DefaultEventSinkBroker.java
+++ b/net/api/src/main/java/org/onlab/onos/event/DefaultEventSinkRegistry.java
@@ -10,12 +10,12 @@
 import static com.google.common.base.Preconditions.checkNotNull;
 
 /**
- * Base implementation of event sink broker.
+ * Base implementation of event sink registry.
  */
-public class DefaultEventSinkBroker implements EventSinkBroker {
+public class DefaultEventSinkRegistry implements EventSinkRegistry {
 
-    private final Map<Class<? extends Event>, EventSink<? extends Event>> sinks =
-            new ConcurrentHashMap<>();
+    private final Map<Class<? extends Event>, EventSink<? extends Event>>
+            sinks = new ConcurrentHashMap<>();
 
     @Override
     public <E extends Event> void addSink(Class<E> eventClass, EventSink<E> sink) {
diff --git a/net/api/src/main/java/org/onlab/onos/event/Event.java b/net/api/src/main/java/org/onlab/onos/event/Event.java
index 1cd49cd..baefa67 100644
--- a/net/api/src/main/java/org/onlab/onos/event/Event.java
+++ b/net/api/src/main/java/org/onlab/onos/event/Event.java
@@ -1,7 +1,7 @@
 package org.onlab.onos.event;
 
 /**
- * Abstraction of an event.
+ * Abstraction of an of a time-stamped event pertaining to an arbitrary subject.
  */
 public interface Event<T extends Enum, S extends Object> {
 
diff --git a/net/api/src/main/java/org/onlab/onos/event/EventDispatchService.java b/net/api/src/main/java/org/onlab/onos/event/EventDeliveryService.java
similarity index 67%
rename from net/api/src/main/java/org/onlab/onos/event/EventDispatchService.java
rename to net/api/src/main/java/org/onlab/onos/event/EventDeliveryService.java
index 8df68bb..4b7a52d 100644
--- a/net/api/src/main/java/org/onlab/onos/event/EventDispatchService.java
+++ b/net/api/src/main/java/org/onlab/onos/event/EventDeliveryService.java
@@ -4,5 +4,5 @@
  * Abstraction of an entity capable of accepting events to be posted and
  * then dispatching them to the appropriate event sink.
  */
-public interface EventDispatchService extends EventDispatcher, EventSinkBroker {
+public interface EventDeliveryService extends EventDispatcher, EventSinkRegistry {
 }
diff --git a/net/api/src/main/java/org/onlab/onos/event/EventSinkBroker.java b/net/api/src/main/java/org/onlab/onos/event/EventSinkRegistry.java
similarity index 90%
rename from net/api/src/main/java/org/onlab/onos/event/EventSinkBroker.java
rename to net/api/src/main/java/org/onlab/onos/event/EventSinkRegistry.java
index 7be9562..7398de7 100644
--- a/net/api/src/main/java/org/onlab/onos/event/EventSinkBroker.java
+++ b/net/api/src/main/java/org/onlab/onos/event/EventSinkRegistry.java
@@ -3,10 +3,10 @@
 import java.util.Set;
 
 /**
- * Abstraction of an event sink broker capable of tracking sinks based on
+ * Abstraction of an event sink registry capable of tracking sinks based on
  * their event class.
  */
-public interface EventSinkBroker {
+public interface EventSinkRegistry {
 
     /**
      * Adds the specified sink for the given event class.
diff --git a/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderBroker.java
deleted file mode 100644
index 90d060a..0000000
--- a/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderBroker.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.onlab.onos.net.device;
-
-import org.onlab.onos.net.provider.ProviderBroker;
-
-/**
- * Abstraction of a device provider brokerage.
- */
-public interface DeviceProviderBroker
-        extends ProviderBroker<DeviceProvider, DeviceProviderService> {
-}
diff --git a/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderRegistry.java b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderRegistry.java
new file mode 100644
index 0000000..cff252e
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/device/DeviceProviderRegistry.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.net.device;
+
+import org.onlab.onos.net.provider.ProviderRegistry;
+
+/**
+ * Abstraction of a device provider registry.
+ */
+public interface DeviceProviderRegistry
+        extends ProviderRegistry<DeviceProvider, DeviceProviderService> {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderBroker.java
deleted file mode 100644
index e2bfd1c..0000000
--- a/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderBroker.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.onlab.onos.net.flow;
-
-import org.onlab.onos.net.provider.ProviderBroker;
-
-/**
- * Abstraction for a flow rule provider brokerage.
- */
-public interface FlowRuleProviderBroker
-        extends ProviderBroker<FlowRuleProvider, FlowRuleProviderService> {
-}
diff --git a/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderRegistry.java b/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderRegistry.java
new file mode 100644
index 0000000..099d9f4
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/flow/FlowRuleProviderRegistry.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.net.flow;
+
+import org.onlab.onos.net.provider.ProviderRegistry;
+
+/**
+ * Abstraction for a flow rule provider registry.
+ */
+public interface FlowRuleProviderRegistry
+        extends ProviderRegistry<FlowRuleProvider, FlowRuleProviderService> {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/host/HostProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/host/HostProviderBroker.java
deleted file mode 100644
index c99d436..0000000
--- a/net/api/src/main/java/org/onlab/onos/net/host/HostProviderBroker.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.onlab.onos.net.host;
-
-import org.onlab.onos.net.provider.ProviderBroker;
-
-/**
- * Abstraction of a host provider brokerage.
- */
-public interface HostProviderBroker
-        extends ProviderBroker<HostProvider, HostProviderService> {
-}
diff --git a/net/api/src/main/java/org/onlab/onos/net/host/HostProviderRegistry.java b/net/api/src/main/java/org/onlab/onos/net/host/HostProviderRegistry.java
new file mode 100644
index 0000000..76f281e
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/host/HostProviderRegistry.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.net.host;
+
+import org.onlab.onos.net.provider.ProviderRegistry;
+
+/**
+ * Abstraction of a host provider registry.
+ */
+public interface HostProviderRegistry
+        extends ProviderRegistry<HostProvider, HostProviderService> {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/link/LinkProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/link/LinkProviderBroker.java
deleted file mode 100644
index fc58f2c..0000000
--- a/net/api/src/main/java/org/onlab/onos/net/link/LinkProviderBroker.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.onlab.onos.net.link;
-
-import org.onlab.onos.net.provider.ProviderBroker;
-
-/**
- * Abstraction of an infrastructure link provider brokerage.
- */
-public interface LinkProviderBroker
-        extends ProviderBroker<LinkProvider, LinkProviderService> {
-}
diff --git a/net/api/src/main/java/org/onlab/onos/net/link/LinkProviderRegistry.java b/net/api/src/main/java/org/onlab/onos/net/link/LinkProviderRegistry.java
new file mode 100644
index 0000000..2aa54e7
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/link/LinkProviderRegistry.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.net.link;
+
+import org.onlab.onos.net.provider.ProviderRegistry;
+
+/**
+ * Abstraction of an infrastructure link provider registry.
+ */
+public interface LinkProviderRegistry
+        extends ProviderRegistry<LinkProvider, LinkProviderService> {
+}
diff --git a/net/api/src/main/java/org/onlab/onos/net/provider/AbstractProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/provider/AbstractProviderRegistry.java
similarity index 87%
rename from net/api/src/main/java/org/onlab/onos/net/provider/AbstractProviderBroker.java
rename to net/api/src/main/java/org/onlab/onos/net/provider/AbstractProviderRegistry.java
index ad1e0ab..6975447 100644
--- a/net/api/src/main/java/org/onlab/onos/net/provider/AbstractProviderBroker.java
+++ b/net/api/src/main/java/org/onlab/onos/net/provider/AbstractProviderRegistry.java
@@ -7,13 +7,13 @@
 import static com.google.common.base.Preconditions.checkNotNull;
 
 /**
- * Base implementation of provider broker.
+ * Base implementation of provider registry.
  *
  * @param <P> type of the information provider
  * @param <S> type of the provider service
  */
-public abstract class AbstractProviderBroker<P extends Provider, S extends ProviderService<P>>
-        implements ProviderBroker<P, S> {
+public abstract class AbstractProviderRegistry<P extends Provider, S extends ProviderService<P>>
+        implements ProviderRegistry<P, S> {
 
     private final Map<ProviderId, S> services = new HashMap<>();
 
diff --git a/net/api/src/main/java/org/onlab/onos/net/provider/ProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/provider/ProviderRegistry.java
similarity index 84%
rename from net/api/src/main/java/org/onlab/onos/net/provider/ProviderBroker.java
rename to net/api/src/main/java/org/onlab/onos/net/provider/ProviderRegistry.java
index 438fdb7..93436fc 100644
--- a/net/api/src/main/java/org/onlab/onos/net/provider/ProviderBroker.java
+++ b/net/api/src/main/java/org/onlab/onos/net/provider/ProviderRegistry.java
@@ -1,12 +1,12 @@
 package org.onlab.onos.net.provider;
 
 /**
- * Broker used for registering/unregistering information providers with the core.
+ * Registry for tracking information providers with the core.
  *
  * @param <P> type of the information provider
  * @param <S> type of the provider service
  */
-public interface ProviderBroker<P extends Provider, S extends ProviderService<P>> {
+public interface ProviderRegistry<P extends Provider, S extends ProviderService<P>> {
 
     /**
      * Registers the supplied provider with the core.
diff --git a/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderBroker.java b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderBroker.java
deleted file mode 100644
index d3f7e50..0000000
--- a/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderBroker.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.onlab.onos.net.topology;
-
-import org.onlab.onos.net.provider.ProviderBroker;
-
-/**
- * Abstraction of a network topology provider brokerage.
- */
-public interface TopologyProviderBroker extends
-        ProviderBroker<TopologyProvider, TopologyProviderService> {
-}
diff --git a/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderRegistry.java b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderRegistry.java
new file mode 100644
index 0000000..40bfa66
--- /dev/null
+++ b/net/api/src/main/java/org/onlab/onos/net/topology/TopologyProviderRegistry.java
@@ -0,0 +1,10 @@
+package org.onlab.onos.net.topology;
+
+import org.onlab.onos.net.provider.ProviderRegistry;
+
+/**
+ * Abstraction of a network topology provider registry.
+ */
+public interface TopologyProviderRegistry extends
+        ProviderRegistry<TopologyProvider, TopologyProviderService> {
+}
diff --git a/net/api/src/test/java/org/onlab/onos/event/AbstractListenerManagerTest.java b/net/api/src/test/java/org/onlab/onos/event/AbstractListenerRegistryTest.java
similarity index 89%
rename from net/api/src/test/java/org/onlab/onos/event/AbstractListenerManagerTest.java
rename to net/api/src/test/java/org/onlab/onos/event/AbstractListenerRegistryTest.java
index effcc79..e41eb27 100644
--- a/net/api/src/test/java/org/onlab/onos/event/AbstractListenerManagerTest.java
+++ b/net/api/src/test/java/org/onlab/onos/event/AbstractListenerRegistryTest.java
@@ -8,13 +8,13 @@
 /**
  * Tests of the base listener manager.
  */
-public class AbstractListenerManagerTest {
+public class AbstractListenerRegistryTest {
 
     @Test
     public void basics() {
         TestListener listener = new TestListener();
         TestListener secondListener = new TestListener();
-        TestListenerManager manager = new TestListenerManager();
+        TestListenerRegistry manager = new TestListenerRegistry();
         manager.addListener(listener);
         manager.addListener(secondListener);
 
@@ -35,7 +35,7 @@
     public void badListener() {
         TestListener listener = new BrokenListener();
         TestListener secondListener = new TestListener();
-        TestListenerManager manager = new TestListenerManager();
+        TestListenerRegistry manager = new TestListenerRegistry();
         manager.addListener(listener);
         manager.addListener(secondListener);
 
diff --git a/net/api/src/test/java/org/onlab/onos/event/DefaultEventSinkBrokerTest.java b/net/api/src/test/java/org/onlab/onos/event/DefaultEventSinkBrokerTest.java
deleted file mode 100644
index f676325..0000000
--- a/net/api/src/test/java/org/onlab/onos/event/DefaultEventSinkBrokerTest.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.onlab.onos.event;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-/**
- * Tests of the default event sink broker.
- */
-public class DefaultEventSinkBrokerTest {
-
-    private DefaultEventSinkBroker broker;
-
-    private static class FooEvent extends TestEvent {
-        public FooEvent(String subject) { super(Type.FOO, subject); }
-    }
-
-    private static class BarEvent extends TestEvent {
-        public BarEvent(String subject) { super(Type.BAR, subject); }
-    }
-
-    private static class FooSink implements EventSink<FooEvent> {
-        @Override public void process(FooEvent event) {}
-    }
-
-    private static class BarSink implements EventSink<BarEvent> {
-        @Override public void process(BarEvent event) {}
-    }
-
-    @Before
-    public void setUp() {
-        broker = new DefaultEventSinkBroker();
-    }
-
-    @Test
-    public void basics() {
-        FooSink fooSink = new FooSink();
-        BarSink barSink = new BarSink();
-        broker.addSink(FooEvent.class, fooSink);
-        broker.addSink(BarEvent.class, barSink);
-
-        assertEquals("incorrect sink count", 2, broker.getSinks().size());
-        assertEquals("incorrect sink", fooSink, broker.getSink(FooEvent.class));
-        assertEquals("incorrect sink", barSink, broker.getSink(BarEvent.class));
-
-        broker.removeSink(FooEvent.class);
-        assertNull("incorrect sink", broker.getSink(FooEvent.class));
-        assertEquals("incorrect sink", barSink, broker.getSink(BarEvent.class));
-
-    }
-}
diff --git a/net/api/src/test/java/org/onlab/onos/event/DefaultEventSinkRegistryTest.java b/net/api/src/test/java/org/onlab/onos/event/DefaultEventSinkRegistryTest.java
new file mode 100644
index 0000000..ff10b50
--- /dev/null
+++ b/net/api/src/test/java/org/onlab/onos/event/DefaultEventSinkRegistryTest.java
@@ -0,0 +1,52 @@
+package org.onlab.onos.event;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Tests of the default event sink registry.
+ */
+public class DefaultEventSinkRegistryTest {
+
+    private DefaultEventSinkRegistry registry;
+
+    private static class FooEvent extends TestEvent {
+        public FooEvent(String subject) { super(Type.FOO, subject); }
+    }
+
+    private static class BarEvent extends TestEvent {
+        public BarEvent(String subject) { super(Type.BAR, subject); }
+    }
+
+    private static class FooSink implements EventSink<FooEvent> {
+        @Override public void process(FooEvent event) {}
+    }
+
+    private static class BarSink implements EventSink<BarEvent> {
+        @Override public void process(BarEvent event) {}
+    }
+
+    @Before
+    public void setUp() {
+        registry = new DefaultEventSinkRegistry();
+    }
+
+    @Test
+    public void basics() {
+        FooSink fooSink = new FooSink();
+        BarSink barSink = new BarSink();
+        registry.addSink(FooEvent.class, fooSink);
+        registry.addSink(BarEvent.class, barSink);
+
+        assertEquals("incorrect sink count", 2, registry.getSinks().size());
+        assertEquals("incorrect sink", fooSink, registry.getSink(FooEvent.class));
+        assertEquals("incorrect sink", barSink, registry.getSink(BarEvent.class));
+
+        registry.removeSink(FooEvent.class);
+        assertNull("incorrect sink", registry.getSink(FooEvent.class));
+        assertEquals("incorrect sink", barSink, registry.getSink(BarEvent.class));
+
+    }
+}
diff --git a/net/api/src/test/java/org/onlab/onos/event/TestListenerManager.java b/net/api/src/test/java/org/onlab/onos/event/TestListenerRegistry.java
similarity index 77%
rename from net/api/src/test/java/org/onlab/onos/event/TestListenerManager.java
rename to net/api/src/test/java/org/onlab/onos/event/TestListenerRegistry.java
index a9f6213..e676030 100644
--- a/net/api/src/test/java/org/onlab/onos/event/TestListenerManager.java
+++ b/net/api/src/test/java/org/onlab/onos/event/TestListenerRegistry.java
@@ -6,8 +6,8 @@
 /**
  * Test event listener manager fixture.
  */
-public class TestListenerManager
-        extends AbstractListenerManager<TestEvent, TestListener> {
+public class TestListenerRegistry
+        extends AbstractListenerRegistry<TestEvent, TestListener> {
 
     public final List<Throwable> errors = new ArrayList<>();
 
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
index 7ef8735..da919e4 100644
--- 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
@@ -5,9 +5,9 @@
 import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Service;
 import org.onlab.onos.event.AbstractEvent;
-import org.onlab.onos.event.DefaultEventSinkBroker;
+import org.onlab.onos.event.DefaultEventSinkRegistry;
 import org.onlab.onos.event.Event;
-import org.onlab.onos.event.EventDispatchService;
+import org.onlab.onos.event.EventDeliveryService;
 import org.onlab.onos.event.EventSink;
 import org.slf4j.Logger;
 
@@ -24,8 +24,8 @@
  */
 @Component(immediate = true)
 @Service
-public class SimpleEventDispatcher extends DefaultEventSinkBroker
-        implements EventDispatchService {
+public class SimpleEventDispatcher extends DefaultEventSinkRegistry
+        implements EventDeliveryService {
 
     private final Logger log = getLogger(getClass());
 
diff --git a/net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleDeviceManager.java b/net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleDeviceManager.java
index a293183..4344fd0 100644
--- a/net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleDeviceManager.java
+++ b/net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleDeviceManager.java
@@ -6,8 +6,8 @@
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.apache.felix.scr.annotations.Service;
-import org.onlab.onos.event.AbstractListenerManager;
-import org.onlab.onos.event.EventDispatchService;
+import org.onlab.onos.event.AbstractListenerRegistry;
+import org.onlab.onos.event.EventDeliveryService;
 import org.onlab.onos.net.Device;
 import org.onlab.onos.net.DeviceId;
 import org.onlab.onos.net.MastershipRole;
@@ -17,11 +17,11 @@
 import org.onlab.onos.net.device.DeviceEvent;
 import org.onlab.onos.net.device.DeviceListener;
 import org.onlab.onos.net.device.DeviceProvider;
-import org.onlab.onos.net.device.DeviceProviderBroker;
+import org.onlab.onos.net.device.DeviceProviderRegistry;
 import org.onlab.onos.net.device.DeviceProviderService;
 import org.onlab.onos.net.device.DeviceService;
 import org.onlab.onos.net.device.PortDescription;
-import org.onlab.onos.net.provider.AbstractProviderBroker;
+import org.onlab.onos.net.provider.AbstractProviderRegistry;
 import org.onlab.onos.net.provider.AbstractProviderService;
 import org.slf4j.Logger;
 
@@ -36,8 +36,8 @@
 @Component(immediate = true)
 @Service
 public class SimpleDeviceManager
-        extends AbstractProviderBroker<DeviceProvider, DeviceProviderService>
-        implements DeviceService, DeviceProviderBroker {
+        extends AbstractProviderRegistry<DeviceProvider, DeviceProviderService>
+        implements DeviceService, DeviceProviderRegistry {
 
     public static final String DEVICE_ID_NULL = "Device ID cannot be null";
     public static final String PORT_NUMBER_NULL = "Port number cannot be null";
@@ -46,17 +46,17 @@
 
     private final Logger log = getLogger(getClass());
 
-    private final AbstractListenerManager<DeviceEvent, DeviceListener>
-            listenerManager = new AbstractListenerManager<>();
+    private final AbstractListenerRegistry<DeviceEvent, DeviceListener>
+            listenerRegistry = new AbstractListenerRegistry<>();
 
     private final DeviceStore store = new DeviceStore();
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
-    private EventDispatchService eventDispatcher;
+    private EventDeliveryService eventDispatcher;
 
     @Activate
     public void activate() {
-        eventDispatcher.addSink(DeviceEvent.class, listenerManager);
+        eventDispatcher.addSink(DeviceEvent.class, listenerRegistry);
         log.info("Started");
     }
 
@@ -98,12 +98,12 @@
 
     @Override
     public void addListener(DeviceListener listener) {
-        listenerManager.addListener(listener);
+        listenerRegistry.addListener(listener);
     }
 
     @Override
     public void removeListener(DeviceListener listener) {
-        listenerManager.removeListener(listener);
+        listenerRegistry.removeListener(listener);
     }
 
     @Override
diff --git a/net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleHostManager.java b/net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleHostManager.java
index 0c0c983..c9aa71b 100644
--- a/net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleHostManager.java
+++ b/net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleHostManager.java
@@ -6,15 +6,15 @@
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.apache.felix.scr.annotations.Service;
-import org.onlab.onos.event.AbstractListenerManager;
-import org.onlab.onos.event.EventDispatchService;
+import org.onlab.onos.event.AbstractListenerRegistry;
+import org.onlab.onos.event.EventDeliveryService;
 import org.onlab.onos.net.host.HostDescription;
 import org.onlab.onos.net.host.HostEvent;
 import org.onlab.onos.net.host.HostListener;
 import org.onlab.onos.net.host.HostProvider;
-import org.onlab.onos.net.host.HostProviderBroker;
+import org.onlab.onos.net.host.HostProviderRegistry;
 import org.onlab.onos.net.host.HostProviderService;
-import org.onlab.onos.net.provider.AbstractProviderBroker;
+import org.onlab.onos.net.provider.AbstractProviderRegistry;
 import org.onlab.onos.net.provider.AbstractProviderService;
 import org.slf4j.Logger;
 
@@ -26,21 +26,21 @@
 @Component(immediate = true)
 @Service
 public class SimpleHostManager
-        extends AbstractProviderBroker<HostProvider, HostProviderService>
-        implements HostProviderBroker {
+        extends AbstractProviderRegistry<HostProvider, HostProviderService>
+        implements HostProviderRegistry {
 
     private final Logger log = getLogger(getClass());
 
-    private final AbstractListenerManager<HostEvent, HostListener>
-            listenerManager = new AbstractListenerManager<>();
+    private final AbstractListenerRegistry<HostEvent, HostListener>
+            listenerRegistry = new AbstractListenerRegistry<>();
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
-    private EventDispatchService eventDispatcher;
+    private EventDeliveryService eventDispatcher;
 
 
     @Activate
     public void activate() {
-        eventDispatcher.addSink(HostEvent.class, listenerManager);
+        eventDispatcher.addSink(HostEvent.class, listenerRegistry);
         log.info("Started");
     }
 
diff --git a/net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleLinkManager.java b/net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleLinkManager.java
index 73fedab..8efa526 100644
--- a/net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleLinkManager.java
+++ b/net/core/trivial/src/main/java/org/onlab/onos/net/trivial/impl/SimpleLinkManager.java
@@ -6,15 +6,15 @@
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.apache.felix.scr.annotations.Service;
-import org.onlab.onos.event.AbstractListenerManager;
-import org.onlab.onos.event.EventDispatchService;
+import org.onlab.onos.event.AbstractListenerRegistry;
+import org.onlab.onos.event.EventDeliveryService;
 import org.onlab.onos.net.link.LinkDescription;
 import org.onlab.onos.net.link.LinkEvent;
 import org.onlab.onos.net.link.LinkListener;
 import org.onlab.onos.net.link.LinkProvider;
-import org.onlab.onos.net.link.LinkProviderBroker;
+import org.onlab.onos.net.link.LinkProviderRegistry;
 import org.onlab.onos.net.link.LinkProviderService;
-import org.onlab.onos.net.provider.AbstractProviderBroker;
+import org.onlab.onos.net.provider.AbstractProviderRegistry;
 import org.onlab.onos.net.provider.AbstractProviderService;
 import org.slf4j.Logger;
 
@@ -26,20 +26,20 @@
 @Component(immediate = true)
 @Service
 public class SimpleLinkManager
-        extends AbstractProviderBroker<LinkProvider, LinkProviderService>
-        implements LinkProviderBroker {
+        extends AbstractProviderRegistry<LinkProvider, LinkProviderService>
+        implements LinkProviderRegistry {
 
     private final Logger log = getLogger(getClass());
 
-    private final AbstractListenerManager<LinkEvent, LinkListener>
-            listenerManager = new AbstractListenerManager<>();
+    private final AbstractListenerRegistry<LinkEvent, LinkListener>
+            listenerRegistry = new AbstractListenerRegistry<>();
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
-    private EventDispatchService eventDispatcher;
+    private EventDeliveryService eventDispatcher;
 
     @Activate
     public void activate() {
-        eventDispatcher.addSink(LinkEvent.class, listenerManager);
+        eventDispatcher.addSink(LinkEvent.class, listenerRegistry);
         log.info("Started");
     }
 
diff --git a/providers/of/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java b/providers/of/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java
index 5977848..f63b448 100644
--- a/providers/of/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java
+++ b/providers/of/device/src/main/java/org/onlab/onos/provider/of/device/impl/OpenFlowDeviceProvider.java
@@ -8,7 +8,7 @@
 import org.onlab.onos.net.Device;
 import org.onlab.onos.net.MastershipRole;
 import org.onlab.onos.net.device.DeviceProvider;
-import org.onlab.onos.net.device.DeviceProviderBroker;
+import org.onlab.onos.net.device.DeviceProviderRegistry;
 import org.onlab.onos.net.device.DeviceProviderService;
 import org.onlab.onos.net.provider.AbstractProvider;
 import org.onlab.onos.net.provider.ProviderId;
@@ -27,7 +27,7 @@
     private final Logger log = getLogger(getClass());
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
-    protected DeviceProviderBroker providerBroker;
+    protected DeviceProviderRegistry providerRegistry;
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
     protected OpenFlowController controller;
@@ -43,13 +43,13 @@
 
     @Activate
     public void activate() {
-        providerService = providerBroker.register(this);
+        providerService = providerRegistry.register(this);
         log.info("Started");
     }
 
     @Deactivate
     public void deactivate() {
-        providerBroker.unregister(this);
+        providerRegistry.unregister(this);
         providerService = null;
         log.info("Stopped");
     }
diff --git a/providers/of/host/src/main/java/org/onlab/onos/provider/of/host/impl/OpenFlowHostProvider.java b/providers/of/host/src/main/java/org/onlab/onos/provider/of/host/impl/OpenFlowHostProvider.java
index 2faeb43..2421481 100644
--- a/providers/of/host/src/main/java/org/onlab/onos/provider/of/host/impl/OpenFlowHostProvider.java
+++ b/providers/of/host/src/main/java/org/onlab/onos/provider/of/host/impl/OpenFlowHostProvider.java
@@ -7,7 +7,7 @@
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.onlab.onos.net.Host;
 import org.onlab.onos.net.host.HostProvider;
-import org.onlab.onos.net.host.HostProviderBroker;
+import org.onlab.onos.net.host.HostProviderRegistry;
 import org.onlab.onos.net.host.HostProviderService;
 import org.onlab.onos.net.provider.AbstractProvider;
 import org.onlab.onos.net.provider.ProviderId;
@@ -26,7 +26,7 @@
     private final Logger log = getLogger(getClass());
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
-    protected HostProviderBroker providerBroker;
+    protected HostProviderRegistry providerRegistry;
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
     protected OpenFlowController controller;
@@ -42,13 +42,13 @@
 
     @Activate
     public void activate() {
-        providerService = providerBroker.register(this);
+        providerService = providerRegistry.register(this);
         log.info("Started");
     }
 
     @Deactivate
     public void deactivate() {
-        providerBroker.unregister(this);
+        providerRegistry.unregister(this);
         providerService = null;
         log.info("Stopped");
     }
diff --git a/providers/of/link/src/main/java/org/onlab/onos/provider/of/link/impl/OpenFlowLinkProvider.java b/providers/of/link/src/main/java/org/onlab/onos/provider/of/link/impl/OpenFlowLinkProvider.java
index dacf3a8..314564d 100644
--- a/providers/of/link/src/main/java/org/onlab/onos/provider/of/link/impl/OpenFlowLinkProvider.java
+++ b/providers/of/link/src/main/java/org/onlab/onos/provider/of/link/impl/OpenFlowLinkProvider.java
@@ -6,7 +6,7 @@
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.onlab.onos.net.link.LinkProvider;
-import org.onlab.onos.net.link.LinkProviderBroker;
+import org.onlab.onos.net.link.LinkProviderRegistry;
 import org.onlab.onos.net.link.LinkProviderService;
 import org.onlab.onos.net.provider.AbstractProvider;
 import org.onlab.onos.net.provider.ProviderId;
@@ -25,7 +25,7 @@
     private final Logger log = getLogger(getClass());
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
-    protected LinkProviderBroker providerBroker;
+    protected LinkProviderRegistry providerRegistry;
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
     protected OpenFlowController controller;
@@ -41,13 +41,13 @@
 
     @Activate
     public void activate() {
-        providerService = providerBroker.register(this);
+        providerService = providerRegistry.register(this);
         log.info("Started");
     }
 
     @Deactivate
     public void deactivate() {
-        providerBroker.unregister(this);
+        providerRegistry.unregister(this);
         providerService = null;
         log.info("Stopped");
     }