diff --git a/apps/events/src/main/java/org/onosproject/events/EventHistoryManager.java b/apps/events/src/main/java/org/onosproject/events/EventHistoryManager.java
index 08db495..3a07fff 100644
--- a/apps/events/src/main/java/org/onosproject/events/EventHistoryManager.java
+++ b/apps/events/src/main/java/org/onosproject/events/EventHistoryManager.java
@@ -32,28 +32,18 @@
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.apache.felix.scr.annotations.Service;
 import org.onlab.util.UnmodifiableDeque;
-import org.onosproject.cluster.ClusterEvent;
-import org.onosproject.cluster.ClusterEventListener;
 import org.onosproject.cluster.ClusterService;
 import org.onosproject.core.ApplicationId;
 import org.onosproject.core.CoreService;
 import org.onosproject.event.Event;
 import org.onosproject.event.ListenerTracker;
-import org.onosproject.mastership.MastershipEvent;
-import org.onosproject.mastership.MastershipListener;
 import org.onosproject.mastership.MastershipService;
 import org.onosproject.net.device.DeviceEvent;
 import org.onosproject.net.device.DeviceListener;
 import org.onosproject.net.device.DeviceService;
 import org.onosproject.net.edge.EdgePortService;
-import org.onosproject.net.host.HostEvent;
-import org.onosproject.net.host.HostListener;
 import org.onosproject.net.host.HostService;
-import org.onosproject.net.link.LinkEvent;
-import org.onosproject.net.link.LinkListener;
 import org.onosproject.net.link.LinkService;
-import org.onosproject.net.topology.TopologyEvent;
-import org.onosproject.net.topology.TopologyListener;
 import org.onosproject.net.topology.TopologyService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -126,12 +116,12 @@
                                       pruneInterval, pruneInterval, TimeUnit.SECONDS);
 
         listeners = new ListenerTracker();
-        listeners.addListener(mastershipService, new InternalMastershipListener())
+        listeners.addListener(mastershipService, this::addEvent)
                  .addListener(deviceService, new InternalDeviceListener())
-                 .addListener(linkService, new InternalLinkListener())
-                 .addListener(topologyService, new InternalTopologyListener())
-                 .addListener(hostService, new InternalHostListener())
-                 .addListener(clusterService, new InternalClusterListener())
+                 .addListener(linkService, this::addEvent)
+                 .addListener(topologyService, this::addEvent)
+                 .addListener(hostService, this::addEvent)
+                 .addListener(clusterService, this::addEvent)
                  .addListener(edgeService, this::addEvent);
 
         log.info("Started");
@@ -172,15 +162,6 @@
         history.offer(event);
     }
 
-    class InternalMastershipListener
-            implements MastershipListener {
-
-        @Override
-        public void event(MastershipEvent event) {
-            addEvent(event);
-        }
-    }
-
     class InternalDeviceListener
             implements DeviceListener {
 
@@ -199,40 +180,4 @@
         }
     }
 
-    class InternalLinkListener
-            implements LinkListener {
-
-        @Override
-        public void event(LinkEvent event) {
-            addEvent(event);
-        }
-    }
-
-    class InternalTopologyListener
-            implements TopologyListener {
-
-        @Override
-        public void event(TopologyEvent event) {
-            addEvent(event);
-        }
-    }
-
-    class InternalHostListener
-            implements HostListener {
-
-        @Override
-        public void event(HostEvent event) {
-            addEvent(event);
-        }
-    }
-
-    class InternalClusterListener
-            implements ClusterEventListener {
-
-        @Override
-        public void event(ClusterEvent event) {
-            addEvent(event);
-        }
-    }
-
 }
diff --git a/core/api/src/main/java/org/onosproject/event/ListenerTracker.java b/core/api/src/main/java/org/onosproject/event/ListenerTracker.java
index 395d869..eafd249 100644
--- a/core/api/src/main/java/org/onosproject/event/ListenerTracker.java
+++ b/core/api/src/main/java/org/onosproject/event/ListenerTracker.java
@@ -15,13 +15,14 @@
  */
 package org.onosproject.event;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
 import java.util.ArrayList;
 import java.util.List;
 
 import javax.annotation.concurrent.NotThreadSafe;
 
 import org.apache.commons.lang3.tuple.Pair;
-
 import com.google.common.annotations.Beta;
 import com.google.common.collect.Lists;
 
@@ -66,6 +67,9 @@
      */
     public <E extends Event<?, ?>, L extends EventListener<E>>
     ListenerTracker addListener(ListenerService<E, L> service, L listener) {
+
+        checkNotNull(service);
+        checkNotNull(listener);
         service.addListener(listener);
         listeners.add(Pair.of(service, listener));
         return this;
