diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/config/NetworkConfigService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/config/NetworkConfigService.java
index 455ed68..5a89ccb 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/config/NetworkConfigService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/config/NetworkConfigService.java
@@ -17,6 +17,7 @@
 
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.google.common.annotations.Beta;
+import org.onosproject.event.ListenerService;
 
 import java.util.Set;
 
@@ -26,7 +27,8 @@
  * should act on or configure the network.
  */
 @Beta
-public interface NetworkConfigService {
+public interface NetworkConfigService
+    extends ListenerService<NetworkConfigEvent, NetworkConfigListener> {
 
     /**
      * Returns the set of subject classes for which configuration may be
@@ -140,17 +142,4 @@
      */
     <S, C extends Config<S>> void removeConfig(S subject, Class<C> configClass);
 
-    /**
-     * Adds the specified network config listener.
-     *
-     * @param listener network config listener
-     */
-    void addListener(NetworkConfigListener listener);
-
-    /**
-     * Removes the specified network config listener.
-     *
-     * @param listener network config listener
-     */
-    void removeListener(NetworkConfigListener listener);
 }
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceService.java
index 612fbc7..02052c3 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/resource/label/LabelResourceService.java
@@ -4,6 +4,7 @@
 import java.util.Set;
 
 import com.google.common.annotations.Beta;
+import org.onosproject.event.ListenerService;
 import org.onosproject.net.DeviceId;
 
 import com.google.common.collect.Multimap;
@@ -12,7 +13,8 @@
  * Service for providing label resource allocation.
  */
 @Beta
-public interface LabelResourceService {
+public interface LabelResourceService
+    extends ListenerService<LabelResourceEvent, LabelResourceListener> {
 
     /**
      * Returns labels from resource pool by a specific device id.
@@ -95,17 +97,4 @@
      */
     LabelResourcePool getGlobalLabelResourcePool();
 
-    /**
-     * Adds the specified label resource listener.
-     *
-     * @param listener label resource listener
-     */
-    void addListener(LabelResourceListener listener);
-
-    /**
-     * Removes the specified label resource listener.
-     *
-     * @param listener label resource listener
-     */
-    void removeListener(LabelResourceListener listener);
 }
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelService.java
index a495955..2a10a4c 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/tunnel/TunnelService.java
@@ -19,6 +19,7 @@
 
 import com.google.common.annotations.Beta;
 import org.onosproject.core.ApplicationId;
+import org.onosproject.event.ListenerService;
 import org.onosproject.incubator.net.tunnel.Tunnel.Type;
 import org.onosproject.net.Annotations;
 import org.onosproject.net.DeviceId;
@@ -27,7 +28,8 @@
  * Service for interacting with the inventory of tunnels.
  */
 @Beta
-public interface TunnelService {
+public interface TunnelService
+    extends ListenerService<TunnelEvent, TunnelListener> {
 
     /**
      * Borrows a specific tunnel. Annotations parameter is reserved.If there
@@ -196,17 +198,4 @@
      */
     Iterable<Tunnel> getTunnels(DeviceId deviceId);
 
-    /**
-     * Adds the specified tunnel listener.
-     *
-     * @param listener tunnel listener
-     */
-    void addListener(TunnelListener listener);
-
-    /**
-     * Removes the specified tunnel listener.
-     *
-     * @param listener tunnel listener
-     */
-    void removeListener(TunnelListener listener);
 }
