Rename {Switch,Port,Link,Host}Event -> {...}Data

Change-Id: I89d8bae8358409514132eeac00deb0c947ecf68f
diff --git a/src/main/java/net/onrc/onos/apps/forwarding/Forwarding.java b/src/main/java/net/onrc/onos/apps/forwarding/Forwarding.java
index 5e07018..6758b7a 100644
--- a/src/main/java/net/onrc/onos/apps/forwarding/Forwarding.java
+++ b/src/main/java/net/onrc/onos/apps/forwarding/Forwarding.java
@@ -32,7 +32,7 @@
 import net.onrc.onos.core.registry.IControllerRegistryService;
 import net.onrc.onos.core.topology.Host;
 import net.onrc.onos.core.topology.ITopologyService;
-import net.onrc.onos.core.topology.LinkEvent;
+import net.onrc.onos.core.topology.LinkData;
 import net.onrc.onos.core.topology.Port;
 import net.onrc.onos.core.topology.Switch;
 import net.onrc.onos.core.topology.MutableTopology;
@@ -406,13 +406,13 @@
                         outPort = spfIntent.getDstPortNumber();
                     }
 
-                    for (Iterator<LinkEvent> i = path.iterator(); i.hasNext();) {
-                        LinkEvent le = i.next();
+                    for (Iterator<LinkData> i = path.iterator(); i.hasNext();) {
+                        LinkData ld = i.next();
 
-                        if (le.getSrc().getDpid().equals(sw.getDpid())) {
+                        if (ld.getSrc().getDpid().equals(sw.getDpid())) {
                             log.trace("The packet-in sw dpid {} is on the path.", sw.getDpid());
                             isflowEntryForThisSwitch = true;
-                            outPort = le.getSrc().getPortNumber().value();
+                            outPort = ld.getSrc().getPortNumber().value();
                             break;
                         }
                     }
diff --git a/src/main/java/net/onrc/onos/core/datastore/topology/KVDevice.java b/src/main/java/net/onrc/onos/core/datastore/topology/KVDevice.java
index 2e4b138..addb207 100644
--- a/src/main/java/net/onrc/onos/core/datastore/topology/KVDevice.java
+++ b/src/main/java/net/onrc/onos/core/datastore/topology/KVDevice.java
@@ -16,7 +16,7 @@
 import net.onrc.onos.core.datastore.utils.ByteArrayComparator;
 import net.onrc.onos.core.datastore.utils.ByteArrayUtil;
 import net.onrc.onos.core.datastore.utils.KVObject;
-import net.onrc.onos.core.topology.HostEvent;
+import net.onrc.onos.core.topology.HostData;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -61,7 +61,7 @@
      * @return HostID
      */
     public static byte[] getHostID(final byte[] mac) {
-        return HostEvent.getHostID(mac).array();
+        return HostData.getHostID(mac).array();
     }
 
     /**
diff --git a/src/main/java/net/onrc/onos/core/datastore/topology/KVLink.java b/src/main/java/net/onrc/onos/core/datastore/topology/KVLink.java
index a6a02a7..7caf097 100644
--- a/src/main/java/net/onrc/onos/core/datastore/topology/KVLink.java
+++ b/src/main/java/net/onrc/onos/core/datastore/topology/KVLink.java
@@ -9,8 +9,8 @@
 import net.onrc.onos.core.datastore.IKVTable.IKVEntry;
 import net.onrc.onos.core.datastore.serializers.Topology.LinkProperty;
 import net.onrc.onos.core.datastore.utils.KVObject;
-import net.onrc.onos.core.topology.LinkEvent;
-import net.onrc.onos.core.topology.PortEvent;
+import net.onrc.onos.core.topology.LinkData;
+import net.onrc.onos.core.topology.PortData;
 import net.onrc.onos.core.util.Dpid;
 import net.onrc.onos.core.util.PortNumber;
 
@@ -122,7 +122,7 @@
      */
     public static byte[] getLinkID(final Dpid srcDpid, final PortNumber srcPortNo,
                                    final Dpid dstDpid, final PortNumber dstPortNo) {
-        return LinkEvent.getLinkID(srcDpid, srcPortNo,
+        return LinkData.getLinkID(srcDpid, srcPortNo,
                                    dstDpid, dstPortNo).array();
     }
 
@@ -137,7 +137,7 @@
      */
     public static byte[] getLinkID(final Long srcDpid, final Long srcPortNo,
                                    final Long dstDpid, final Long dstPortNo) {
-        return LinkEvent.getLinkID(srcDpid, srcPortNo, dstDpid,
+        return LinkData.getLinkID(srcDpid, srcPortNo, dstDpid,
                 dstPortNo).array();
     }
 
@@ -162,7 +162,7 @@
             throw new IllegalArgumentException("Invalid Link key");
         }
         final long[] srcPortPair = KVPort.getPortPairFromKey(keyBuf.slice());
-        keyBuf.position(2 + PortEvent.PORTID_BYTES);
+        keyBuf.position(2 + PortData.PORTID_BYTES);
         final long[] dstPortPair = KVPort.getPortPairFromKey(keyBuf.slice());
 
         long[] tuple = new long[4];
diff --git a/src/main/java/net/onrc/onos/core/datastore/topology/KVPort.java b/src/main/java/net/onrc/onos/core/datastore/topology/KVPort.java
index 2fc6be9..341e867 100644
--- a/src/main/java/net/onrc/onos/core/datastore/topology/KVPort.java
+++ b/src/main/java/net/onrc/onos/core/datastore/topology/KVPort.java
@@ -10,7 +10,7 @@
 import net.onrc.onos.core.datastore.serializers.Topology.PortProperty;
 import net.onrc.onos.core.datastore.utils.ByteArrayUtil;
 import net.onrc.onos.core.datastore.utils.KVObject;
-import net.onrc.onos.core.topology.PortEvent;
+import net.onrc.onos.core.topology.PortData;
 import net.onrc.onos.core.util.Dpid;
 import net.onrc.onos.core.util.PortNumber;
 
@@ -69,7 +69,7 @@
      * @return PortID
      */
     public static byte[] getPortID(final Dpid dpid, final PortNumber number) {
-        return PortEvent.getPortID(dpid, number).array();
+        return PortData.getPortID(dpid, number).array();
     }
 
     /**
@@ -80,7 +80,7 @@
      * @return PortID
      */
     public static byte[] getPortID(final Long dpid, final Long number) {
-        return PortEvent.getPortID(dpid, number).array();
+        return PortData.getPortID(dpid, number).array();
     }
 
     /**
diff --git a/src/main/java/net/onrc/onos/core/datastore/topology/KVSwitch.java b/src/main/java/net/onrc/onos/core/datastore/topology/KVSwitch.java
index 1d9b58e..9c3889f 100644
--- a/src/main/java/net/onrc/onos/core/datastore/topology/KVSwitch.java
+++ b/src/main/java/net/onrc/onos/core/datastore/topology/KVSwitch.java
@@ -9,7 +9,7 @@
 import net.onrc.onos.core.datastore.IKVTable.IKVEntry;
 import net.onrc.onos.core.datastore.serializers.Topology.SwitchProperty;
 import net.onrc.onos.core.datastore.utils.KVObject;
-import net.onrc.onos.core.topology.SwitchEvent;
+import net.onrc.onos.core.topology.SwitchData;
 import net.onrc.onos.core.util.Dpid;
 
 import org.slf4j.Logger;
@@ -64,7 +64,7 @@
      * @return SwitchID
      */
     public static byte[] getSwitchID(final Long dpid) {
-        return SwitchEvent.getSwitchID(dpid).array();
+        return SwitchData.getSwitchID(dpid).array();
     }
 
     /**
diff --git a/src/main/java/net/onrc/onos/core/intent/ConstrainedBFSTree.java b/src/main/java/net/onrc/onos/core/intent/ConstrainedBFSTree.java
index 4d9d4ef..a3e9826 100644
--- a/src/main/java/net/onrc/onos/core/intent/ConstrainedBFSTree.java
+++ b/src/main/java/net/onrc/onos/core/intent/ConstrainedBFSTree.java
@@ -5,7 +5,7 @@
 import java.util.LinkedList;
 
 import net.onrc.onos.core.topology.Link;
-import net.onrc.onos.core.topology.LinkEvent;
+import net.onrc.onos.core.topology.LinkData;
 import net.onrc.onos.core.topology.Switch;
 import net.onrc.onos.core.util.Dpid;
 
@@ -19,7 +19,7 @@
 public class ConstrainedBFSTree {
     LinkedList<Switch> switchQueue = new LinkedList<>();
     HashSet<Dpid> switchSearched = new HashSet<>();
-    HashMap<Dpid, LinkEvent> upstreamLinks = new HashMap<>();
+    HashMap<Dpid, LinkData> upstreamLinks = new HashMap<>();
     HashMap<Dpid, Path> paths = new HashMap<>();
     Switch rootSwitch;
     PathIntentMap intents = null;
@@ -68,7 +68,7 @@
                 }
                 switchQueue.add(reachedSwitch);
                 switchSearched.add(reachedSwitch.getDpid());
-                upstreamLinks.put(reachedSwitch.getDpid(), new LinkEvent(link));
+                upstreamLinks.put(reachedSwitch.getDpid(), new LinkData(link));
             }
         }
     }
@@ -86,7 +86,7 @@
             path = new Path();
             Dpid sw = leafSwitch.getDpid();
             while (!sw.equals(rootSwitchDpid)) {
-                LinkEvent upstreamLink = upstreamLinks.get(sw);
+                LinkData upstreamLink = upstreamLinks.get(sw);
                 path.add(0, upstreamLink);
                 sw = upstreamLink.getSrc().getDpid();
             }
diff --git a/src/main/java/net/onrc/onos/core/intent/Path.java b/src/main/java/net/onrc/onos/core/intent/Path.java
index 1fa33cf..a618822 100644
--- a/src/main/java/net/onrc/onos/core/intent/Path.java
+++ b/src/main/java/net/onrc/onos/core/intent/Path.java
@@ -6,31 +6,31 @@
 import java.util.List;
 import java.util.ListIterator;
 
-import net.onrc.onos.core.topology.LinkEvent;
+import net.onrc.onos.core.topology.LinkData;
 
 /**
  * Base class for Path representation, which implements the List interface.
  */
-public class Path implements List<LinkEvent> {
+public class Path implements List<LinkData> {
 
-    private final List<LinkEvent> links;
+    private final List<LinkData> links;
 
     /**
      * Default constructor to create an empty path.
      */
     public Path() {
-        links = new LinkedList<LinkEvent>();
+        links = new LinkedList<LinkData>();
     }
 
     /**
      * Returns a string representation of the path.
      *
-     * @return "[LinkEvent src->dst],..."
+     * @return "[LinkData src->dst],..."
      */
     @Override
     public String toString() {
         StringBuilder builder = new StringBuilder();
-        Iterator<LinkEvent> i = this.iterator();
+        Iterator<LinkData> i = this.iterator();
         while (i.hasNext()) {
             builder.append(i.next().toString());
             if (i.hasNext()) {
@@ -56,7 +56,7 @@
     }
 
     @Override
-    public Iterator<LinkEvent> iterator() {
+    public Iterator<LinkData> iterator() {
         return links.iterator();
     }
 
@@ -71,8 +71,8 @@
     }
 
     @Override
-    public boolean add(LinkEvent e) {
-        return links.add(e);
+    public boolean add(LinkData d) {
+        return links.add(d);
     }
 
     @Override
@@ -86,12 +86,12 @@
     }
 
     @Override
-    public boolean addAll(Collection<? extends LinkEvent> c) {
+    public boolean addAll(Collection<? extends LinkData> c) {
         return links.addAll(c);
     }
 
     @Override
-    public boolean addAll(int index, Collection<? extends LinkEvent> c) {
+    public boolean addAll(int index, Collection<? extends LinkData> c) {
         return links.addAll(index, c);
     }
 
@@ -121,22 +121,22 @@
     }
 
     @Override
-    public LinkEvent get(int index) {
+    public LinkData get(int index) {
         return links.get(index);
     }
 
     @Override
-    public LinkEvent set(int index, LinkEvent element) {
+    public LinkData set(int index, LinkData element) {
         return links.set(index, element);
     }
 
     @Override
-    public void add(int index, LinkEvent element) {
+    public void add(int index, LinkData element) {
         links.add(index, element);
     }
 
     @Override
-    public LinkEvent remove(int index) {
+    public LinkData remove(int index) {
         return links.remove(index);
     }
 
@@ -151,17 +151,17 @@
     }
 
     @Override
-    public ListIterator<LinkEvent> listIterator() {
+    public ListIterator<LinkData> listIterator() {
         return links.listIterator();
     }
 
     @Override
-    public ListIterator<LinkEvent> listIterator(int index) {
+    public ListIterator<LinkData> listIterator(int index) {
         return links.listIterator(index);
     }
 
     @Override
-    public List<LinkEvent> subList(int fromIndex, int toIndex) {
+    public List<LinkData> subList(int fromIndex, int toIndex) {
         return links.subList(fromIndex, toIndex);
     }
 }
diff --git a/src/main/java/net/onrc/onos/core/intent/PathIntentMap.java b/src/main/java/net/onrc/onos/core/intent/PathIntentMap.java
index d784439..b8962d8 100644
--- a/src/main/java/net/onrc/onos/core/intent/PathIntentMap.java
+++ b/src/main/java/net/onrc/onos/core/intent/PathIntentMap.java
@@ -6,7 +6,7 @@
 import java.util.HashSet;
 
 import net.onrc.onos.core.topology.Link;
-import net.onrc.onos.core.topology.LinkEvent;
+import net.onrc.onos.core.topology.LinkData;
 import net.onrc.onos.core.util.Dpid;
 import net.onrc.onos.core.util.LinkTuple;
 import net.onrc.onos.core.util.PortNumber;
@@ -74,9 +74,9 @@
         super.putIntent(intent);
 
         PathIntent pathIntent = (PathIntent) intent;
-        for (LinkEvent linkEvent : pathIntent.getPath()) {
-            put(linkEvent.getSrc(), (PathIntent) intent);
-            put(linkEvent.getDst(), (PathIntent) intent);
+        for (LinkData linkData : pathIntent.getPath()) {
+            put(linkData.getSrc(), (PathIntent) intent);
+            put(linkData.getDst(), (PathIntent) intent);
         }
     }
 
@@ -88,9 +88,9 @@
     @Override
     protected void removeIntent(String intentId) {
         PathIntent intent = (PathIntent) getIntent(intentId);
-        for (LinkEvent linkEvent : intent.getPath()) {
-            get(linkEvent.getSrc()).remove(intent);
-            get(linkEvent.getDst()).remove(intent);
+        for (LinkData linkData : intent.getPath()) {
+            get(linkData.getSrc()).remove(intent);
+            get(linkData.getDst()).remove(intent);
         }
         super.removeIntent(intentId);
     }
diff --git a/src/main/java/net/onrc/onos/core/intent/runtime/PathCalcRuntimeModule.java b/src/main/java/net/onrc/onos/core/intent/runtime/PathCalcRuntimeModule.java
index ccad3ba..bb1208d 100644
--- a/src/main/java/net/onrc/onos/core/intent/runtime/PathCalcRuntimeModule.java
+++ b/src/main/java/net/onrc/onos/core/intent/runtime/PathCalcRuntimeModule.java
@@ -43,9 +43,9 @@
 import net.onrc.onos.core.registry.IControllerRegistryService;
 import net.onrc.onos.core.topology.ITopologyListener;
 import net.onrc.onos.core.topology.ITopologyService;
-import net.onrc.onos.core.topology.LinkEvent;
-import net.onrc.onos.core.topology.PortEvent;
-import net.onrc.onos.core.topology.SwitchEvent;
+import net.onrc.onos.core.topology.LinkData;
+import net.onrc.onos.core.topology.PortData;
+import net.onrc.onos.core.topology.SwitchData;
 import net.onrc.onos.core.topology.TopologyEvents;
 import net.onrc.onos.core.util.Dpid;
 import net.onrc.onos.core.util.LinkTuple;
@@ -265,7 +265,7 @@
     private static final String INTENT_STATE_EVENT_CHANNEL_NAME = "onos.pathintent_state";
     private static final Logger log = LoggerFactory.getLogger(PathCalcRuntimeModule.class);
 
-    private HashSet<LinkTuple> unmatchedLinkEvents = new HashSet<>();
+    private HashSet<LinkTuple> unmatchedLinkDataEntries = new HashSet<>();
     private ConcurrentMap<String, Set<Long>> intentInstalledMap = new ConcurrentHashMap<String, Set<Long>>();
     private ConcurrentMap<String, Intent> staleIntents = new ConcurrentHashMap<String, Intent>();
     private DeleteIntentsTracker deleteIntentsTracker = new DeleteIntentsTracker();
@@ -414,8 +414,8 @@
         Set<Long> allSwitchesForPath = new HashSet<Long>();
         ShortestPathIntent spfIntent = (ShortestPathIntent) pathIntent.getParentIntent();
 
-        for (LinkEvent linkEvent : pathIntent.getPath()) {
-            long sw = linkEvent.getSrc().getDpid().value();
+        for (LinkData linkData : pathIntent.getPath()) {
+            long sw = linkData.getSrc().getDpid().value();
             allSwitchesForPath.add(sw);
         }
         allSwitchesForPath.add(spfIntent.getDstSwitchDpid());
@@ -446,8 +446,8 @@
         Set<Long> allSwitchesForPath = new HashSet<Long>();
         ShortestPathIntent spfIntent = (ShortestPathIntent) pathIntent.getParentIntent();
 
-        for (LinkEvent linkEvent : pathIntent.getPath()) {
-            long sw = linkEvent.getSrc().getDpid().value();
+        for (LinkData linkData : pathIntent.getPath()) {
+            long sw = linkData.getSrc().getDpid().value();
 
             if (domainSwitchDpids.contains(sw)) {
                 allSwitchesForPath.add(sw);
@@ -835,56 +835,56 @@
         HashSet<Intent> affectedPaths = new HashSet<>();
 
         boolean rerouteAll = false;
-        for (LinkEvent le : topologyEvents.getAddedLinkEvents()) {
-            final LinkTuple rev = new LinkTuple(le.getDst(), le.getSrc());
-            if (unmatchedLinkEvents.contains(rev)) {
+        for (LinkData ld : topologyEvents.getAddedLinkDataEntries()) {
+            final LinkTuple rev = new LinkTuple(ld.getDst(), ld.getSrc());
+            if (unmatchedLinkDataEntries.contains(rev)) {
                 rerouteAll = true;
-                unmatchedLinkEvents.remove(rev);
-                log.debug("Found matched LinkEvent: {} {}", rev, le);
+                unmatchedLinkDataEntries.remove(rev);
+                log.debug("Found matched LinkData: {} {}", rev, ld);
             } else {
-                unmatchedLinkEvents.add(le.getLinkTuple());
-                log.debug("Adding unmatched LinkEvent: {}", le);
+                unmatchedLinkDataEntries.add(ld.getLinkTuple());
+                log.debug("Adding unmatched LinkData: {}", ld);
             }
         }
-        for (LinkEvent le : topologyEvents.getRemovedLinkEvents()) {
-            if (unmatchedLinkEvents.contains(le.getLinkTuple())) {
-                unmatchedLinkEvents.remove(le.getLinkTuple());
-                log.debug("Removing LinkEvent: {}", le);
+        for (LinkData ld : topologyEvents.getRemovedLinkDataEntries()) {
+            if (unmatchedLinkDataEntries.contains(ld.getLinkTuple())) {
+                unmatchedLinkDataEntries.remove(ld.getLinkTuple());
+                log.debug("Removing LinkData: {}", ld);
             }
         }
-        if (unmatchedLinkEvents.size() > 0) {
-            log.debug("Unmatched link events: {} events", unmatchedLinkEvents.size());
+        if (unmatchedLinkDataEntries.size() > 0) {
+            log.debug("Unmatched link events: {} events", unmatchedLinkDataEntries.size());
         }
 
         if (rerouteAll) {
             //
-            // (topologyEvents.getAddedLinkEvents().size() > 0) ||
-            // (topologyEvents.getAddedPortEvents().size() > 0) ||
-            // (topologyEvents.getAddedSwitchEvents.size() > 0)
+            // (topologyEvents.getAddedLinkDataEntries().size() > 0) ||
+            // (topologyEvents.getAddedPortDataEntries().size() > 0) ||
+            // (topologyEvents.getAddedSwitchDataEntries().size() > 0)
             //
             p.log("begin_getAllIntents");
             affectedPaths.addAll(getPathIntents().getAllIntents());
             p.log("end_getAllIntents");
-        } else if (topologyEvents.getRemovedSwitchEvents().size() > 0 ||
-                   topologyEvents.getRemovedLinkEvents().size() > 0 ||
-                   topologyEvents.getRemovedPortEvents().size() > 0) {
+        } else if (topologyEvents.getRemovedSwitchDataEntries().size() > 0 ||
+                   topologyEvents.getRemovedLinkDataEntries().size() > 0 ||
+                   topologyEvents.getRemovedPortDataEntries().size() > 0) {
             p.log("begin_getIntentsByLink");
-            for (LinkEvent linkEvent : topologyEvents.getRemovedLinkEvents()) {
-                affectedPaths.addAll(pathIntents.getIntentsByLink(linkEvent.getLinkTuple()));
+            for (LinkData linkData : topologyEvents.getRemovedLinkDataEntries()) {
+                affectedPaths.addAll(pathIntents.getIntentsByLink(linkData.getLinkTuple()));
             }
             p.log("end_getIntentsByLink");
 
             p.log("begin_getIntentsByPort");
-            for (PortEvent portEvent : topologyEvents.getRemovedPortEvents()) {
+            for (PortData portData : topologyEvents.getRemovedPortDataEntries()) {
                 affectedPaths.addAll(pathIntents.getIntentsByPort(
-                        portEvent.getDpid(),
-                        portEvent.getPortNumber()));
+                        portData.getDpid(),
+                        portData.getPortNumber()));
             }
             p.log("end_getIntentsByPort");
 
             p.log("begin_getIntentsByDpid");
-            for (SwitchEvent switchEvent : topologyEvents.getRemovedSwitchEvents()) {
-                affectedPaths.addAll(pathIntents.getIntentsByDpid(switchEvent.getDpid()));
+            for (SwitchData switchData : topologyEvents.getRemovedSwitchDataEntries()) {
+                affectedPaths.addAll(pathIntents.getIntentsByDpid(switchData.getDpid()));
             }
             p.log("end_getIntentsByDpid");
         }
diff --git a/src/main/java/net/onrc/onos/core/intent/runtime/PlanCalcRuntime.java b/src/main/java/net/onrc/onos/core/intent/runtime/PlanCalcRuntime.java
index 07f7bec..39320c9 100644
--- a/src/main/java/net/onrc/onos/core/intent/runtime/PlanCalcRuntime.java
+++ b/src/main/java/net/onrc/onos/core/intent/runtime/PlanCalcRuntime.java
@@ -18,7 +18,7 @@
 import net.onrc.onos.core.intent.IntentOperationList;
 import net.onrc.onos.core.intent.PathIntent;
 import net.onrc.onos.core.intent.ShortestPathIntent;
-import net.onrc.onos.core.topology.LinkEvent;
+import net.onrc.onos.core.topology.LinkData;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -117,9 +117,9 @@
                 continue;
             }
             List<FlowEntry> entries = new ArrayList<>();
-            for (LinkEvent linkEvent : intent.getPath()) {
-                long sw = linkEvent.getSrc().getDpid().value();
-                dstPort = linkEvent.getSrc().getPortNumber().value();
+            for (LinkData linkData : intent.getPath()) {
+                long sw = linkData.getSrc().getDpid().value();
+                dstPort = linkData.getSrc().getPortNumber().value();
                 FlowEntry fe = new FlowEntry(sw, srcPort, dstPort, srcMac, dstMac,
                                              srcIP, dstIP, i.operator);
                 if (sw != firstSrcSw) {
@@ -134,7 +134,7 @@
                     fe.setFlowEntryId(cookieId);
                 }
                 entries.add(fe);
-                srcPort = linkEvent.getDst().getPortNumber().value();
+                srcPort = linkData.getDst().getPortNumber().value();
             }
             if (lastDstSw >= 0 && lastDstPort >= 0) {
                 long sw = lastDstSw;
diff --git a/src/main/java/net/onrc/onos/core/intent/runtime/web/ShortestPathResource.java b/src/main/java/net/onrc/onos/core/intent/runtime/web/ShortestPathResource.java
index 2910c3d..5f76f33 100644
--- a/src/main/java/net/onrc/onos/core/intent/runtime/web/ShortestPathResource.java
+++ b/src/main/java/net/onrc/onos/core/intent/runtime/web/ShortestPathResource.java
@@ -8,7 +8,7 @@
 import net.onrc.onos.core.intent.Path;
 import net.onrc.onos.core.topology.ITopologyService;
 import net.onrc.onos.core.topology.Link;
-import net.onrc.onos.core.topology.LinkEvent;
+import net.onrc.onos.core.topology.LinkData;
 import net.onrc.onos.core.topology.Switch;
 import net.onrc.onos.core.topology.MutableTopology;
 import net.onrc.onos.core.util.Dpid;
@@ -65,12 +65,12 @@
                 return null;
             }
             List<Link> links = new LinkedList<>();
-            for (LinkEvent linkEvent : path) {
+            for (LinkData linkData : path) {
                 Link link = mutableTopology.getLink(
-                        linkEvent.getSrc().getDpid(),
-                        linkEvent.getSrc().getPortNumber(),
-                        linkEvent.getDst().getDpid(),
-                        linkEvent.getDst().getPortNumber());
+                        linkData.getSrc().getDpid(),
+                        linkData.getSrc().getPortNumber(),
+                        linkData.getDst().getDpid(),
+                        linkData.getDst().getPortNumber());
                 if (link == null) {
                     return null;
                 }
diff --git a/src/main/java/net/onrc/onos/core/newintent/PointToPointIntentCompiler.java b/src/main/java/net/onrc/onos/core/newintent/PointToPointIntentCompiler.java
index 3c04e0d..a4cfceb 100644
--- a/src/main/java/net/onrc/onos/core/newintent/PointToPointIntentCompiler.java
+++ b/src/main/java/net/onrc/onos/core/newintent/PointToPointIntentCompiler.java
@@ -16,7 +16,7 @@
 import net.onrc.onos.core.matchaction.match.PacketMatch;
 import net.onrc.onos.core.topology.BaseTopology;
 import net.onrc.onos.core.topology.ITopologyService;
-import net.onrc.onos.core.topology.LinkEvent;
+import net.onrc.onos.core.topology.LinkData;
 import net.onrc.onos.core.topology.Switch;
 import net.onrc.onos.core.util.IdGenerator;
 import net.onrc.onos.core.util.SwitchPort;
@@ -104,13 +104,13 @@
         // transform is avoided.
         // Ref: https://code.google.com/p/guava-libraries/issues/detail?id=1812
         // TODO: replace with transform when the above issue is resolved
-        ImmutableList<LinkEvent> events = FluentIterable.from(path)
+        ImmutableList<LinkData> dataEntries = FluentIterable.from(path)
                 .filter(Predicates.notNull())
                 .toList();
 
         Path converted = new Path();
-        for (LinkEvent event: events) {
-            converted.add(new FlowLink(event.getSrc(), event.getDst()));
+        for (LinkData data: dataEntries) {
+            converted.add(new FlowLink(data.getSrc(), data.getDst()));
         }
         return converted;
     }
diff --git a/src/main/java/net/onrc/onos/core/topology/BaseInternalTopology.java b/src/main/java/net/onrc/onos/core/topology/BaseInternalTopology.java
index cf44c32..3cd6979 100644
--- a/src/main/java/net/onrc/onos/core/topology/BaseInternalTopology.java
+++ b/src/main/java/net/onrc/onos/core/topology/BaseInternalTopology.java
@@ -14,120 +14,121 @@
 public interface BaseInternalTopology extends BaseMastership {
 
     /**
-     * Gets a SwitchEvent.
+     * Gets a SwitchData.
      *
      * @param dpid Switch DPID
-     * @return the SwitchEvent for the Switch DPID if found, otherwise null
+     * @return the SwitchData for the Switch DPID if found, otherwise null
      */
-    public SwitchEvent getSwitchEvent(Dpid dpid);
+    public SwitchData getSwitchData(Dpid dpid);
 
     /**
-     * Gets all SwitchEvent entries.
+     * Gets all SwitchData entries.
      *
-     * @return all SwitchEvent entries.
+     * @return all SwitchData entries.
      */
-    public Collection<SwitchEvent> getAllSwitchEvents();
+    public Collection<SwitchData> getAllSwitchDataEntries();
 
     /**
-     * Gets a PortEvent.
+     * Gets a PortData.
      *
      * @param port Port identifier
-     * @return the PortEvent for the Port identifier if found, otherwise null
+     * @return the PortData for the Port identifier if found, otherwise null
      */
-    public PortEvent getPortEvent(SwitchPort port);
+    public PortData getPortData(SwitchPort port);
 
     /**
-     * Gets a PortEvent.
+     * Gets a PortData.
      *
      * @param dpid Switch DPID
      * @param portNumber Port number
-     * @return the PortEvent for the (Dpid, PortNumber) if found, otherwise null
+     * @return the PortData for the (Dpid, PortNumber) if found, otherwise null
      */
-    public PortEvent getPortEvent(Dpid dpid, PortNumber portNumber);
+    public PortData getPortData(Dpid dpid, PortNumber portNumber);
 
     /**
-     * Gets all the PortEvents on a switch.
+     * Gets all PortData entries on a switch.
      *
      * @param dpid Switch DPID
-     * @return PortEvents
+     * @return all PortData entries on a switch.
      */
-    public Collection<PortEvent> getPortEvents(Dpid dpid);
+    public Collection<PortData> getPortDataEntries(Dpid dpid);
 
     /**
-     * Gets all PortEvent entries.
+     * Gets all PortData entries.
      *
-     * @return all PortEvent entries.
+     * @return all PortData entries.
      */
-    public Collection<PortEvent> getAllPortEvents();
+    public Collection<PortData> getAllPortDataEntries();
 
     /**
-     * Gets a LinkEvent.
+     * Gets a LinkData.
      *
      * @param linkId Link identifier
-     * @return the LinkEvent for the Link identifier if found, otherwise null
+     * @return the LinkData for the Link identifier if found, otherwise null
      */
-    public LinkEvent getLinkEvent(LinkTuple linkId);
+    public LinkData getLinkData(LinkTuple linkId);
 
     /**
-     * Gets a LinkEvent.
+     * Gets a LinkData.
      *
      * @param linkId Link identifier
      * @param type type
-     * @return the LinkEvent for the Link identifier and type if found, otherwise null
+     * @return the LinkData for the Link identifier and type if found,
+     * otherwise null
      */
-    public LinkEvent getLinkEvent(final LinkTuple linkId, final String type);
+    public LinkData getLinkData(final LinkTuple linkId, final String type);
 
     /**
-     * Gets all the LinkEvent departing from specified port.
+     * Gets all LinkData entries departing from a specified port.
      *
      * @param srcPort source port identifier
-     * @return Collection of LinkEvent entries
+     * @return Collection of LinkData entries
      */
-    public Collection<LinkEvent> getLinkEventsFrom(final SwitchPort srcPort);
+    public Collection<LinkData> getLinkDataEntriesFrom(final SwitchPort srcPort);
 
     /**
-     * Gets all the LinkEvent pointing toward specified port.
+     * Gets all LinkData entries pointing toward a specified port.
      *
      * @param dstPort destination port identifier
-     * @return Collection of LinkEvent entries
+     * @return Collection of LinkData entries
      */
-    public Collection<LinkEvent> getLinkEventsTo(final SwitchPort dstPort);
+    public Collection<LinkData> getLinkDataEntriesTo(final SwitchPort dstPort);
 
     /**
-     * Gets a collection of LinkEvent entries.
+     * Gets a collection of LinkData entries.
      *
      * @param linkId Link identifier
-     * @return Collection of LinkEvent entries.
+     * @return Collection of LinkData entries.
      */
-    public Collection<LinkEvent> getLinkEvents(LinkTuple linkId);
+    public Collection<LinkData> getLinkDataEntries(LinkTuple linkId);
 
     /**
-     * Gets all LinkEvent entries.
+     * Gets all LinkData entries.
      *
-     * @return all LinkEvent entries.
+     * @return all LinkData entries.
      */
-    public Collection<LinkEvent> getAllLinkEvents();
+    public Collection<LinkData> getAllLinkDataEntries();
 
     /**
-     * Gets a HostEvent.
+     * Gets a HostData.
      *
      * @param mac MACAddress of the host
-     * @return the HostEvent for the MACAddress if found, otherwise null
+     * @return the HostData for the MACAddress if found, otherwise null
      */
-    public HostEvent getHostEvent(MACAddress mac);
+    public HostData getHostData(MACAddress mac);
 
     /**
-     * Gets all HostEvent entries attached to specified port.
+     * Gets all HostData entries attached to a specified port.
      *
      * @param port attachment point identifier
-     * @return Collection of HostEvent entries.
+     * @return Collection of HostData entries.
      */
-    public Collection<HostEvent> getHostEvents(SwitchPort port);
+    public Collection<HostData> getHostDataEntries(SwitchPort port);
 
     /**
-     * Gets all HostEvent entries.
+     * Gets all HostData entries.
      *
-     * @return all HostEvent entries.
+     * @return all HostData entries.
      */
-    public Collection<HostEvent> getAllHostEvents();
+    public Collection<HostData> getAllHostDataEntries();
 }
diff --git a/src/main/java/net/onrc/onos/core/topology/BaseTopologyAdaptor.java b/src/main/java/net/onrc/onos/core/topology/BaseTopologyAdaptor.java
index 2a6ac33..274c7ed 100644
--- a/src/main/java/net/onrc/onos/core/topology/BaseTopologyAdaptor.java
+++ b/src/main/java/net/onrc/onos/core/topology/BaseTopologyAdaptor.java
@@ -32,7 +32,7 @@
 
     @Override
     public Switch getSwitch(Dpid dpid) {
-        final SwitchEvent sw = internal.getSwitchEvent(dpid);
+        final SwitchData sw = internal.getSwitchData(dpid);
         if (sw != null) {
             return new SwitchImpl(internal, dpid);
         }
@@ -41,9 +41,9 @@
 
     @Override
     public Iterable<Switch> getSwitches() {
-        final Collection<SwitchEvent> switches = internal.getAllSwitchEvents();
+        final Collection<SwitchData> switches = internal.getAllSwitchDataEntries();
         List<Switch> list = new ArrayList<>(switches.size());
-        for (SwitchEvent elm : switches) {
+        for (SwitchData elm : switches) {
             list.add(new SwitchImpl(internal, elm.getDpid()));
         }
         return list;
@@ -51,7 +51,7 @@
 
     @Override
     public Port getPort(Dpid dpid, PortNumber portNumber) {
-        final PortEvent port = internal.getPortEvent(dpid, portNumber);
+        final PortData port = internal.getPortData(dpid, portNumber);
         if (port != null) {
             return new PortImpl(internal, port.getSwitchPort());
         }
@@ -65,9 +65,9 @@
 
     @Override
     public Collection<Port> getPorts(Dpid dpid) {
-        final Collection<PortEvent> ports = internal.getPortEvents(dpid);
+        final Collection<PortData> ports = internal.getPortDataEntries(dpid);
         List<Port> list = new ArrayList<>(ports.size());
-        for (PortEvent elm : ports) {
+        for (PortData elm : ports) {
             list.add(new PortImpl(internal, elm.getSwitchPort()));
         }
         return list;
@@ -86,8 +86,8 @@
 
     @Override
     public Link getOutgoingLink(SwitchPort port) {
-        final Collection<LinkEvent> links = internal.getLinkEventsFrom(port);
-        LinkEvent link = getPacketLinkEventIfExists(links);
+        final Collection<LinkData> links = internal.getLinkDataEntriesFrom(port);
+        LinkData link = getPacketLinkDataIfExists(links);
         if (link != null) {
             return new LinkImpl(internal, link.getLinkTuple());
         }
@@ -96,8 +96,8 @@
 
     @Override
     public Link getIncomingLink(SwitchPort port) {
-        final Collection<LinkEvent> links = internal.getLinkEventsTo(port);
-        LinkEvent link = getPacketLinkEventIfExists(links);
+        final Collection<LinkData> links = internal.getLinkDataEntriesTo(port);
+        LinkData link = getPacketLinkDataIfExists(links);
         if (link != null) {
             return new LinkImpl(internal, link.getLinkTuple());
         }
@@ -111,8 +111,8 @@
      * @param links Collection of links to search from
      * @return Link instance found or null if no link exists
      */
-    private static LinkEvent getPacketLinkEventIfExists(Collection<LinkEvent> links) {
-        for (LinkEvent link : links) {
+    private static LinkData getPacketLinkDataIfExists(Collection<LinkData> links) {
+        for (LinkData link : links) {
             if (TopologyElement.TYPE_PACKET_LAYER.equals(link.getType())) {
                 return link;
             }
@@ -136,8 +136,8 @@
 
     @Override
     public Link getOutgoingLink(SwitchPort port, String type) {
-        final Collection<LinkEvent> links = internal.getLinkEventsFrom(port);
-        for (LinkEvent link : links) {
+        final Collection<LinkData> links = internal.getLinkDataEntriesFrom(port);
+        for (LinkData link : links) {
             if (link.getType().equals(type)) {
                 return new LinkImpl(internal, link.getLinkTuple());
             }
@@ -147,8 +147,8 @@
 
     @Override
     public Link getIncomingLink(SwitchPort port, String type) {
-        final Collection<LinkEvent> links = internal.getLinkEventsTo(port);
-        for (LinkEvent link : links) {
+        final Collection<LinkData> links = internal.getLinkDataEntriesTo(port);
+        for (LinkData link : links) {
             if (link.getType().equals(type)) {
                 return new LinkImpl(internal, link.getLinkTuple());
             }
@@ -159,33 +159,33 @@
 
     @Override
     public Collection<Link> getOutgoingLinks(SwitchPort port) {
-        final Collection<LinkEvent> links = internal.getLinkEventsFrom(port);
+        final Collection<LinkData> links = internal.getLinkDataEntriesFrom(port);
         return toLinkImpls(internal, links);
     }
 
     @Override
     public Collection<Link> getIncomingLinks(SwitchPort port) {
-        final Collection<LinkEvent> links = internal.getLinkEventsTo(port);
+        final Collection<LinkData> links = internal.getLinkDataEntriesTo(port);
         return toLinkImpls(internal, links);
     }
 
 
     /**
-     * Converts collection of LinkEvent to collection of LinkImpls.
+     * Converts collection of LinkData to collection of LinkImpls.
      *
      * @param internalTopology topology {@code links} resides
-     * @param links collection of LinkEvent
+     * @param links collection of LinkData
      * @return collection of {@link LinkImpl}s
      */
     private static Collection<Link> toLinkImpls(
                                 final BaseInternalTopology internalTopology,
-                                final Collection<LinkEvent> links) {
+                                final Collection<LinkData> links) {
 
         if (links == null) {
             return Collections.emptyList();
         }
         List<Link> list = new ArrayList<>(links.size());
-        for (LinkEvent elm : links) {
+        for (LinkData elm : links) {
             list.add(new LinkImpl(internalTopology, elm.getLinkTuple()));
         }
         return list;
@@ -228,14 +228,14 @@
 
     @Override
     public Iterable<Link> getLinks() {
-        final Collection<LinkEvent> links = internal.getAllLinkEvents();
+        final Collection<LinkData> links = internal.getAllLinkDataEntries();
         return toLinkImpls(internal, links);
     }
 
     @Override
     public Host getHostByMac(MACAddress address) {
 
-        HostEvent host = internal.getHostEvent(address);
+        HostData host = internal.getHostData(address);
         if (host != null) {
             return new HostImpl(internal, address);
         }
@@ -244,23 +244,23 @@
 
     @Override
     public Iterable<Host> getHosts() {
-        return toHostImpls(internal, internal.getAllHostEvents());
+        return toHostImpls(internal, internal.getAllHostDataEntries());
     }
 
     /**
-     * Converts collection of HostEvent to collection of HostImpl.
+     * Converts collection of HostData to collection of HostImpl.
      *
      * @param internalTopology topology {@code hosts} resides
-     * @param hosts collection of HostEvent
+     * @param hosts collection of HostData
      * @return collection of HostImpl
      */
     private static List<Host> toHostImpls(BaseInternalTopology internalTopology,
-                                          Collection<HostEvent> hosts) {
+                                          Collection<HostData> hosts) {
         if (hosts == null) {
             return Collections.emptyList();
         }
         List<Host> list = new ArrayList<>(hosts.size());
-        for (HostEvent elm : hosts) {
+        for (HostData elm : hosts) {
             list.add(new HostImpl(internalTopology, elm.getMac()));
         }
         return list;
@@ -268,7 +268,7 @@
 
     @Override
     public Collection<Host> getHosts(SwitchPort port) {
-        return toHostImpls(internal, internal.getHostEvents(port));
+        return toHostImpls(internal, internal.getHostDataEntries(port));
     }
 
 
diff --git a/src/main/java/net/onrc/onos/core/topology/HostEvent.java b/src/main/java/net/onrc/onos/core/topology/HostData.java
similarity index 82%
rename from src/main/java/net/onrc/onos/core/topology/HostEvent.java
rename to src/main/java/net/onrc/onos/core/topology/HostData.java
index 4b7de52..d799113 100644
--- a/src/main/java/net/onrc/onos/core/topology/HostEvent.java
+++ b/src/main/java/net/onrc/onos/core/topology/HostData.java
@@ -8,7 +8,7 @@
 import java.util.Objects;
 
 import net.floodlightcontroller.util.MACAddress;
-import net.onrc.onos.core.topology.web.serializers.HostEventSerializer;
+import net.onrc.onos.core.topology.web.serializers.HostDataSerializer;
 import net.onrc.onos.core.util.Dpid;
 import net.onrc.onos.core.util.SwitchPort;
 
@@ -16,21 +16,10 @@
 import org.codehaus.jackson.map.annotate.JsonSerialize;
 
 /**
- * Self-contained Host event(s) Object
- * <p/>
- * Host event differ from other events.
- * Host Event represent add/remove of attachmentPoint.
- * Not add/remove of the Host Object itself.
- * <p/>
- * Multiple attachmentPoints can be specified to batch events into 1 object.
- * Each should be treated as independent events.
- * <p/>
- * TODO: Rename to match what it is. (Switch/Port/Link/Host)Snapshot?
- * FIXME: Current implementation directly use this object as
- *        Replication message, but should be sending update operation info.
+ * Self-contained Host object.
  */
-@JsonSerialize(using = HostEventSerializer.class)
-public class HostEvent extends TopologyElement<HostEvent> {
+@JsonSerialize(using = HostDataSerializer.class)
+public class HostData extends TopologyElement<HostData> {
 
     private final MACAddress mac;
     private List<SwitchPort> attachmentPoints;
@@ -40,7 +29,7 @@
      * Default constructor for Serializer to use.
      */
     @Deprecated
-    protected HostEvent() {
+    protected HostData() {
         mac = null;
     }
 
@@ -49,7 +38,7 @@
      *
      * @param mac the MAC address to identify the host
      */
-    public HostEvent(MACAddress mac) {
+    public HostData(MACAddress mac) {
         this.mac = checkNotNull(mac);
         this.attachmentPoints = new LinkedList<>();
     }
@@ -57,11 +46,11 @@
     /**
      * Copy constructor.
      * <p>
-     * Creates an unfrozen copy of the given HostEvent object.
+     * Creates an unfrozen copy of the given HostData object.
      *
      * @param original the object to make copy of
      */
-    public HostEvent(HostEvent original) {
+    public HostData(HostData original) {
         super(original);
         this.mac = original.mac;
         this.attachmentPoints = new ArrayList<>(original.attachmentPoints);
@@ -193,7 +182,7 @@
             return false;
         }
 
-        HostEvent other = (HostEvent) o;
+        HostData other = (HostData) o;
         // XXX lastSeenTime excluded from Equality condition, is it OK?
         return Objects.equals(mac, other.mac) &&
                 Objects.equals(this.attachmentPoints, other.attachmentPoints);
@@ -201,6 +190,6 @@
 
     @Override
     public String toString() {
-        return "[HostEvent " + mac + " attachmentPoints:" + attachmentPoints + "]";
+        return "[HostData " + mac + " attachmentPoints:" + attachmentPoints + "]";
     }
 }
diff --git a/src/main/java/net/onrc/onos/core/topology/HostImpl.java b/src/main/java/net/onrc/onos/core/topology/HostImpl.java
index 90af82b..e45e015 100644
--- a/src/main/java/net/onrc/onos/core/topology/HostImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/HostImpl.java
@@ -35,7 +35,7 @@
     public Iterable<Port> getAttachmentPoints() {
         List<Port> ports = new ArrayList<>();
         final BaseTopologyAdaptor topo = new BaseTopologyAdaptor(topology);
-        for (SwitchPort swp : getHostEvent().getAttachmentPoints()) {
+        for (SwitchPort swp : getHostData().getAttachmentPoints()) {
             Port port = topo.getPort(swp);
             if (port != null) {
                 ports.add(port);
@@ -46,7 +46,7 @@
 
     @Override
     public long getLastSeenTime() {
-        return this.topology.getHostEvent(id).getLastSeenTime();
+        return this.topology.getHostData(id).getLastSeenTime();
     }
 
     @Override
@@ -55,12 +55,12 @@
     }
 
     /**
-     * Gets the current HostEvent.
+     * Gets the current HostData.
      *
-     * @return HostEvent
+     * @return HostData
      */
-    private HostEvent getHostEvent() {
-        return this.topology.getHostEvent(id);
+    private HostData getHostData() {
+        return this.topology.getHostData(id);
     }
 
     /**
diff --git a/src/main/java/net/onrc/onos/core/topology/ImmutableInternalTopologyWrapper.java b/src/main/java/net/onrc/onos/core/topology/ImmutableInternalTopologyWrapper.java
index 8a2a89a..2b9c976 100644
--- a/src/main/java/net/onrc/onos/core/topology/ImmutableInternalTopologyWrapper.java
+++ b/src/main/java/net/onrc/onos/core/topology/ImmutableInternalTopologyWrapper.java
@@ -38,78 +38,78 @@
     }
 
     @Override
-    public SwitchEvent getSwitchEvent(Dpid dpid) {
-        return wrapped.getSwitchEvent(dpid);
+    public SwitchData getSwitchData(Dpid dpid) {
+        return wrapped.getSwitchData(dpid);
     }
 
     @Override
-    public Collection<SwitchEvent> getAllSwitchEvents() {
-        return wrapped.getAllSwitchEvents();
+    public Collection<SwitchData> getAllSwitchDataEntries() {
+        return wrapped.getAllSwitchDataEntries();
     }
 
     @Override
-    public PortEvent getPortEvent(SwitchPort port) {
-        return wrapped.getPortEvent(port);
+    public PortData getPortData(SwitchPort port) {
+        return wrapped.getPortData(port);
     }
 
     @Override
-    public PortEvent getPortEvent(Dpid dpid, PortNumber portNumber) {
-        return wrapped.getPortEvent(dpid, portNumber);
+    public PortData getPortData(Dpid dpid, PortNumber portNumber) {
+        return wrapped.getPortData(dpid, portNumber);
     }
 
     @Override
-    public Collection<PortEvent> getPortEvents(Dpid dpid) {
-        return wrapped.getPortEvents(dpid);
+    public Collection<PortData> getPortDataEntries(Dpid dpid) {
+        return wrapped.getPortDataEntries(dpid);
     }
 
     @Override
-    public Collection<PortEvent> getAllPortEvents() {
-        return wrapped.getAllPortEvents();
+    public Collection<PortData> getAllPortDataEntries() {
+        return wrapped.getAllPortDataEntries();
     }
 
     @Override
-    public LinkEvent getLinkEvent(LinkTuple linkId) {
-        return wrapped.getLinkEvent(linkId);
+    public LinkData getLinkData(LinkTuple linkId) {
+        return wrapped.getLinkData(linkId);
     }
 
     @Override
-    public LinkEvent getLinkEvent(LinkTuple linkId, String type) {
-        return wrapped.getLinkEvent(linkId, type);
+    public LinkData getLinkData(LinkTuple linkId, String type) {
+        return wrapped.getLinkData(linkId, type);
     }
 
     @Override
-    public Collection<LinkEvent> getLinkEvents(LinkTuple linkId) {
-        return wrapped.getLinkEvents(linkId);
+    public Collection<LinkData> getLinkDataEntries(LinkTuple linkId) {
+        return wrapped.getLinkDataEntries(linkId);
     }
 
     @Override
-    public Collection<LinkEvent> getAllLinkEvents() {
-        return wrapped.getAllLinkEvents();
+    public Collection<LinkData> getAllLinkDataEntries() {
+        return wrapped.getAllLinkDataEntries();
     }
 
     @Override
-    public HostEvent getHostEvent(MACAddress mac) {
-        return wrapped.getHostEvent(mac);
+    public HostData getHostData(MACAddress mac) {
+        return wrapped.getHostData(mac);
     }
 
     @Override
-    public Collection<HostEvent> getAllHostEvents() {
-        return wrapped.getAllHostEvents();
+    public Collection<HostData> getAllHostDataEntries() {
+        return wrapped.getAllHostDataEntries();
     }
 
     @Override
-    public Collection<LinkEvent> getLinkEventsFrom(SwitchPort srcPort) {
-        return wrapped.getLinkEventsFrom(srcPort);
+    public Collection<LinkData> getLinkDataEntriesFrom(SwitchPort srcPort) {
+        return wrapped.getLinkDataEntriesFrom(srcPort);
     }
 
     @Override
-    public Collection<LinkEvent> getLinkEventsTo(SwitchPort dstPort) {
-        return wrapped.getLinkEventsTo(dstPort);
+    public Collection<LinkData> getLinkDataEntriesTo(SwitchPort dstPort) {
+        return wrapped.getLinkDataEntriesTo(dstPort);
     }
 
     @Override
-    public Collection<HostEvent> getHostEvents(SwitchPort port) {
-        return wrapped.getHostEvents(port);
+    public Collection<HostData> getHostDataEntries(SwitchPort port) {
+        return wrapped.getHostDataEntries(port);
     }
 
     @Override
diff --git a/src/main/java/net/onrc/onos/core/topology/ImmutableTopologySnapshot.java b/src/main/java/net/onrc/onos/core/topology/ImmutableTopologySnapshot.java
index 0539e18..20b3c48 100644
--- a/src/main/java/net/onrc/onos/core/topology/ImmutableTopologySnapshot.java
+++ b/src/main/java/net/onrc/onos/core/topology/ImmutableTopologySnapshot.java
@@ -55,16 +55,16 @@
     private final Map<Dpid, SortedSet<MastershipEvent>> mastership;
 
     // DPID -> Switch
-    private final Map<Dpid, SwitchEvent> switches;
-    private final Map<Dpid, Map<PortNumber, PortEvent>> ports;
+    private final Map<Dpid, SwitchData> switches;
+    private final Map<Dpid, Map<PortNumber, PortData>> ports;
 
     // Index from Port to Host
-    private final Multimap<SwitchPort, HostEvent> hosts;
-    private final Map<MACAddress, HostEvent> mac2Host;
+    private final Multimap<SwitchPort, HostData> hosts;
+    private final Map<MACAddress, HostData> mac2Host;
 
     // SwitchPort -> (type -> Link)
-    private final Map<SwitchPort, Map<String, LinkEvent>> outgoingLinks;
-    private final Map<SwitchPort, Map<String, LinkEvent>> incomingLinks;
+    private final Map<SwitchPort, Map<String, LinkData>> outgoingLinks;
+    private final Map<SwitchPort, Map<String, LinkData>> incomingLinks;
 
 
     // TODO Slice out Topology Builder interface.
@@ -129,23 +129,23 @@
         //          Treat as error or silently remove?
 
         /**
-         * Puts a SwitchEvent.
+         * Puts a SwitchData.
          *
          * @param sw Switch to add. (Will be frozen if not already)
          * @return Builder
          */
-        public Builder putSwitch(SwitchEvent sw) {
+        public Builder putSwitch(SwitchData sw) {
             checkNotNull(sw);
 
             current.switches.put(sw.getDpid(), sw.freeze());
             if (current.ports.get(sw.getDpid()) == null) {
-                current.ports.put(sw.getDpid(), new HashMap<PortNumber, PortEvent>());
+                current.ports.put(sw.getDpid(), new HashMap<PortNumber, PortData>());
             }
             return this;
         }
 
         /**
-         * Removes a SwitchEvent from this snapshot.
+         * Removes a SwitchData from this snapshot.
          * <p>
          * Will also remove ports, if it has not been removed already.
          *
@@ -156,7 +156,7 @@
             checkNotNull(dpid);
 
             current.switches.remove(dpid);
-            Map<PortNumber, PortEvent> removedPorts = current.ports.remove(dpid);
+            Map<PortNumber, PortData> removedPorts = current.ports.remove(dpid);
             if (removedPorts != null && !removedPorts.isEmpty()) {
                 log.warn("Some ports were removed as side-effect of #removeSwitch({})", dpid);
             }
@@ -164,17 +164,17 @@
         }
 
         /**
-         * Puts a PortEvent.
+         * Puts a PortData.
          *
          * @param port Port to add. (Will be frozen if not already)
          * @return Builder
          */
-        public Builder putPort(PortEvent port) {
+        public Builder putPort(PortData port) {
             checkNotNull(port);
 
             // TODO check parent port and throw TopologyMutationFailed
 
-            Map<PortNumber, PortEvent> portMap = current.ports.get(port.getDpid());
+            Map<PortNumber, PortData> portMap = current.ports.get(port.getDpid());
             if (portMap == null) {
                 // shouldn't happen but just to be sure
                 portMap = new HashMap<>();
@@ -185,7 +185,7 @@
         }
 
         /**
-         * Removes a PortEvent from this snapshot.
+         * Removes a PortData from this snapshot.
          *
          * @param port SwitchPort to remove
          * @return Builder
@@ -198,7 +198,7 @@
         }
 
         /**
-         * Removes a PortEvent from this snapshot.
+         * Removes a PortData from this snapshot.
          * <p>
          * Will also remove ports, if it has not been removed already.
          *
@@ -213,7 +213,7 @@
             // TODO sanity check:
             // - Links should be removed
             // - Host attachment point should be updated.
-            Map<PortNumber, PortEvent> portMap = current.ports.get(dpid);
+            Map<PortNumber, PortData> portMap = current.ports.get(dpid);
             if (portMap != null) {
                 portMap.remove(number);
             }
@@ -221,12 +221,12 @@
         }
 
         /**
-         * Puts a LinkEvent.
+         * Puts a LinkData.
          *
-         * @param link LinkEvent
+         * @param link LinkData
          * @return Builder
          */
-        public Builder putLink(LinkEvent link) {
+        public Builder putLink(LinkData link) {
             checkNotNull(link);
 
             // TODO check ports and throw TopologyMutationFailed
@@ -247,19 +247,19 @@
          * @param port {@code linkMap} key to update
          * @param link Link to add
          */
-        private void putLinkMap(Map<SwitchPort, Map<String, LinkEvent>> linkMap,
-                                SwitchPort port, LinkEvent link) {
+        private void putLinkMap(Map<SwitchPort, Map<String, LinkData>> linkMap,
+                                SwitchPort port, LinkData link) {
 
-            Map<String, LinkEvent> linksOnPort = linkMap.get(port);
+            Map<String, LinkData> linksOnPort = linkMap.get(port);
             if (linksOnPort == null) {
-                linksOnPort = new HashMap<String, LinkEvent>();
+                linksOnPort = new HashMap<String, LinkData>();
                 linkMap.put(port, linksOnPort);
             }
             linksOnPort.put(link.getType(), link);
         }
 
         /**
-         * Removes a LinkEvent from this snapshot.
+         * Removes a LinkData from this snapshot.
          *
          * @param link Link to remove
          * @param type type of link to remove
@@ -268,7 +268,7 @@
         public Builder removeLink(LinkTuple link, String type) {
             checkNotNull(link);
 
-            Map<String, LinkEvent> portLinks
+            Map<String, LinkData> portLinks
                 = current.outgoingLinks.get(link.getSrc());
             if (portLinks != null) {
                 // no conditional update here
@@ -284,7 +284,7 @@
         }
 
         /**
-         * Removes a LinkEvent from this snapshot.
+         * Removes a LinkData from this snapshot.
          *
          * @param link Link to remove
          * @return Builder
@@ -292,28 +292,28 @@
         public Builder removeLink(LinkTuple link) {
             checkNotNull(link);
 
-            Map<String, LinkEvent> links = current.outgoingLinks.get(link.getSrc());
+            Map<String, LinkData> links = current.outgoingLinks.get(link.getSrc());
             if (links == null) {
                 // nothing to do
                 return this;
             }
 
-            for (LinkEvent linkEvt : links.values()) {
-                removeLink(linkEvt.getLinkTuple(), linkEvt.getType());
+            for (LinkData linkData : links.values()) {
+                removeLink(linkData.getLinkTuple(), linkData.getType());
             }
             return this;
         }
 
         /**
-         * Puts a HostEvent.
+         * Puts a HostData.
          * <p>
-         * Removes attachment points for previous HostEvent and update
-         * them with new HostEvent
+         * Removes attachment points for previous HostData and update
+         * them with new HostData
          *
-         * @param host HostEvent
+         * @param host HostData
          * @return Builder
          */
-        public Builder putHost(HostEvent host) {
+        public Builder putHost(HostData host) {
             checkNotNull(host);
 
             // TODO check Link does not exist on port and throw TopologyMutationFailed
@@ -334,7 +334,7 @@
         }
 
         /**
-         * Removes a HostEvent from this snapshot.
+         * Removes a HostData from this snapshot.
          *
          * @param mac MACAddress of the Host to remove
          * @return Builder
@@ -342,7 +342,7 @@
         public Builder removeHost(MACAddress mac) {
             checkNotNull(mac);
 
-            HostEvent host = current.mac2Host.remove(mac);
+            HostData host = current.mac2Host.remove(mac);
             if (host != null) {
                 for (SwitchPort port : host.getAttachmentPoints()) {
                     current.hosts.remove(port, host);
@@ -438,25 +438,25 @@
 
         // shallow copy Map in Map
         this.ports = new HashMap<>(builder.current.ports.size());
-        for (Entry<Dpid, Map<PortNumber, PortEvent>> entry
+        for (Entry<Dpid, Map<PortNumber, PortData>> entry
                     : builder.current.ports.entrySet()) {
             this.ports.put(entry.getKey(), new HashMap<>(entry.getValue()));
         }
 
         this.hosts =
-                HashMultimap.<SwitchPort, HostEvent>create(builder.current.hosts);
+                HashMultimap.<SwitchPort, HostData>create(builder.current.hosts);
         this.mac2Host = new HashMap<>(builder.current.mac2Host);
 
         // shallow copy Map in Map
         this.outgoingLinks = new HashMap<>(builder.current.outgoingLinks.size());
-        for (Entry<SwitchPort, Map<String, LinkEvent>> entry
+        for (Entry<SwitchPort, Map<String, LinkData>> entry
                 : builder.current.outgoingLinks.entrySet()) {
             this.outgoingLinks.put(entry.getKey(), new HashMap<>(entry.getValue()));
         }
 
         // shallow copy Map in Map
         this.incomingLinks = new HashMap<>(builder.current.incomingLinks.size());
-        for (Entry<SwitchPort, Map<String, LinkEvent>> entry
+        for (Entry<SwitchPort, Map<String, LinkData>> entry
                 : builder.current.incomingLinks.entrySet()) {
             this.incomingLinks.put(entry.getKey(), new HashMap<>(entry.getValue()));
         }
@@ -484,25 +484,25 @@
 
         // shallow copy Map in Map
         this.ports = new HashMap<>(original.ports.size());
-        for (Entry<Dpid, Map<PortNumber, PortEvent>> entry
+        for (Entry<Dpid, Map<PortNumber, PortData>> entry
                 : original.ports.entrySet()) {
             this.ports.put(entry.getKey(), new HashMap<>(entry.getValue()));
         }
 
         this.hosts =
-                HashMultimap.<SwitchPort, HostEvent>create(original.hosts);
+                HashMultimap.<SwitchPort, HostData>create(original.hosts);
         this.mac2Host = new HashMap<>(original.mac2Host);
 
         // shallow copy Map in Map
         this.outgoingLinks = new HashMap<>(original.outgoingLinks.size());
-        for (Entry<SwitchPort, Map<String, LinkEvent>> entry
+        for (Entry<SwitchPort, Map<String, LinkData>> entry
                 : original.outgoingLinks.entrySet()) {
             this.outgoingLinks.put(entry.getKey(), new HashMap<>(entry.getValue()));
         }
 
         // shallow copy Map in Map
         this.incomingLinks = new HashMap<>(original.incomingLinks.size());
-        for (Entry<SwitchPort, Map<String, LinkEvent>> entry
+        for (Entry<SwitchPort, Map<String, LinkData>> entry
                 : original.incomingLinks.entrySet()) {
             this.incomingLinks.put(entry.getKey(), new HashMap<>(entry.getValue()));
         }
@@ -530,23 +530,23 @@
     }
 
     @Override
-    public SwitchEvent getSwitchEvent(final Dpid dpid) {
+    public SwitchData getSwitchData(final Dpid dpid) {
         return this.switches.get(dpid);
     }
 
     @Override
-    public Collection<SwitchEvent> getAllSwitchEvents() {
+    public Collection<SwitchData> getAllSwitchDataEntries() {
         return Collections.unmodifiableCollection(switches.values());
     }
 
     @Override
-    public PortEvent getPortEvent(final SwitchPort port) {
-        return getPortEvent(port.getDpid(), port.getPortNumber());
+    public PortData getPortData(final SwitchPort port) {
+        return getPortData(port.getDpid(), port.getPortNumber());
     }
 
     @Override
-    public PortEvent getPortEvent(final Dpid dpid, PortNumber portNumber) {
-        Map<PortNumber, PortEvent> portMap = this.ports.get(dpid);
+    public PortData getPortData(final Dpid dpid, PortNumber portNumber) {
+        Map<PortNumber, PortData> portMap = this.ports.get(dpid);
         if (portMap != null) {
             return portMap.get(portNumber);
         }
@@ -554,8 +554,8 @@
     }
 
     @Override
-    public Collection<PortEvent> getPortEvents(final Dpid dpid) {
-        Map<PortNumber, PortEvent> portList = ports.get(dpid);
+    public Collection<PortData> getPortDataEntries(final Dpid dpid) {
+        Map<PortNumber, PortData> portList = ports.get(dpid);
         if (portList == null) {
             return Collections.emptyList();
         }
@@ -563,17 +563,17 @@
     }
 
     @Override
-    public Collection<PortEvent> getAllPortEvents() {
-        List<PortEvent> events = new LinkedList<>();
-        for (Map<PortNumber, PortEvent> cm : ports.values()) {
-            events.addAll(cm.values());
+    public Collection<PortData> getAllPortDataEntries() {
+        List<PortData> dataEntries = new LinkedList<>();
+        for (Map<PortNumber, PortData> cm : ports.values()) {
+            dataEntries.addAll(cm.values());
         }
-        return Collections.unmodifiableCollection(events);
+        return Collections.unmodifiableCollection(dataEntries);
     }
 
     @Override
-    public LinkEvent getLinkEvent(final LinkTuple linkId) {
-        Map<String, LinkEvent> links = this.outgoingLinks.get(linkId.getSrc());
+    public LinkData getLinkData(final LinkTuple linkId) {
+        Map<String, LinkData> links = this.outgoingLinks.get(linkId.getSrc());
         if (links == null) {
             return null;
         }
@@ -581,7 +581,7 @@
         // Should we look for Packet link first?
         //  => Not needed unless invariant is broken.
 
-        for (LinkEvent link : links.values()) {
+        for (LinkData link : links.values()) {
             if (link.getDst().equals(linkId.getDst())) {
                 return link;
             }
@@ -590,12 +590,12 @@
     }
 
     @Override
-    public LinkEvent getLinkEvent(final LinkTuple linkId, final String type) {
-        Map<String, LinkEvent> links = this.outgoingLinks.get(linkId.getSrc());
+    public LinkData getLinkData(final LinkTuple linkId, final String type) {
+        Map<String, LinkData> links = this.outgoingLinks.get(linkId.getSrc());
         if (links == null) {
             return null;
         }
-        LinkEvent link = links.get(type);
+        LinkData link = links.get(type);
         if (link.getDst().equals(linkId.getDst())) {
             return link;
         }
@@ -603,8 +603,8 @@
     }
 
     @Override
-    public Collection<LinkEvent> getLinkEventsFrom(SwitchPort srcPort) {
-        Map<String, LinkEvent> links = this.outgoingLinks.get(srcPort);
+    public Collection<LinkData> getLinkDataEntriesFrom(SwitchPort srcPort) {
+        Map<String, LinkData> links = this.outgoingLinks.get(srcPort);
         if (links == null) {
             return Collections.emptyList();
         }
@@ -613,8 +613,8 @@
     }
 
     @Override
-    public Collection<LinkEvent> getLinkEventsTo(SwitchPort dstPort) {
-        Map<String, LinkEvent> links = this.incomingLinks.get(dstPort);
+    public Collection<LinkData> getLinkDataEntriesTo(SwitchPort dstPort) {
+        Map<String, LinkData> links = this.incomingLinks.get(dstPort);
         if (links == null) {
             return Collections.emptyList();
         }
@@ -623,44 +623,44 @@
     }
 
     @Override
-    public Collection<LinkEvent> getLinkEvents(final LinkTuple linkId) {
-        Map<String, LinkEvent> links = this.outgoingLinks.get(linkId.getSrc());
+    public Collection<LinkData> getLinkDataEntries(final LinkTuple linkId) {
+        Map<String, LinkData> links = this.outgoingLinks.get(linkId.getSrc());
         if (links == null) {
             return Collections.emptyList();
         }
 
-        List<LinkEvent> linkEvents = new ArrayList<>();
-        for (LinkEvent e : links.values()) {
-            if (e.getDst().equals(linkId.getDst())) {
-                linkEvents.add(e);
+        List<LinkData> linkDataEntries = new ArrayList<>();
+        for (LinkData ld : links.values()) {
+            if (ld.getDst().equals(linkId.getDst())) {
+                linkDataEntries.add(ld);
             }
         }
 
         // unless invariant is broken, this should contain at most 1 element.
-        return linkEvents;
+        return linkDataEntries;
     }
 
     @Override
-    public Collection<LinkEvent> getAllLinkEvents() {
-        List<LinkEvent> events = new LinkedList<>();
-        for (Map<String, LinkEvent> cm : outgoingLinks.values()) {
-            events.addAll(cm.values());
+    public Collection<LinkData> getAllLinkDataEntries() {
+        List<LinkData> dataEntries = new LinkedList<>();
+        for (Map<String, LinkData> cm : outgoingLinks.values()) {
+            dataEntries.addAll(cm.values());
         }
-        return Collections.unmodifiableCollection(events);
+        return Collections.unmodifiableCollection(dataEntries);
     }
 
     @Override
-    public HostEvent getHostEvent(final MACAddress mac) {
+    public HostData getHostData(final MACAddress mac) {
         return this.mac2Host.get(mac);
     }
 
     @Override
-    public Collection<HostEvent> getHostEvents(SwitchPort port) {
+    public Collection<HostData> getHostDataEntries(SwitchPort port) {
         return Collections.unmodifiableCollection(this.hosts.get(port));
     }
 
     @Override
-    public Collection<HostEvent> getAllHostEvents() {
+    public Collection<HostData> getAllHostDataEntries() {
         return Collections.unmodifiableCollection(mac2Host.values());
     }
 
diff --git a/src/main/java/net/onrc/onos/core/topology/LinkEvent.java b/src/main/java/net/onrc/onos/core/topology/LinkData.java
similarity index 81%
rename from src/main/java/net/onrc/onos/core/topology/LinkEvent.java
rename to src/main/java/net/onrc/onos/core/topology/LinkData.java
index 4296fee..59f69bd 100644
--- a/src/main/java/net/onrc/onos/core/topology/LinkEvent.java
+++ b/src/main/java/net/onrc/onos/core/topology/LinkData.java
@@ -3,7 +3,7 @@
 import java.nio.ByteBuffer;
 import java.util.Objects;
 
-import net.onrc.onos.core.topology.web.serializers.LinkEventSerializer;
+import net.onrc.onos.core.topology.web.serializers.LinkDataSerializer;
 import net.onrc.onos.core.util.Dpid;
 import net.onrc.onos.core.util.LinkTuple;
 import net.onrc.onos.core.util.PortNumber;
@@ -13,16 +13,12 @@
 import org.codehaus.jackson.map.annotate.JsonSerialize;
 
 /**
- * Self-contained Link event Object.
- * <p/>
- * TODO: Rename to match what it is. (Switch/Port/Link/Host)Snapshot?
- * FIXME: Current implementation directly use this object as
- *        Replication message, but should be sending update operation info.
+ * Self-contained Link object.
  */
 
-@JsonSerialize(using = LinkEventSerializer.class)
-public class LinkEvent extends TopologyElement<LinkEvent> {
-    public static final int LINKID_BYTES = 2 + PortEvent.PORTID_BYTES * 2;
+@JsonSerialize(using = LinkDataSerializer.class)
+public class LinkData extends TopologyElement<LinkData> {
+    public static final int LINKID_BYTES = 2 + PortData.PORTID_BYTES * 2;
 
     private final LinkTuple id;
     // TODO add LastSeenTime, Capacity if appropriate
@@ -33,7 +29,7 @@
      * Default constructor for Serializer to use.
      */
     @Deprecated
-    protected LinkEvent() {
+    protected LinkData() {
         id = null;
     }
 
@@ -42,7 +38,7 @@
      *
      * @param id the link tuple to identify the link
      */
-    public LinkEvent(LinkTuple id) {
+    public LinkData(LinkTuple id) {
         this.id = checkNotNull(id);
     }
 
@@ -52,7 +48,7 @@
      * @param src the source SwitchPort to use
      * @param dst the destination SwitchPort to use
      */
-    public LinkEvent(SwitchPort src, SwitchPort dst) {
+    public LinkData(SwitchPort src, SwitchPort dst) {
         this(new LinkTuple(src, dst));
     }
 
@@ -63,7 +59,7 @@
      *
      * @param link the Link object to use.
      */
-    public LinkEvent(Link link) {
+    public LinkData(Link link) {
         this(link.getLinkTuple());
         // FIXME losing attributes here
     }
@@ -71,11 +67,11 @@
     /**
      * Copy constructor.
      * <p>
-     * Creates an unfrozen copy of the given LinkEvent object.
+     * Creates an unfrozen copy of the given LinkData object.
      *
      * @param original the object ot make copy of
      */
-    public LinkEvent(LinkEvent original) {
+    public LinkData(LinkData original) {
         super(original);
         this.id = original.id;
     }
@@ -164,10 +160,10 @@
      */
     public static ByteBuffer getLinkID(Long srcDpid, Long srcPortNo,
                                        Long dstDpid, Long dstPortNo) {
-        return (ByteBuffer) ByteBuffer.allocate(LinkEvent.LINKID_BYTES)
+        return (ByteBuffer) ByteBuffer.allocate(LinkData.LINKID_BYTES)
                 .putChar('L')
-                .put(PortEvent.getPortID(srcDpid, srcPortNo))
-                .put(PortEvent.getPortID(dstDpid, dstPortNo)).flip();
+                .put(PortData.getPortID(srcDpid, srcPortNo))
+                .put(PortData.getPortID(dstDpid, dstPortNo)).flip();
     }
 
     @Override
@@ -201,12 +197,12 @@
             return false;
         }
 
-        LinkEvent other = (LinkEvent) o;
+        LinkData other = (LinkData) o;
         return Objects.equals(this.id, other.id);
     }
 
     @Override
     public String toString() {
-        return "[LinkEvent " + getSrc() + "->" + getDst() + "]";
+        return "[LinkData " + getSrc() + "->" + getDst() + "]";
     }
 }
diff --git a/src/main/java/net/onrc/onos/core/topology/LinkImpl.java b/src/main/java/net/onrc/onos/core/topology/LinkImpl.java
index 0fcb092..281df21 100644
--- a/src/main/java/net/onrc/onos/core/topology/LinkImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/LinkImpl.java
@@ -57,7 +57,7 @@
 
     @Override
     public Double getCapacity() {
-        return this.topology.getLinkEvent(id).getCapacity();
+        return this.topology.getLinkData(id).getCapacity();
     }
 
     /**
@@ -73,7 +73,7 @@
 
     @Override
     public String getStringAttribute(String attr) {
-        return this.topology.getLinkEvent(id).getStringAttribute(attr);
+        return this.topology.getLinkData(id).getStringAttribute(attr);
     }
 
     @Override
@@ -88,7 +88,7 @@
 
     @Override
     public Map<String, String> getAllStringAttributes() {
-        return this.topology.getLinkEvent(id).getAllStringAttributes();
+        return this.topology.getLinkData(id).getAllStringAttributes();
     }
 
     @Override
diff --git a/src/main/java/net/onrc/onos/core/topology/MastershipEvent.java b/src/main/java/net/onrc/onos/core/topology/MastershipEvent.java
index f23a9ca..d816376 100644
--- a/src/main/java/net/onrc/onos/core/topology/MastershipEvent.java
+++ b/src/main/java/net/onrc/onos/core/topology/MastershipEvent.java
@@ -16,7 +16,7 @@
 import org.codehaus.jackson.map.annotate.JsonSerialize;
 
 /**
- * Self-contained Switch Mastership event Object.
+ * Self-contained Switch Mastership event object.
  * <p/>
  * TODO: Rename to match what it is. (Switch/Port/Link/Host)Snapshot?
  * FIXME: Current implementation directly use this object as
diff --git a/src/main/java/net/onrc/onos/core/topology/PortEvent.java b/src/main/java/net/onrc/onos/core/topology/PortData.java
similarity index 79%
rename from src/main/java/net/onrc/onos/core/topology/PortEvent.java
rename to src/main/java/net/onrc/onos/core/topology/PortData.java
index 0961382..86785cd 100644
--- a/src/main/java/net/onrc/onos/core/topology/PortEvent.java
+++ b/src/main/java/net/onrc/onos/core/topology/PortData.java
@@ -1,6 +1,6 @@
 package net.onrc.onos.core.topology;
 
-import net.onrc.onos.core.topology.web.serializers.PortEventSerializer;
+import net.onrc.onos.core.topology.web.serializers.PortDataSerializer;
 import net.onrc.onos.core.util.Dpid;
 import net.onrc.onos.core.util.PortNumber;
 import net.onrc.onos.core.util.SwitchPort;
@@ -12,15 +12,11 @@
 import java.util.Objects;
 
 /**
- * Self-contained Port event Object.
- * <p/>
- * TODO: Rename to match what it is. (Switch/Port/Link/Host)Snapshot?
- * FIXME: Current implementation directly use this object as
- *        Replication message, but should be sending update operation info.
+ * Self-contained Port object.
  */
-@JsonSerialize(using = PortEventSerializer.class)
-public class PortEvent extends TopologyElement<PortEvent> {
-    public static final int PORTID_BYTES = SwitchEvent.SWITCHID_BYTES + 2 + 8;
+@JsonSerialize(using = PortDataSerializer.class)
+public class PortData extends TopologyElement<PortData> {
+    public static final int PORTID_BYTES = SwitchData.SWITCHID_BYTES + 2 + 8;
 
     private final SwitchPort id;
     // TODO Add Hardware Address
@@ -35,7 +31,7 @@
      * Default constructor for Serializer to use.
      */
     @Deprecated
-    protected PortEvent() {
+    protected PortData() {
         id = null;
     }
 
@@ -44,7 +40,7 @@
      *
      * @param switchPort the SwitchPort to identify the port
      */
-    public PortEvent(SwitchPort switchPort) {
+    public PortData(SwitchPort switchPort) {
         this.id = checkNotNull(switchPort);
     }
 
@@ -54,18 +50,18 @@
      * @param dpid the DPID of the switch the port belongs to
      * @param number the PortNumber to identify the port
      */
-    public PortEvent(Dpid dpid, PortNumber number) {
+    public PortData(Dpid dpid, PortNumber number) {
         this.id = new SwitchPort(dpid, number);
     }
 
     /**
      * Copy constructor.
      * <p>
-     * Creates an unfrozen copy of the given PortEvent object.
+     * Creates an unfrozen copy of the given PortData object.
      *
      * @param original the object to make copy of
      */
-    public PortEvent(PortEvent original) {
+    public PortData(PortData original) {
         super(original);
         this.id = original.id;
     }
@@ -127,7 +123,7 @@
         if (number == null) {
             throw new IllegalArgumentException("number cannot be null");
         }
-        return (ByteBuffer) ByteBuffer.allocate(PortEvent.PORTID_BYTES)
+        return (ByteBuffer) ByteBuffer.allocate(PortData.PORTID_BYTES)
                 .putChar('S').putLong(dpid)
                 .putChar('P').putLong(number).flip();
     }
@@ -162,12 +158,12 @@
             return false;
         }
 
-        PortEvent other = (PortEvent) o;
+        PortData other = (PortData) o;
         return Objects.equals(this.id, other.id);
     }
 
     @Override
     public String toString() {
-        return "[PortEvent " + getDpid() + "@" + getPortNumber() + "]";
+        return "[PortData " + getDpid() + "@" + getPortNumber() + "]";
     }
 }
diff --git a/src/main/java/net/onrc/onos/core/topology/PortImpl.java b/src/main/java/net/onrc/onos/core/topology/PortImpl.java
index d957809..8b8f966 100644
--- a/src/main/java/net/onrc/onos/core/topology/PortImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/PortImpl.java
@@ -60,7 +60,7 @@
 
     @Override
     public String getDescription() {
-        return getStringAttribute(PortEvent.DESCRIPTION, "");
+        return getStringAttribute(PortData.DESCRIPTION, "");
     }
 
     @Override
@@ -124,7 +124,7 @@
 
     @Override
     public String getStringAttribute(String attr) {
-        return this.topology.getPortEvent(id).getStringAttribute(attr);
+        return this.topology.getPortData(id).getStringAttribute(attr);
     }
 
     @Override
@@ -139,7 +139,7 @@
 
     @Override
     public Map<String, String> getAllStringAttributes() {
-        return this.topology.getPortEvent(id).getAllStringAttributes();
+        return this.topology.getPortData(id).getAllStringAttributes();
     }
 
     @Override
diff --git a/src/main/java/net/onrc/onos/core/topology/SwitchEvent.java b/src/main/java/net/onrc/onos/core/topology/SwitchData.java
similarity index 75%
rename from src/main/java/net/onrc/onos/core/topology/SwitchEvent.java
rename to src/main/java/net/onrc/onos/core/topology/SwitchData.java
index f89005d..46598c0 100644
--- a/src/main/java/net/onrc/onos/core/topology/SwitchEvent.java
+++ b/src/main/java/net/onrc/onos/core/topology/SwitchData.java
@@ -1,6 +1,6 @@
 package net.onrc.onos.core.topology;
 
-import net.onrc.onos.core.topology.web.serializers.SwitchEventSerializer;
+import net.onrc.onos.core.topology.web.serializers.SwitchDataSerializer;
 import net.onrc.onos.core.util.Dpid;
 
 import java.nio.ByteBuffer;
@@ -10,14 +10,10 @@
 import org.codehaus.jackson.map.annotate.JsonSerialize;
 
 /**
- * Self-contained Switch Object.
- * <p/>
- * TODO: Rename to match what it is. (Switch/Port/Link/Host)Snapshot?
- * FIXME: Current implementation directly use this object as
- *        Replication message, but should be sending update operation info.
+ * Self-contained Switch object.
  */
-@JsonSerialize(using = SwitchEventSerializer.class)
-public class SwitchEvent extends TopologyElement<SwitchEvent> {
+@JsonSerialize(using = SwitchDataSerializer.class)
+public class SwitchData extends TopologyElement<SwitchData> {
     public static final int SWITCHID_BYTES = 2 + 8;
 
     private final Dpid dpid;
@@ -26,7 +22,7 @@
      * Default constructor for Serializer to use.
      */
     @Deprecated
-    protected SwitchEvent() {
+    protected SwitchData() {
         dpid = null;
     }
 
@@ -35,18 +31,18 @@
      *
      * @param dpid the switch DPID to identify the switch
      */
-    public SwitchEvent(Dpid dpid) {
+    public SwitchData(Dpid dpid) {
         this.dpid = checkNotNull(dpid);
     }
 
     /**
      * Copy constructor.
      * <p>
-     * Creates an unfrozen copy of the given SwitchEvent object.
+     * Creates an unfrozen copy of the given SwitchData object.
      *
      * @param original the object to make copy of
      */
-    public SwitchEvent(SwitchEvent original) {
+    public SwitchData(SwitchData original) {
         super(original);
         this.dpid = original.dpid;
     }
@@ -83,7 +79,7 @@
         if (dpid == null) {
             throw new IllegalArgumentException("dpid cannot be null");
         }
-        return (ByteBuffer) ByteBuffer.allocate(SwitchEvent.SWITCHID_BYTES)
+        return (ByteBuffer) ByteBuffer.allocate(SwitchData.SWITCHID_BYTES)
                 .putChar('S').putLong(dpid).flip();
     }
 
@@ -117,12 +113,12 @@
             return false;
         }
 
-        SwitchEvent other = (SwitchEvent) o;
+        SwitchData other = (SwitchData) o;
         return Objects.equals(this.dpid, other.dpid);
     }
 
     @Override
     public String toString() {
-        return "[SwitchEvent " + dpid + "]";
+        return "[SwitchData " + dpid + "]";
     }
 }
diff --git a/src/main/java/net/onrc/onos/core/topology/SwitchImpl.java b/src/main/java/net/onrc/onos/core/topology/SwitchImpl.java
index 6d4e27a..27fcbce 100644
--- a/src/main/java/net/onrc/onos/core/topology/SwitchImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/SwitchImpl.java
@@ -122,7 +122,7 @@
 
     @Override
     public String getStringAttribute(String attr) {
-        return this.topology.getSwitchEvent(getDpid()).getStringAttribute(attr);
+        return this.topology.getSwitchData(getDpid()).getStringAttribute(attr);
     }
 
     @Override
@@ -137,7 +137,7 @@
 
     @Override
     public Map<String, String> getAllStringAttributes() {
-        return this.topology.getSwitchEvent(getDpid()).getAllStringAttributes();
+        return this.topology.getSwitchData(getDpid()).getAllStringAttributes();
     }
 
     @Override
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyDatastore.java b/src/main/java/net/onrc/onos/core/topology/TopologyDatastore.java
index 815958f..deef13a 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyDatastore.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyDatastore.java
@@ -28,11 +28,11 @@
      * Add a switch to the database.
      *
      * @param sw         the switch to add.
-     * @param portEvents the corresponding switch ports to add.
+     * @param portDataEntries the corresponding switch ports to add.
      * @return true on success, otherwise false.
      */
-    public boolean addSwitch(SwitchEvent sw,
-                             Collection<PortEvent> portEvents) {
+    public boolean addSwitch(SwitchData sw,
+                             Collection<PortData> portDataEntries) {
         log.debug("Adding switch {}", sw);
         ArrayList<WriteOp> groupOp = new ArrayList<>();
 
@@ -46,8 +46,8 @@
         // to assure that DPID is unique cluster-wide, etc.
         groupOp.add(rcSwitch.forceCreateOp(client));
 
-        for (PortEvent portEvent : portEvents) {
-            KVPort rcPort = new KVPort(sw.getDpid(), portEvent.getPortNumber());
+        for (PortData portData : portDataEntries) {
+            KVPort rcPort = new KVPort(sw.getDpid(), portData.getPortNumber());
             rcPort.setStatus(KVPort.STATUS.ACTIVE);
 
             groupOp.add(rcPort.forceCreateOp(client));
@@ -71,11 +71,11 @@
      * Update a switch as inactive in the database.
      *
      * @param sw         the switch to update.
-     * @param portEvents the corresponding switch ports to update.
+     * @param portDataEntries the corresponding switch ports to update.
      * @return true on success, otherwise false.
      */
-    public boolean deactivateSwitch(SwitchEvent sw,
-                                    Collection<PortEvent> portEvents) {
+    public boolean deactivateSwitch(SwitchData sw,
+                                    Collection<PortData> portDataEntries) {
         log.debug("Deactivating switch {}", sw);
         KVSwitch rcSwitch = new KVSwitch(sw.getDpid());
 
@@ -86,8 +86,8 @@
 
         groupOp.add(rcSwitch.forceCreateOp(client));
 
-        for (PortEvent portEvent : portEvents) {
-            KVPort rcPort = new KVPort(sw.getDpid(), portEvent.getPortNumber());
+        for (PortData portData : portDataEntries) {
+            KVPort rcPort = new KVPort(sw.getDpid(), portData.getPortNumber());
             rcPort.setStatus(KVPort.STATUS.INACTIVE);
 
             groupOp.add(rcPort.forceCreateOp(client));
@@ -104,7 +104,7 @@
      * @param port the port to add.
      * @return true on success, otherwise false.
      */
-    public boolean addPort(PortEvent port) {
+    public boolean addPort(PortData port) {
         log.debug("Adding port {}", port);
 
         KVPort rcPort = new KVPort(port.getDpid(), port.getPortNumber());
@@ -122,7 +122,7 @@
      * @param port the port to update.
      * @return true on success, otherwise false.
      */
-    public boolean deactivatePort(PortEvent port) {
+    public boolean deactivatePort(PortData port) {
         log.debug("Deactivating port {}", port);
 
         KVPort rcPort = new KVPort(port.getDpid(), port.getPortNumber());
@@ -139,7 +139,7 @@
      * @param link the link to add.
      * @return true on success, otherwise false.
      */
-    public boolean addLink(LinkEvent link) {
+    public boolean addLink(LinkData link) {
         log.debug("Adding link {}", link);
 
         KVLink rcLink = new KVLink(link.getSrc().getDpid(),
@@ -158,11 +158,11 @@
         return true;                    // Success
     }
 
-    public boolean removeLink(LinkEvent linkEvent) {
-        log.debug("Removing link {}", linkEvent);
+    public boolean removeLink(LinkData linkData) {
+        log.debug("Removing link {}", linkData);
 
-        KVLink rcLink = new KVLink(linkEvent.getSrc().getDpid(), linkEvent.getSrc().getPortNumber(),
-                linkEvent.getDst().getDpid(), linkEvent.getDst().getPortNumber());
+        KVLink rcLink = new KVLink(linkData.getSrc().getDpid(), linkData.getSrc().getPortNumber(),
+                linkData.getDst().getDpid(), linkData.getDst().getPortNumber());
         rcLink.forceDelete();
 
         return true;
@@ -174,7 +174,7 @@
      * @param device the device to add.
      * @return true on success, otherwise false.
      */
-    public boolean addHost(HostEvent device) {
+    public boolean addHost(HostData device) {
         log.debug("Adding host into DB. mac {}", device.getMac());
 
         KVDevice rcDevice = new KVDevice(device.getMac().toBytes());
@@ -195,7 +195,7 @@
      * @param device the device to remove.
      * @return true on success, otherwise false.
      */
-    public boolean removeHost(HostEvent device) {
+    public boolean removeHost(HostData device) {
         log.debug("Removing host into DB. mac {}", device.getMac());
 
         KVDevice rcDevice = new KVDevice(device.getMac().toBytes());
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyEvent.java b/src/main/java/net/onrc/onos/core/topology/TopologyEvent.java
index c86bcc6..2c805e8 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyEvent.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyEvent.java
@@ -72,48 +72,48 @@
     /**
      * Constructor for given Switch event.
      *
-     * @param switchEvent the Switch event to use.
+     * @param switchData the Switch event to use.
      * @param onosInstanceId the ONOS Instance ID that originates the event.
      */
-    TopologyEvent(SwitchEvent switchEvent, OnosInstanceId onosInstanceId) {
+    TopologyEvent(SwitchData switchData, OnosInstanceId onosInstanceId) {
         this.eventType = Type.SWITCH;
-        this.event = checkNotNull(switchEvent);
+        this.event = checkNotNull(switchData);
         this.onosInstanceId = checkNotNull(onosInstanceId);
     }
 
     /**
      * Constructor for given Port event.
      *
-     * @param portEvent the Port event to use.
+     * @param portData the Port event to use.
      * @param onosInstanceId the ONOS Instance ID that originates the event.
      */
-    TopologyEvent(PortEvent portEvent, OnosInstanceId onosInstanceId) {
+    TopologyEvent(PortData portData, OnosInstanceId onosInstanceId) {
         this.eventType = Type.PORT;
-        this.event = checkNotNull(portEvent);
+        this.event = checkNotNull(portData);
         this.onosInstanceId = checkNotNull(onosInstanceId);
     }
 
     /**
      * Constructor for given Link event.
      *
-     * @param linkEvent the Link event to use.
+     * @param linkData the Link event to use.
      * @param onosInstanceId the ONOS Instance ID that originates the event.
      */
-    TopologyEvent(LinkEvent linkEvent, OnosInstanceId onosInstanceId) {
+    TopologyEvent(LinkData linkData, OnosInstanceId onosInstanceId) {
         this.eventType = Type.LINK;
-        this.event = checkNotNull(linkEvent);
+        this.event = checkNotNull(linkData);
         this.onosInstanceId = checkNotNull(onosInstanceId);
     }
 
     /**
      * Constructor for given Host event.
      *
-     * @param hostEvent the Host event to use.
+     * @param hostData the Host event to use.
      * @param onosInstanceId the ONOS Instance ID that originates the event.
      */
-    TopologyEvent(HostEvent hostEvent, OnosInstanceId onosInstanceId) {
+    TopologyEvent(HostData hostData, OnosInstanceId onosInstanceId) {
         this.eventType = Type.HOST;
-        this.event = checkNotNull(hostEvent);
+        this.event = checkNotNull(hostData);
         this.onosInstanceId = checkNotNull(onosInstanceId);
     }
 
@@ -144,12 +144,12 @@
      *
      * @return the Switch event.
      */
-    public SwitchEvent getSwitchEvent() {
+    public SwitchData getSwitchData() {
         if (eventType != Type.SWITCH) {
             return null;
         }
-        SwitchEvent switchEvent = (SwitchEvent) event;
-        return switchEvent;
+        SwitchData switchData = (SwitchData) event;
+        return switchData;
     }
 
     /**
@@ -157,12 +157,12 @@
      *
      * @return the Port event.
      */
-    public PortEvent getPortEvent() {
+    public PortData getPortData() {
         if (eventType != Type.PORT) {
             return null;
         }
-        PortEvent portEvent = (PortEvent) event;
-        return portEvent;
+        PortData portData = (PortData) event;
+        return portData;
     }
 
     /**
@@ -170,12 +170,12 @@
      *
      * @return the Link event.
      */
-    public LinkEvent getLinkEvent() {
+    public LinkData getLinkData() {
         if (eventType != Type.LINK) {
             return null;
         }
-        LinkEvent linkEvent = (LinkEvent) event;
-        return linkEvent;
+        LinkData linkData = (LinkData) event;
+        return linkData;
     }
 
     /**
@@ -183,12 +183,12 @@
      *
      * @return the Host event.
      */
-    public HostEvent getHostEvent() {
+    public HostData getHostData() {
         if (eventType != Type.HOST) {
             return null;
         }
-        HostEvent hostEvent = (HostEvent) event;
-        return hostEvent;
+        HostData hostData = (HostData) event;
+        return hostData;
     }
 
     /**
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyEventPreprocessor.java b/src/main/java/net/onrc/onos/core/topology/TopologyEventPreprocessor.java
index 90f7315..a843fb5 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyEventPreprocessor.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyEventPreprocessor.java
@@ -339,8 +339,8 @@
      * <p/>
      * The result events can be applied to the Topology in the following
      * order: REMOVE events followed by ADD events. The ADD events are in the
-     * natural order to build a Topology: MastershipEvent, SwitchEvent,
-     * PortEvent, LinkEvent, HostEvent. The REMOVE events are in the reverse
+     * natural order to build a Topology: MastershipEvent, SwitchData,
+     * PortData, LinkData, HostData. The REMOVE events are in the reverse
      * order.
      *
      * @param events the events to classify and reorder.
@@ -353,21 +353,21 @@
             new HashMap<>();
         Map<ByteBuffer, EventEntry<TopologyEvent>> removedMastershipEvents =
             new HashMap<>();
-        Map<ByteBuffer, EventEntry<TopologyEvent>> addedSwitchEvents =
+        Map<ByteBuffer, EventEntry<TopologyEvent>> addedSwitchDataEntries =
             new HashMap<>();
-        Map<ByteBuffer, EventEntry<TopologyEvent>> removedSwitchEvents =
+        Map<ByteBuffer, EventEntry<TopologyEvent>> removedSwitchDataEntries =
             new HashMap<>();
-        Map<ByteBuffer, EventEntry<TopologyEvent>> addedPortEvents =
+        Map<ByteBuffer, EventEntry<TopologyEvent>> addedPortDataEntries =
             new HashMap<>();
-        Map<ByteBuffer, EventEntry<TopologyEvent>> removedPortEvents =
+        Map<ByteBuffer, EventEntry<TopologyEvent>> removedPortDataEntries =
             new HashMap<>();
-        Map<ByteBuffer, EventEntry<TopologyEvent>> addedLinkEvents =
+        Map<ByteBuffer, EventEntry<TopologyEvent>> addedLinkDataEntries =
             new HashMap<>();
-        Map<ByteBuffer, EventEntry<TopologyEvent>> removedLinkEvents =
+        Map<ByteBuffer, EventEntry<TopologyEvent>> removedLinkDataEntries =
             new HashMap<>();
-        Map<ByteBuffer, EventEntry<TopologyEvent>> addedHostEvents =
+        Map<ByteBuffer, EventEntry<TopologyEvent>> addedHostDataEntries =
             new HashMap<>();
-        Map<ByteBuffer, EventEntry<TopologyEvent>> removedHostEvents =
+        Map<ByteBuffer, EventEntry<TopologyEvent>> removedHostDataEntries =
             new HashMap<>();
 
         //
@@ -383,10 +383,10 @@
             // Get the event itself
             MastershipEvent mastershipEvent =
                 topologyEvent.getMastershipEvent();
-            SwitchEvent switchEvent = topologyEvent.getSwitchEvent();
-            PortEvent portEvent = topologyEvent.getPortEvent();
-            LinkEvent linkEvent = topologyEvent.getLinkEvent();
-            HostEvent hostEvent = topologyEvent.getHostEvent();
+            SwitchData switchData = topologyEvent.getSwitchData();
+            PortData portData = topologyEvent.getPortData();
+            LinkData linkData = topologyEvent.getLinkData();
+            HostData hostData = topologyEvent.getHostData();
 
             //
             // Extract the events
@@ -398,25 +398,25 @@
                     addedMastershipEvents.put(id, event);
                     removedMastershipEvents.remove(id);
                 }
-                if (switchEvent != null) {
-                    ByteBuffer id = switchEvent.getIDasByteBuffer();
-                    addedSwitchEvents.put(id, event);
-                    removedSwitchEvents.remove(id);
+                if (switchData != null) {
+                    ByteBuffer id = switchData.getIDasByteBuffer();
+                    addedSwitchDataEntries.put(id, event);
+                    removedSwitchDataEntries.remove(id);
                 }
-                if (portEvent != null) {
-                    ByteBuffer id = portEvent.getIDasByteBuffer();
-                    addedPortEvents.put(id, event);
-                    removedPortEvents.remove(id);
+                if (portData != null) {
+                    ByteBuffer id = portData.getIDasByteBuffer();
+                    addedPortDataEntries.put(id, event);
+                    removedPortDataEntries.remove(id);
                 }
-                if (linkEvent != null) {
-                    ByteBuffer id = linkEvent.getIDasByteBuffer();
-                    addedLinkEvents.put(id, event);
-                    removedLinkEvents.remove(id);
+                if (linkData != null) {
+                    ByteBuffer id = linkData.getIDasByteBuffer();
+                    addedLinkDataEntries.put(id, event);
+                    removedLinkDataEntries.remove(id);
                 }
-                if (hostEvent != null) {
-                    ByteBuffer id = hostEvent.getIDasByteBuffer();
-                    addedHostEvents.put(id, event);
-                    removedHostEvents.remove(id);
+                if (hostData != null) {
+                    ByteBuffer id = hostData.getIDasByteBuffer();
+                    addedHostDataEntries.put(id, event);
+                    removedHostDataEntries.remove(id);
                 }
                 break;
             case ENTRY_REMOVE:
@@ -425,25 +425,25 @@
                     addedMastershipEvents.remove(id);
                     removedMastershipEvents.put(id, event);
                 }
-                if (switchEvent != null) {
-                    ByteBuffer id = switchEvent.getIDasByteBuffer();
-                    addedSwitchEvents.remove(id);
-                    removedSwitchEvents.put(id, event);
+                if (switchData != null) {
+                    ByteBuffer id = switchData.getIDasByteBuffer();
+                    addedSwitchDataEntries.remove(id);
+                    removedSwitchDataEntries.put(id, event);
                 }
-                if (portEvent != null) {
-                    ByteBuffer id = portEvent.getIDasByteBuffer();
-                    addedPortEvents.remove(id);
-                    removedPortEvents.put(id, event);
+                if (portData != null) {
+                    ByteBuffer id = portData.getIDasByteBuffer();
+                    addedPortDataEntries.remove(id);
+                    removedPortDataEntries.put(id, event);
                 }
-                if (linkEvent != null) {
-                    ByteBuffer id = linkEvent.getIDasByteBuffer();
-                    addedLinkEvents.remove(id);
-                    removedLinkEvents.put(id, event);
+                if (linkData != null) {
+                    ByteBuffer id = linkData.getIDasByteBuffer();
+                    addedLinkDataEntries.remove(id);
+                    removedLinkDataEntries.put(id, event);
                 }
-                if (hostEvent != null) {
-                    ByteBuffer id = hostEvent.getIDasByteBuffer();
-                    addedHostEvents.remove(id);
-                    removedHostEvents.put(id, event);
+                if (hostData != null) {
+                    ByteBuffer id = hostData.getIDasByteBuffer();
+                    addedHostDataEntries.remove(id);
+                    removedHostDataEntries.put(id, event);
                 }
                 break;
             default:
@@ -459,17 +459,17 @@
         //    Host
         //
         List<EventEntry<TopologyEvent>> result = new LinkedList<>();
-        result.addAll(removedHostEvents.values());
-        result.addAll(removedLinkEvents.values());
-        result.addAll(removedPortEvents.values());
-        result.addAll(removedSwitchEvents.values());
+        result.addAll(removedHostDataEntries.values());
+        result.addAll(removedLinkDataEntries.values());
+        result.addAll(removedPortDataEntries.values());
+        result.addAll(removedSwitchDataEntries.values());
         result.addAll(removedMastershipEvents.values());
         //
         result.addAll(addedMastershipEvents.values());
-        result.addAll(addedSwitchEvents.values());
-        result.addAll(addedPortEvents.values());
-        result.addAll(addedLinkEvents.values());
-        result.addAll(addedHostEvents.values());
+        result.addAll(addedSwitchDataEntries.values());
+        result.addAll(addedPortDataEntries.values());
+        result.addAll(addedLinkDataEntries.values());
+        result.addAll(addedHostDataEntries.values());
 
         return result;
     }
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyEvents.java b/src/main/java/net/onrc/onos/core/topology/TopologyEvents.java
index b69a409..9bb9184 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyEvents.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyEvents.java
@@ -16,12 +16,12 @@
  * (a) Process "removed" events before "added" events.
  * <p/>
  * (b) The processing order of the "removed" events should be:
- * removedHostEvents, removedLinkEvents, removedPortEvents,
- * removedSwitchEvents, removedMastershipEvents
+ * removedHostDataEntries, removedLinkDataEntries, removedPortDataEntries,
+ * removedSwitchDataEntries, removedMastershipEvents
  * <p/>
  * (c) The processing order of the "added" events should be:
- * addedMastershipEvents, addedSwitchEvents, addedPortEvents, addedLinkEvents,
- * addedHostEvents
+ * addedMastershipEvents, addedSwitchDataEntries, addedPortDataEntries,
+ * addedLinkDataEntries, addedHostDataEntries
  * <p/>
  * The above ordering guarantees that removing a port for example
  * will be processed before the corresponding switch itself is
@@ -34,14 +34,14 @@
 public final class TopologyEvents {
     private final ImmutableList<MastershipEvent> addedMastershipEvents;
     private final ImmutableList<MastershipEvent> removedMastershipEvents;
-    private final ImmutableList<SwitchEvent> addedSwitchEvents;
-    private final ImmutableList<SwitchEvent> removedSwitchEvents;
-    private final ImmutableList<PortEvent> addedPortEvents;
-    private final ImmutableList<PortEvent> removedPortEvents;
-    private final ImmutableList<LinkEvent> addedLinkEvents;
-    private final ImmutableList<LinkEvent> removedLinkEvents;
-    private final ImmutableList<HostEvent> addedHostEvents;
-    private final ImmutableList<HostEvent> removedHostEvents;
+    private final ImmutableList<SwitchData> addedSwitchDataEntries;
+    private final ImmutableList<SwitchData> removedSwitchDataEntries;
+    private final ImmutableList<PortData> addedPortDataEntries;
+    private final ImmutableList<PortData> removedPortDataEntries;
+    private final ImmutableList<LinkData> addedLinkDataEntries;
+    private final ImmutableList<LinkData> removedLinkDataEntries;
+    private final ImmutableList<HostData> addedHostDataEntries;
+    private final ImmutableList<HostData> removedHostDataEntries;
 
     /**
      * Constructor for added and removed events.
@@ -49,78 +49,83 @@
      * @param addedMastershipEvents the collection of added Mastership Events.
      * @param removedMastershipEvents the collection of removed Mastership
      *        Events.
-     * @param addedSwitchEvents the collection of added Switch Events.
-     * @param removedSwitchEvents the collection of removed Switch Events.
-     * @param addedPortEvents the collection of added Port Events.
-     * @param removedPortEvents the collection of removed Port Events.
-     * @param addedLinkEvents the collection of added Link Events.
-     * @param removedLinkEvents the collection of removed Link Events.
-     * @param addedHostEvents the collection of added Host Events.
-     * @param removedHostEvents the collection of removed Host Events.
+     * @param addedSwitchDataEntries the collection of added Switch Data
+     * Entries.
+     * @param removedSwitchDataEntries the collection of removed Switch Data
+     * Entries.
+     * @param addedPortDataEntries the collection of added Port Data Entries.
+     * @param removedPortDataEntries the collection of removed Port Data
+     * Entries.
+     * @param addedLinkDataEntries the collection of added Link Data Entries.
+     * @param removedLinkDataEntries the collection of removed Link Data
+     * Entries.
+     * @param addedHostDataEntries the collection of added Host Data Entries.
+     * @param removedHostDataEntries the collection of removed Host Data
+     * Entries.
      */
     public TopologyEvents(Collection<MastershipEvent> addedMastershipEvents,
                           Collection<MastershipEvent> removedMastershipEvents,
-                          Collection<SwitchEvent> addedSwitchEvents,
-                          Collection<SwitchEvent> removedSwitchEvents,
-                          Collection<PortEvent> addedPortEvents,
-                          Collection<PortEvent> removedPortEvents,
-                          Collection<LinkEvent> addedLinkEvents,
-                          Collection<LinkEvent> removedLinkEvents,
-                          Collection<HostEvent> addedHostEvents,
-                          Collection<HostEvent> removedHostEvents) {
+                          Collection<SwitchData> addedSwitchDataEntries,
+                          Collection<SwitchData> removedSwitchDataEntries,
+                          Collection<PortData> addedPortDataEntries,
+                          Collection<PortData> removedPortDataEntries,
+                          Collection<LinkData> addedLinkDataEntries,
+                          Collection<LinkData> removedLinkDataEntries,
+                          Collection<HostData> addedHostDataEntries,
+                          Collection<HostData> removedHostDataEntries) {
         this.addedMastershipEvents = ImmutableList.<MastershipEvent>copyOf(
                         checkNotNull(addedMastershipEvents));
         this.removedMastershipEvents = ImmutableList.<MastershipEvent>copyOf(
                         checkNotNull(removedMastershipEvents));
-        this.addedSwitchEvents = ImmutableList.<SwitchEvent>copyOf(
-                        checkNotNull(addedSwitchEvents));
-        this.removedSwitchEvents = ImmutableList.<SwitchEvent>copyOf(
-                        checkNotNull(removedSwitchEvents));
-        this.addedPortEvents = ImmutableList.<PortEvent>copyOf(
-                        checkNotNull(addedPortEvents));
-        this.removedPortEvents = ImmutableList.<PortEvent>copyOf(
-                        checkNotNull(removedPortEvents));
-        this.addedLinkEvents = ImmutableList.<LinkEvent>copyOf(
-                        checkNotNull(addedLinkEvents));
-        this.removedLinkEvents = ImmutableList.<LinkEvent>copyOf(
-                        checkNotNull(removedLinkEvents));
-        this.addedHostEvents = ImmutableList.<HostEvent>copyOf(
-                        checkNotNull(addedHostEvents));
-        this.removedHostEvents = ImmutableList.<HostEvent>copyOf(
-                        checkNotNull(removedHostEvents));
+        this.addedSwitchDataEntries = ImmutableList.<SwitchData>copyOf(
+                        checkNotNull(addedSwitchDataEntries));
+        this.removedSwitchDataEntries = ImmutableList.<SwitchData>copyOf(
+                        checkNotNull(removedSwitchDataEntries));
+        this.addedPortDataEntries = ImmutableList.<PortData>copyOf(
+                        checkNotNull(addedPortDataEntries));
+        this.removedPortDataEntries = ImmutableList.<PortData>copyOf(
+                        checkNotNull(removedPortDataEntries));
+        this.addedLinkDataEntries = ImmutableList.<LinkData>copyOf(
+                        checkNotNull(addedLinkDataEntries));
+        this.removedLinkDataEntries = ImmutableList.<LinkData>copyOf(
+                        checkNotNull(removedLinkDataEntries));
+        this.addedHostDataEntries = ImmutableList.<HostData>copyOf(
+                        checkNotNull(addedHostDataEntries));
+        this.removedHostDataEntries = ImmutableList.<HostData>copyOf(
+                        checkNotNull(removedHostDataEntries));
     }
 
     /**
      * Constructor for added events only.
      *
      * @param addedMastershipEvents the collection of added Mastership Events.
-     * @param addedSwitchEvents the collection of added Switch Events.
-     * @param addedPortEvents the collection of added Port Events.
-     * @param addedLinkEvents the collection of added Link Events.
-     * @param addedHostEvents the collection of added Host Events.
+     * @param addedSwitchDataEntries the collection of added Switch Events.
+     * @param addedPortDataEntries the collection of added Port Events.
+     * @param addedLinkDataEntries the collection of added Link Events.
+     * @param addedHostDataEntries the collection of added Host Events.
      */
     public TopologyEvents(Collection<MastershipEvent> addedMastershipEvents,
-                          Collection<SwitchEvent> addedSwitchEvents,
-                          Collection<PortEvent> addedPortEvents,
-                          Collection<LinkEvent> addedLinkEvents,
-                          Collection<HostEvent> addedHostEvents) {
+                          Collection<SwitchData> addedSwitchDataEntries,
+                          Collection<PortData> addedPortDataEntries,
+                          Collection<LinkData> addedLinkDataEntries,
+                          Collection<HostData> addedHostDataEntries) {
         this.addedMastershipEvents = ImmutableList.<MastershipEvent>copyOf(
                         checkNotNull(addedMastershipEvents));
-        this.addedSwitchEvents = ImmutableList.<SwitchEvent>copyOf(
-                        checkNotNull(addedSwitchEvents));
-        this.addedPortEvents = ImmutableList.<PortEvent>copyOf(
-                        checkNotNull(addedPortEvents));
-        this.addedLinkEvents = ImmutableList.<LinkEvent>copyOf(
-                        checkNotNull(addedLinkEvents));
-        this.addedHostEvents = ImmutableList.<HostEvent>copyOf(
-                        checkNotNull(addedHostEvents));
+        this.addedSwitchDataEntries = ImmutableList.<SwitchData>copyOf(
+                        checkNotNull(addedSwitchDataEntries));
+        this.addedPortDataEntries = ImmutableList.<PortData>copyOf(
+                        checkNotNull(addedPortDataEntries));
+        this.addedLinkDataEntries = ImmutableList.<LinkData>copyOf(
+                        checkNotNull(addedLinkDataEntries));
+        this.addedHostDataEntries = ImmutableList.<HostData>copyOf(
+                        checkNotNull(addedHostDataEntries));
 
         // Assign empty lists to the removed events
         this.removedMastershipEvents = ImmutableList.<MastershipEvent>of();
-        this.removedSwitchEvents = ImmutableList.<SwitchEvent>of();
-        this.removedPortEvents = ImmutableList.<PortEvent>of();
-        this.removedLinkEvents = ImmutableList.<LinkEvent>of();
-        this.removedHostEvents = ImmutableList.<HostEvent>of();
+        this.removedSwitchDataEntries = ImmutableList.<SwitchData>of();
+        this.removedPortDataEntries = ImmutableList.<PortData>of();
+        this.removedLinkDataEntries = ImmutableList.<LinkData>of();
+        this.removedHostDataEntries = ImmutableList.<HostData>of();
     }
 
     /**
@@ -146,8 +151,8 @@
      *
      * @return the immutable collection of added Switch Events.
      */
-    public Collection<SwitchEvent> getAddedSwitchEvents() {
-        return addedSwitchEvents;
+    public Collection<SwitchData> getAddedSwitchDataEntries() {
+        return addedSwitchDataEntries;
     }
 
     /**
@@ -155,8 +160,8 @@
      *
      * @return the immutable collection of removed Switch Events.
      */
-    public Collection<SwitchEvent> getRemovedSwitchEvents() {
-        return removedSwitchEvents;
+    public Collection<SwitchData> getRemovedSwitchDataEntries() {
+        return removedSwitchDataEntries;
     }
 
     /**
@@ -164,8 +169,8 @@
      *
      * @return the immutable collection of added Port Events.
      */
-    public Collection<PortEvent> getAddedPortEvents() {
-        return addedPortEvents;
+    public Collection<PortData> getAddedPortDataEntries() {
+        return addedPortDataEntries;
     }
 
     /**
@@ -173,8 +178,8 @@
      *
      * @return the immutable collection of removed Port Events.
      */
-    public Collection<PortEvent> getRemovedPortEvents() {
-        return removedPortEvents;
+    public Collection<PortData> getRemovedPortDataEntries() {
+        return removedPortDataEntries;
     }
 
     /**
@@ -182,8 +187,8 @@
      *
      * @return the immutable collection of added Link Events.
      */
-    public Collection<LinkEvent> getAddedLinkEvents() {
-        return addedLinkEvents;
+    public Collection<LinkData> getAddedLinkDataEntries() {
+        return addedLinkDataEntries;
     }
 
     /**
@@ -191,8 +196,8 @@
      *
      * @return the immutable collection of removed Link Events.
      */
-    public Collection<LinkEvent> getRemovedLinkEvents() {
-        return removedLinkEvents;
+    public Collection<LinkData> getRemovedLinkDataEntries() {
+        return removedLinkDataEntries;
     }
 
     /**
@@ -200,8 +205,8 @@
      *
      * @return the immutable collection of added Host Events.
      */
-    public Collection<HostEvent> getAddedHostEvents() {
-        return addedHostEvents;
+    public Collection<HostData> getAddedHostDataEntries() {
+        return addedHostDataEntries;
     }
 
     /**
@@ -209,7 +214,7 @@
      *
      * @return the immutable collection of removed Host Events.
      */
-    public Collection<HostEvent> getRemovedHostEvents() {
-        return removedHostEvents;
+    public Collection<HostData> getRemovedHostDataEntries() {
+        return removedHostDataEntries;
     }
 }
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyImpl.java b/src/main/java/net/onrc/onos/core/topology/TopologyImpl.java
index cc1cc9f..c27a247 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyImpl.java
@@ -52,16 +52,16 @@
     private final Map<Dpid, SortedSet<MastershipEvent>> mastership;
 
     // DPID -> Switch
-    private final ConcurrentMap<Dpid, SwitchEvent> switches;
-    private final ConcurrentMap<Dpid, ConcurrentMap<PortNumber, PortEvent>> ports;
+    private final ConcurrentMap<Dpid, SwitchData> switches;
+    private final ConcurrentMap<Dpid, ConcurrentMap<PortNumber, PortData>> ports;
 
     // Index from Port to Host
-    private final Multimap<SwitchPort, HostEvent> hosts;
-    private final ConcurrentMap<MACAddress, HostEvent> mac2Host;
+    private final Multimap<SwitchPort, HostData> hosts;
+    private final ConcurrentMap<MACAddress, HostData> mac2Host;
 
     // SwitchPort -> (type -> Link)
-    private final ConcurrentMap<SwitchPort, ConcurrentMap<String, LinkEvent>> outgoingLinks;
-    private final ConcurrentMap<SwitchPort, ConcurrentMap<String, LinkEvent>> incomingLinks;
+    private final ConcurrentMap<SwitchPort, ConcurrentMap<String, LinkData>> outgoingLinks;
+    private final ConcurrentMap<SwitchPort, ConcurrentMap<String, LinkData>> incomingLinks;
 
     private final ReadWriteLock readWriteLock = new ReentrantReadWriteLock();
     private final Lock readLock = readWriteLock.readLock();
@@ -77,7 +77,7 @@
         switches = new ConcurrentHashMap<>();
         ports = new ConcurrentHashMap<>();
         hosts = Multimaps.synchronizedMultimap(
-                HashMultimap.<SwitchPort, HostEvent>create());
+                HashMultimap.<SwitchPort, HostData>create());
         mac2Host = new ConcurrentHashMap<>();
         outgoingLinks = new ConcurrentHashMap<>();
         incomingLinks = new ConcurrentHashMap<>();
@@ -102,25 +102,25 @@
 
             // shallow copy Map in Map
             this.ports = new ConcurrentHashMap<>(original.ports.size());
-            for (Entry<Dpid, ConcurrentMap<PortNumber, PortEvent>> entry
+            for (Entry<Dpid, ConcurrentMap<PortNumber, PortData>> entry
                     : original.ports.entrySet()) {
                 this.ports.put(entry.getKey(), new ConcurrentHashMap<>(entry.getValue()));
             }
 
             this.hosts = Multimaps.synchronizedMultimap(
-                    HashMultimap.<SwitchPort, HostEvent>create(original.hosts));
+                    HashMultimap.<SwitchPort, HostData>create(original.hosts));
             this.mac2Host = new ConcurrentHashMap<>(original.mac2Host);
 
             // shallow copy Map in Map
             this.outgoingLinks = new ConcurrentHashMap<>(original.outgoingLinks.size());
-            for (Entry<SwitchPort, ConcurrentMap<String, LinkEvent>> entry
+            for (Entry<SwitchPort, ConcurrentMap<String, LinkData>> entry
                     : original.outgoingLinks.entrySet()) {
                 this.outgoingLinks.put(entry.getKey(), new ConcurrentHashMap<>(entry.getValue()));
             }
 
             // shallow copy Map in Map
             this.incomingLinks = new ConcurrentHashMap<>(original.incomingLinks.size());
-            for (Entry<SwitchPort, ConcurrentMap<String, LinkEvent>> entry
+            for (Entry<SwitchPort, ConcurrentMap<String, LinkData>> entry
                     : original.incomingLinks.entrySet()) {
                 this.incomingLinks.put(entry.getKey(), new ConcurrentHashMap<>(entry.getValue()));
             }
@@ -131,7 +131,7 @@
 
     @Override
     public Switch getSwitch(Dpid dpid) {
-        final SwitchEvent sw = switches.get(dpid);
+        final SwitchData sw = switches.get(dpid);
         if (sw != null) {
             return new SwitchImpl(this, dpid);
         } else {
@@ -142,7 +142,7 @@
     @Override
     public Iterable<Switch> getSwitches() {
         List<Switch> list = new ArrayList<>(switches.size());
-        for (SwitchEvent elm : switches.values()) {
+        for (SwitchData elm : switches.values()) {
             list.add(new SwitchImpl(this, elm.getDpid()));
         }
         return list;
@@ -150,9 +150,9 @@
 
     @Override
     public Port getPort(Dpid dpid, PortNumber number) {
-        ConcurrentMap<PortNumber, PortEvent> portMap = ports.get(dpid);
+        ConcurrentMap<PortNumber, PortData> portMap = ports.get(dpid);
         if (portMap != null) {
-            final PortEvent port = portMap.get(number);
+            final PortData port = portMap.get(number);
             if (port != null) {
                 return new PortImpl(this, port.getSwitchPort());
             }
@@ -167,12 +167,12 @@
 
     @Override
     public Collection<Port> getPorts(Dpid dpid) {
-        ConcurrentMap<PortNumber, PortEvent> portMap = ports.get(dpid);
+        ConcurrentMap<PortNumber, PortData> portMap = ports.get(dpid);
         if (portMap == null) {
             return Collections.emptyList();
         }
         List<Port> list = new ArrayList<>(portMap.size());
-        for (PortEvent elm : portMap.values()) {
+        for (PortData elm : portMap.values()) {
             list.add(new PortImpl(this, elm.getSwitchPort()));
         }
         return list;
@@ -185,7 +185,7 @@
 
     @Override
     public Link getOutgoingLink(SwitchPort port) {
-        Map<String, LinkEvent> links = outgoingLinks.get(port);
+        Map<String, LinkData> links = outgoingLinks.get(port);
         return getPacketLinkIfExists(links);
     }
 
@@ -197,19 +197,19 @@
      * @param links Collection of links to search from
      * @return Link instance found or null if no link exists
      */
-    private Link getPacketLinkIfExists(Map<String, LinkEvent> links) {
+    private Link getPacketLinkIfExists(Map<String, LinkData> links) {
 
         if (links == null) {
             return null;
         }
 
-        LinkEvent link = links.get(TopologyElement.TYPE_PACKET_LAYER);
+        LinkData link = links.get(TopologyElement.TYPE_PACKET_LAYER);
         if (link != null) {
             // return packet link
             return new LinkImpl(this, link.getLinkTuple());
         } else {
             // return whatever found
-            Iterator<LinkEvent> it = links.values().iterator();
+            Iterator<LinkData> it = links.values().iterator();
             if (it.hasNext()) {
                 return new LinkImpl(this, it.next().getLinkTuple());
             }
@@ -224,8 +224,8 @@
 
     @Override
     public Link getOutgoingLink(SwitchPort port, String type) {
-        Map<String, LinkEvent> links = outgoingLinks.get(port);
-        final LinkEvent link = links.get(type);
+        Map<String, LinkData> links = outgoingLinks.get(port);
+        final LinkData link = links.get(type);
         if (link != null) {
             return new LinkImpl(this, link.getLinkTuple());
         }
@@ -234,7 +234,7 @@
 
     @Override
     public Collection<Link> getOutgoingLinks(SwitchPort port) {
-        ConcurrentMap<String, LinkEvent> typeMap = outgoingLinks.get(port);
+        ConcurrentMap<String, LinkData> typeMap = outgoingLinks.get(port);
         if (typeMap == null) {
             return Collections.emptyList();
         }
@@ -242,17 +242,17 @@
     }
 
     /**
-     * Converts collection of LinkEvent to collection of LinkImpls.
+     * Converts collection of LinkData to collection of LinkImpls.
      *
-     * @param links collection of LinkEvent
+     * @param links collection of LinkData
      * @return collection of LinkImpls
      */
-    private Collection<Link> toLinkImpls(final Collection<LinkEvent> links) {
+    private Collection<Link> toLinkImpls(final Collection<LinkData> links) {
         if (links == null) {
             return Collections.emptyList();
         }
         List<Link> list = new ArrayList<>(links.size());
-        for (LinkEvent elm : links) {
+        for (LinkData elm : links) {
             list.add(new LinkImpl(this, elm.getLinkTuple()));
         }
         return list;
@@ -265,7 +265,7 @@
 
     @Override
     public Link getIncomingLink(SwitchPort port) {
-        Map<String, LinkEvent> links = incomingLinks.get(port);
+        Map<String, LinkData> links = incomingLinks.get(port);
         return getPacketLinkIfExists(links);
     }
 
@@ -276,8 +276,8 @@
 
     @Override
     public Link getIncomingLink(SwitchPort port, String type) {
-        Map<String, LinkEvent> links = incomingLinks.get(port);
-        final LinkEvent link = links.get(type);
+        Map<String, LinkData> links = incomingLinks.get(port);
+        final LinkData link = links.get(type);
         if (link != null) {
             return new LinkImpl(this, link.getLinkTuple());
         }
@@ -286,7 +286,7 @@
 
     @Override
     public Collection<Link> getIncomingLinks(SwitchPort port) {
-        ConcurrentMap<String, LinkEvent> typeMap = incomingLinks.get(port);
+        ConcurrentMap<String, LinkData> typeMap = incomingLinks.get(port);
         if (typeMap == null) {
             return Collections.emptyList();
         }
@@ -332,11 +332,11 @@
     public Iterable<Link> getLinks() {
         List<Link> links = new ArrayList<>();
 
-        for (Map<String, LinkEvent> portLinks : outgoingLinks.values()) {
+        for (Map<String, LinkData> portLinks : outgoingLinks.values()) {
             if (portLinks == null) {
                 continue;
             }
-            for (LinkEvent elm : portLinks.values()) {
+            for (LinkData elm : portLinks.values()) {
                 links.add(new LinkImpl(this, elm.getLinkTuple()));
             }
         }
@@ -345,7 +345,7 @@
 
     @Override
     public Host getHostByMac(MACAddress address) {
-        HostEvent host = mac2Host.get(address);
+        HostData host = mac2Host.get(address);
         if (host != null) {
             return new HostImpl(this, address);
         }
@@ -358,17 +358,17 @@
     }
 
     /**
-     * Converts collection of HostEvent to collection of HostImpl.
+     * Converts collection of HostData to collection of HostImpl.
      *
-     * @param events collection of HostEvent
+     * @param events collection of HostData
      * @return collection of HostImpl
      */
-    private List<Host> toHostImpls(Collection<HostEvent> events) {
+    private List<Host> toHostImpls(Collection<HostData> events) {
         if (events == null) {
             return Collections.emptyList();
         }
         List<Host> list = new ArrayList<>(events.size());
-        for (HostEvent elm : events) {
+        for (HostData elm : events) {
             list.add(new HostImpl(this, elm.getMac()));
         }
         return list;
@@ -380,23 +380,23 @@
     }
 
     @Override
-    public SwitchEvent getSwitchEvent(final Dpid dpid) {
+    public SwitchData getSwitchData(final Dpid dpid) {
         return this.switches.get(dpid);
     }
 
     @Override
-    public Collection<SwitchEvent> getAllSwitchEvents() {
+    public Collection<SwitchData> getAllSwitchDataEntries() {
         return Collections.unmodifiableCollection(switches.values());
     }
 
     @Override
-    public PortEvent getPortEvent(final SwitchPort port) {
-        return getPortEvent(port.getDpid(), port.getPortNumber());
+    public PortData getPortData(final SwitchPort port) {
+        return getPortData(port.getDpid(), port.getPortNumber());
     }
 
     @Override
-    public PortEvent getPortEvent(final Dpid dpid, PortNumber portNumber) {
-        ConcurrentMap<PortNumber, PortEvent> portMap = this.ports.get(dpid);
+    public PortData getPortData(final Dpid dpid, PortNumber portNumber) {
+        ConcurrentMap<PortNumber, PortData> portMap = this.ports.get(dpid);
         if (portMap != null) {
             return portMap.get(portNumber);
         }
@@ -404,8 +404,8 @@
     }
 
     @Override
-    public Collection<PortEvent> getPortEvents(final Dpid dpid) {
-        ConcurrentMap<PortNumber, PortEvent> portList = ports.get(dpid);
+    public Collection<PortData> getPortDataEntries(final Dpid dpid) {
+        ConcurrentMap<PortNumber, PortData> portList = ports.get(dpid);
         if (portList == null) {
             return Collections.emptyList();
         }
@@ -413,17 +413,17 @@
     }
 
     @Override
-    public Collection<PortEvent> getAllPortEvents() {
-        List<PortEvent> events = new LinkedList<>();
-        for (ConcurrentMap<PortNumber, PortEvent> cm : ports.values()) {
+    public Collection<PortData> getAllPortDataEntries() {
+        List<PortData> events = new LinkedList<>();
+        for (ConcurrentMap<PortNumber, PortData> cm : ports.values()) {
             events.addAll(cm.values());
         }
         return Collections.unmodifiableCollection(events);
     }
 
     @Override
-    public LinkEvent getLinkEvent(final LinkTuple linkId) {
-        ConcurrentMap<String, LinkEvent> links = this.outgoingLinks.get(linkId.getSrc());
+    public LinkData getLinkData(final LinkTuple linkId) {
+        ConcurrentMap<String, LinkData> links = this.outgoingLinks.get(linkId.getSrc());
         if (links == null) {
             return null;
         }
@@ -431,7 +431,7 @@
         // TODO Should we look for Packet link first?
         //  Not unless invariant is broken.
 
-        for (LinkEvent link : links.values()) {
+        for (LinkData link : links.values()) {
             if (link.getDst().equals(linkId.getDst())) {
                 return link;
             }
@@ -440,12 +440,12 @@
     }
 
     @Override
-    public LinkEvent getLinkEvent(final LinkTuple linkId, final String type) {
-        ConcurrentMap<String, LinkEvent> links = this.outgoingLinks.get(linkId.getSrc());
+    public LinkData getLinkData(final LinkTuple linkId, final String type) {
+        ConcurrentMap<String, LinkData> links = this.outgoingLinks.get(linkId.getSrc());
         if (links == null) {
             return null;
         }
-        LinkEvent link = links.get(type);
+        LinkData link = links.get(type);
         if (link.getDst().equals(linkId.getDst())) {
             return link;
         }
@@ -453,8 +453,8 @@
     }
 
     @Override
-    public Collection<LinkEvent> getLinkEventsFrom(SwitchPort srcPort) {
-        ConcurrentMap<String, LinkEvent> links = this.outgoingLinks.get(srcPort);
+    public Collection<LinkData> getLinkDataEntriesFrom(SwitchPort srcPort) {
+        ConcurrentMap<String, LinkData> links = this.outgoingLinks.get(srcPort);
         if (links == null) {
             return Collections.emptyList();
         }
@@ -462,8 +462,8 @@
     }
 
     @Override
-    public Collection<LinkEvent> getLinkEventsTo(SwitchPort dstPort) {
-        ConcurrentMap<String, LinkEvent> links = this.incomingLinks.get(dstPort);
+    public Collection<LinkData> getLinkDataEntriesTo(SwitchPort dstPort) {
+        ConcurrentMap<String, LinkData> links = this.incomingLinks.get(dstPort);
         if (links == null) {
             return Collections.emptyList();
         }
@@ -471,44 +471,44 @@
     }
 
     @Override
-    public Collection<LinkEvent> getLinkEvents(final LinkTuple linkId) {
-        ConcurrentMap<String, LinkEvent> links = this.outgoingLinks.get(linkId.getSrc());
+    public Collection<LinkData> getLinkDataEntries(final LinkTuple linkId) {
+        ConcurrentMap<String, LinkData> links = this.outgoingLinks.get(linkId.getSrc());
         if (links == null) {
             return Collections.emptyList();
         }
 
-        List<LinkEvent> linkEvents = new ArrayList<>();
-        for (LinkEvent e : links.values()) {
+        List<LinkData> linkDataEntries = new ArrayList<>();
+        for (LinkData e : links.values()) {
             if (e.getDst().equals(linkId.getDst())) {
-                linkEvents.add(e);
+                linkDataEntries.add(e);
             }
         }
 
         // unless invariant is broken, this should contain at most 1 element.
-        return linkEvents;
+        return linkDataEntries;
     }
 
     @Override
-    public Collection<LinkEvent> getAllLinkEvents() {
-        List<LinkEvent> events = new LinkedList<>();
-        for (ConcurrentMap<String, LinkEvent> cm : outgoingLinks.values()) {
+    public Collection<LinkData> getAllLinkDataEntries() {
+        List<LinkData> events = new LinkedList<>();
+        for (ConcurrentMap<String, LinkData> cm : outgoingLinks.values()) {
             events.addAll(cm.values());
         }
         return Collections.unmodifiableCollection(events);
     }
 
     @Override
-    public HostEvent getHostEvent(final MACAddress mac) {
+    public HostData getHostData(final MACAddress mac) {
         return this.mac2Host.get(mac);
     }
 
     @Override
-    public Collection<HostEvent> getHostEvents(SwitchPort port) {
+    public Collection<HostData> getHostDataEntries(SwitchPort port) {
         return Collections.unmodifiableCollection(hosts.get(port));
     }
 
     @Override
-    public Collection<HostEvent> getAllHostEvents() {
+    public Collection<HostData> getAllHostDataEntries() {
         return Collections.unmodifiableCollection(mac2Host.values());
     }
 
@@ -527,19 +527,19 @@
     }
 
     /**
-     * Puts a SwitchEvent.
+     * Puts a SwitchData.
      *
      * @param sw Switch to add. (Will be frozen if not already)
      */
     @GuardedBy("writeLock")
-    protected void putSwitch(SwitchEvent sw) {
+    protected void putSwitch(SwitchData sw) {
         // TODO isFrozen check once we implement CoW/lock-free
         switches.put(sw.getDpid(), sw.freeze());
-        ports.putIfAbsent(sw.getDpid(), new ConcurrentHashMap<PortNumber, PortEvent>());
+        ports.putIfAbsent(sw.getDpid(), new ConcurrentHashMap<PortNumber, PortData>());
     }
 
     /**
-     * Removes a SwitchEvent from this snapshot.
+     * Removes a SwitchData from this snapshot.
      * <p/>
      * Will also remove ports, if it has not been removed already.
      *
@@ -549,24 +549,24 @@
     protected void removeSwitch(Dpid dpid) {
         // TODO isFrozen check once we implement CoW/lock-free
         switches.remove(dpid);
-        ConcurrentMap<PortNumber, PortEvent> removedPorts = ports.remove(dpid);
+        ConcurrentMap<PortNumber, PortData> removedPorts = ports.remove(dpid);
         if (removedPorts != null && !removedPorts.isEmpty()) {
             log.warn("Some ports were removed as side-effect of #removeSwitch({})", dpid);
         }
     }
 
     /**
-     * Puts a PortEvent.
+     * Puts a PortData.
      *
      * @param port Port to add. (Will be frozen if not already)
      */
     @GuardedBy("writeLock")
-    protected void putPort(PortEvent port) {
+    protected void putPort(PortData port) {
 
-        ConcurrentMap<PortNumber, PortEvent> portMap = ports.get(port.getDpid());
+        ConcurrentMap<PortNumber, PortData> portMap = ports.get(port.getDpid());
         if (portMap == null) {
             portMap = new ConcurrentHashMap<>();
-            ConcurrentMap<PortNumber, PortEvent> existing
+            ConcurrentMap<PortNumber, PortData> existing
                 = ports.putIfAbsent(port.getDpid(), portMap);
             if (existing != null) {
                 // port map was added concurrently, using theirs
@@ -577,7 +577,7 @@
     }
 
     /**
-     * Removes a PortEvent from this snapshot.
+     * Removes a PortData from this snapshot.
      *
      * @param port SwitchPort to remove
      */
@@ -587,7 +587,7 @@
     }
 
     /**
-     * Removes a PortEvent from this snapshot.
+     * Removes a PortData from this snapshot.
      * <p/>
      * Will also remove ports, if it has not been removed already.
      *
@@ -597,19 +597,19 @@
     @GuardedBy("writeLock")
     protected void removePort(Dpid dpid, PortNumber number) {
         // TODO sanity check Host attachment point.
-        ConcurrentMap<PortNumber, PortEvent> portMap = ports.get(dpid);
+        ConcurrentMap<PortNumber, PortData> portMap = ports.get(dpid);
         if (portMap != null) {
             portMap.remove(number);
         }
     }
 
     /**
-     * Puts a LinkEvent.
+     * Puts a LinkData.
      *
-     * @param link LinkEvent
+     * @param link LinkData
      */
     @GuardedBy("writeLock")
-    protected void putLink(LinkEvent link) {
+    protected void putLink(LinkData link) {
         // TODO Do sanity check?
         //   - There cannot be 2 links in same direction between a port pair.
         putLinkMap(outgoingLinks, link.getSrc(), link);
@@ -624,13 +624,13 @@
      * @param link Link to add
      */
     @GuardedBy("writeLock")
-    private void putLinkMap(ConcurrentMap<SwitchPort, ConcurrentMap<String, LinkEvent>> linkMap,
-                            SwitchPort port, LinkEvent link) {
+    private void putLinkMap(ConcurrentMap<SwitchPort, ConcurrentMap<String, LinkData>> linkMap,
+                            SwitchPort port, LinkData link) {
 
-        ConcurrentMap<String, LinkEvent> linksOnPort = linkMap.get(port);
+        ConcurrentMap<String, LinkData> linksOnPort = linkMap.get(port);
         if (linksOnPort == null) {
             linksOnPort = new ConcurrentHashMap<>(4);
-            ConcurrentMap<String, LinkEvent> existing
+            ConcurrentMap<String, LinkData> existing
                 = linkMap.putIfAbsent(
                     port,
                     linksOnPort);
@@ -643,14 +643,14 @@
     }
 
     /**
-     * Removes a LinkEvent from this snapshot.
+     * Removes a LinkData from this snapshot.
      *
      * @param link Link to remove
      * @param type type of link to remove
      */
     @GuardedBy("writeLock")
     protected void removeLink(LinkTuple link, String type) {
-        ConcurrentMap<String, LinkEvent> portLinks
+        ConcurrentMap<String, LinkData> portLinks
             = outgoingLinks.get(link.getSrc());
         if (portLinks != null) {
             // no conditional update here
@@ -665,28 +665,28 @@
     }
 
     /**
-     * Removes a LinkEvent from this snapshot.
+     * Removes a LinkData from this snapshot.
      *
      * @param link Link to remove
      */
     @GuardedBy("writeLock")
     protected void removeLink(LinkTuple link) {
-        Collection<LinkEvent> links = getLinkEvents(link);
-        for (LinkEvent l : links) {
+        Collection<LinkData> links = getLinkDataEntries(link);
+        for (LinkData l : links) {
             removeLink(link, l.getType());
         }
     }
 
     /**
-     * Puts a HostEvent.
+     * Puts a HostData.
      * <p/>
-     * Removes attachment points for previous HostEvent and update
-     * them with new HostEvent
+     * Removes attachment points for previous HostData and update
+     * them with new HostData
      *
-     * @param host HostEvent
+     * @param host HostData
      */
     @GuardedBy("writeLock")
-    protected void putHost(HostEvent host) {
+    protected void putHost(HostData host) {
         // Host cannot be simply put() to replace instance since it has mobility.
         // Simply remove -> put for now.
 
@@ -701,13 +701,13 @@
     }
 
     /**
-     * Removes a HostEvent from this snapshot.
+     * Removes a HostData from this snapshot.
      *
      * @param mac MACAddress of the Host to remove
      */
     @GuardedBy("writeLock")
     protected void removeHost(MACAddress mac) {
-        HostEvent host = mac2Host.remove(mac);
+        HostData host = mac2Host.remove(mac);
         if (host != null) {
             for (SwitchPort port : host.getAttachmentPoints()) {
                 hosts.remove(port, host);
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyManager.java b/src/main/java/net/onrc/onos/core/topology/TopologyManager.java
index 62228f0..47cdcff 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyManager.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyManager.java
@@ -110,14 +110,14 @@
         new LinkedList<>();
     private List<MastershipEvent> apiRemovedMastershipEvents =
         new LinkedList<>();
-    private List<SwitchEvent> apiAddedSwitchEvents = new LinkedList<>();
-    private List<SwitchEvent> apiRemovedSwitchEvents = new LinkedList<>();
-    private List<PortEvent> apiAddedPortEvents = new LinkedList<>();
-    private List<PortEvent> apiRemovedPortEvents = new LinkedList<>();
-    private List<LinkEvent> apiAddedLinkEvents = new LinkedList<>();
-    private List<LinkEvent> apiRemovedLinkEvents = new LinkedList<>();
-    private List<HostEvent> apiAddedHostEvents = new LinkedList<>();
-    private List<HostEvent> apiRemovedHostEvents = new LinkedList<>();
+    private List<SwitchData> apiAddedSwitchDataEntries = new LinkedList<>();
+    private List<SwitchData> apiRemovedSwitchDataEntries = new LinkedList<>();
+    private List<PortData> apiAddedPortDataEntries = new LinkedList<>();
+    private List<PortData> apiRemovedPortDataEntries = new LinkedList<>();
+    private List<LinkData> apiAddedLinkDataEntries = new LinkedList<>();
+    private List<LinkData> apiRemovedLinkDataEntries = new LinkedList<>();
+    private List<HostData> apiAddedHostDataEntries = new LinkedList<>();
+    private List<HostData> apiRemovedHostDataEntries = new LinkedList<>();
 
     /**
      * Constructor.
@@ -235,10 +235,10 @@
                     // Get the event itself
                     MastershipEvent mastershipEvent =
                         topologyEvent.getMastershipEvent();
-                    SwitchEvent switchEvent = topologyEvent.getSwitchEvent();
-                    PortEvent portEvent = topologyEvent.getPortEvent();
-                    LinkEvent linkEvent = topologyEvent.getLinkEvent();
-                    HostEvent hostEvent = topologyEvent.getHostEvent();
+                    SwitchData switchData = topologyEvent.getSwitchData();
+                    PortData portData = topologyEvent.getPortData();
+                    LinkData linkData = topologyEvent.getLinkData();
+                    HostData hostData = topologyEvent.getHostData();
                     boolean wasAdded = false;
 
                     //
@@ -249,17 +249,17 @@
                         if (mastershipEvent != null) {
                             wasAdded = addMastershipEvent(mastershipEvent);
                         }
-                        if (switchEvent != null) {
-                            wasAdded = addSwitch(switchEvent);
+                        if (switchData != null) {
+                            wasAdded = addSwitch(switchData);
                         }
-                        if (portEvent != null) {
-                            wasAdded = addPort(portEvent);
+                        if (portData != null) {
+                            wasAdded = addPort(portData);
                         }
-                        if (linkEvent != null) {
-                            wasAdded = addLink(linkEvent);
+                        if (linkData != null) {
+                            wasAdded = addLink(linkData);
                         }
-                        if (hostEvent != null) {
-                            wasAdded = addHost(hostEvent);
+                        if (hostData != null) {
+                            wasAdded = addHost(hostData);
                         }
                         // If the item wasn't added, probably it was reordered
                         if (!wasAdded) {
@@ -271,17 +271,17 @@
                         if (mastershipEvent != null) {
                             removeMastershipEvent(mastershipEvent);
                         }
-                        if (switchEvent != null) {
-                            removeSwitch(switchEvent);
+                        if (switchData != null) {
+                            removeSwitch(switchData);
                         }
-                        if (portEvent != null) {
-                            removePort(portEvent);
+                        if (portData != null) {
+                            removePort(portData);
                         }
-                        if (linkEvent != null) {
-                            removeLink(linkEvent);
+                        if (linkData != null) {
+                            removeLink(linkData);
                         }
-                        if (hostEvent != null) {
-                            removeHost(hostEvent);
+                        if (hostData != null) {
+                            removeHost(hostData);
                         }
                         break;
                     default:
@@ -413,20 +413,20 @@
         TopologyEvents events = null;
         Collection<MastershipEvent> mastershipEvents =
             lastAddMastershipEvents.values();
-        Collection<SwitchEvent> switchEvents = topology.getAllSwitchEvents();
-        Collection<PortEvent> portEvents = topology.getAllPortEvents();
-        Collection<LinkEvent> linkEvents = topology.getAllLinkEvents();
-        Collection<HostEvent> hostEvents = topology.getAllHostEvents();
+        Collection<SwitchData> switchDataEntries = topology.getAllSwitchDataEntries();
+        Collection<PortData> portDataEntries = topology.getAllPortDataEntries();
+        Collection<LinkData> linkDataEntries = topology.getAllLinkDataEntries();
+        Collection<HostData> hostDataEntries = topology.getAllHostDataEntries();
         if (!(mastershipEvents.isEmpty() &&
-              switchEvents.isEmpty() &&
-              portEvents.isEmpty() &&
-              linkEvents.isEmpty() &&
-              hostEvents.isEmpty())) {
+              switchDataEntries.isEmpty() &&
+              portDataEntries.isEmpty() &&
+              linkDataEntries.isEmpty() &&
+              hostDataEntries.isEmpty())) {
             events = new TopologyEvents(mastershipEvents,
-                                        switchEvents,
-                                        portEvents,
-                                        linkEvents,
-                                        hostEvents);
+                                        switchDataEntries,
+                                        portDataEntries,
+                                        linkDataEntries,
+                                        hostDataEntries);
         }
 
         //
@@ -457,14 +457,14 @@
     private void dispatchTopologyEvents() {
         if (apiAddedMastershipEvents.isEmpty() &&
                 apiRemovedMastershipEvents.isEmpty() &&
-                apiAddedSwitchEvents.isEmpty() &&
-                apiRemovedSwitchEvents.isEmpty() &&
-                apiAddedPortEvents.isEmpty() &&
-                apiRemovedPortEvents.isEmpty() &&
-                apiAddedLinkEvents.isEmpty() &&
-                apiRemovedLinkEvents.isEmpty() &&
-                apiAddedHostEvents.isEmpty() &&
-                apiRemovedHostEvents.isEmpty()) {
+                apiAddedSwitchDataEntries.isEmpty() &&
+                apiRemovedSwitchDataEntries.isEmpty() &&
+                apiAddedPortDataEntries.isEmpty() &&
+                apiRemovedPortDataEntries.isEmpty() &&
+                apiAddedLinkDataEntries.isEmpty() &&
+                apiRemovedLinkDataEntries.isEmpty() &&
+                apiAddedHostDataEntries.isEmpty() &&
+                apiRemovedHostDataEntries.isEmpty()) {
             return;        // No events to dispatch
         }
 
@@ -481,29 +481,29 @@
                 log.debug("Dispatch Topology Event: REMOVED {}",
                           mastershipEvent);
             }
-            for (SwitchEvent switchEvent : apiAddedSwitchEvents) {
-                log.debug("Dispatch Topology Event: ADDED {}", switchEvent);
+            for (SwitchData switchData : apiAddedSwitchDataEntries) {
+                log.debug("Dispatch Topology Event: ADDED {}", switchData);
             }
-            for (SwitchEvent switchEvent : apiRemovedSwitchEvents) {
-                log.debug("Dispatch Topology Event: REMOVED {}", switchEvent);
+            for (SwitchData switchData : apiRemovedSwitchDataEntries) {
+                log.debug("Dispatch Topology Event: REMOVED {}", switchData);
             }
-            for (PortEvent portEvent : apiAddedPortEvents) {
-                log.debug("Dispatch Topology Event: ADDED {}", portEvent);
+            for (PortData portData : apiAddedPortDataEntries) {
+                log.debug("Dispatch Topology Event: ADDED {}", portData);
             }
-            for (PortEvent portEvent : apiRemovedPortEvents) {
-                log.debug("Dispatch Topology Event: REMOVED {}", portEvent);
+            for (PortData portData : apiRemovedPortDataEntries) {
+                log.debug("Dispatch Topology Event: REMOVED {}", portData);
             }
-            for (LinkEvent linkEvent : apiAddedLinkEvents) {
-                log.debug("Dispatch Topology Event: ADDED {}", linkEvent);
+            for (LinkData linkData : apiAddedLinkDataEntries) {
+                log.debug("Dispatch Topology Event: ADDED {}", linkData);
             }
-            for (LinkEvent linkEvent : apiRemovedLinkEvents) {
-                log.debug("Dispatch Topology Event: REMOVED {}", linkEvent);
+            for (LinkData linkData : apiRemovedLinkDataEntries) {
+                log.debug("Dispatch Topology Event: REMOVED {}", linkData);
             }
-            for (HostEvent hostEvent : apiAddedHostEvents) {
-                log.debug("Dispatch Topology Event: ADDED {}", hostEvent);
+            for (HostData hostData : apiAddedHostDataEntries) {
+                log.debug("Dispatch Topology Event: ADDED {}", hostData);
             }
-            for (HostEvent hostEvent : apiRemovedHostEvents) {
-                log.debug("Dispatch Topology Event: REMOVED {}", hostEvent);
+            for (HostData hostData : apiRemovedHostDataEntries) {
+                log.debug("Dispatch Topology Event: REMOVED {}", hostData);
             }
         }
 
@@ -512,10 +512,10 @@
         //
         long totalEvents =
             apiAddedMastershipEvents.size() + apiRemovedMastershipEvents.size() +
-            apiAddedSwitchEvents.size() + apiRemovedSwitchEvents.size() +
-            apiAddedPortEvents.size() + apiRemovedPortEvents.size() +
-            apiAddedLinkEvents.size() + apiRemovedLinkEvents.size() +
-            apiAddedHostEvents.size() + apiRemovedHostEvents.size();
+            apiAddedSwitchDataEntries.size() + apiRemovedSwitchDataEntries.size() +
+            apiAddedPortDataEntries.size() + apiRemovedPortDataEntries.size() +
+            apiAddedLinkDataEntries.size() + apiRemovedLinkDataEntries.size() +
+            apiAddedHostDataEntries.size() + apiRemovedHostDataEntries.size();
         this.listenerEventRate.mark(totalEvents);
         this.lastEventTimestampEpochMs = System.currentTimeMillis();
 
@@ -525,14 +525,14 @@
         TopologyEvents events = new TopologyEvents(
                 apiAddedMastershipEvents,
                 apiRemovedMastershipEvents,
-                apiAddedSwitchEvents,
-                apiRemovedSwitchEvents,
-                apiAddedPortEvents,
-                apiRemovedPortEvents,
-                apiAddedLinkEvents,
-                apiRemovedLinkEvents,
-                apiAddedHostEvents,
-                apiRemovedHostEvents);
+                apiAddedSwitchDataEntries,
+                apiRemovedSwitchDataEntries,
+                apiAddedPortDataEntries,
+                apiRemovedPortDataEntries,
+                apiAddedLinkDataEntries,
+                apiRemovedLinkDataEntries,
+                apiAddedHostDataEntries,
+                apiRemovedHostDataEntries);
 
         //
         // Deliver the events
@@ -546,14 +546,14 @@
         //
         apiAddedMastershipEvents.clear();
         apiRemovedMastershipEvents.clear();
-        apiAddedSwitchEvents.clear();
-        apiRemovedSwitchEvents.clear();
-        apiAddedPortEvents.clear();
-        apiRemovedPortEvents.clear();
-        apiAddedLinkEvents.clear();
-        apiRemovedLinkEvents.clear();
-        apiAddedHostEvents.clear();
-        apiRemovedHostEvents.clear();
+        apiAddedSwitchDataEntries.clear();
+        apiRemovedSwitchDataEntries.clear();
+        apiAddedPortDataEntries.clear();
+        apiRemovedPortDataEntries.clear();
+        apiAddedLinkDataEntries.clear();
+        apiRemovedLinkDataEntries.clear();
+        apiAddedHostDataEntries.clear();
+        apiRemovedHostDataEntries.clear();
     }
 
     //
@@ -590,86 +590,86 @@
     /**
      * Adds a switch to the topology replica.
      *
-     * @param switchEvent the SwitchEvent with the switch to add.
+     * @param switchData the SwitchData with the switch to add.
      * @return true if the item was successfully added, otherwise false.
      */
     @GuardedBy("topology.writeLock")
-    private boolean addSwitch(SwitchEvent switchEvent) {
+    private boolean addSwitch(SwitchData switchData) {
         if (log.isDebugEnabled()) {
-            SwitchEvent sw = topology.getSwitchEvent(switchEvent.getDpid());
+            SwitchData sw = topology.getSwitchData(switchData.getDpid());
             if (sw != null) {
-                log.debug("Update {}", switchEvent);
+                log.debug("Update {}", switchData);
             } else {
-                log.debug("Added {}", switchEvent);
+                log.debug("Added {}", switchData);
             }
         }
-        topology.putSwitch(switchEvent.freeze());
-        apiAddedSwitchEvents.add(switchEvent);
+        topology.putSwitch(switchData.freeze());
+        apiAddedSwitchDataEntries.add(switchData);
         return true;
     }
 
     /**
      * Removes a switch from the topology replica.
      * <p/>
-     * It will call {@link #removePort(PortEvent)} for each ports on this
+     * It will call {@link #removePort(PortData)} for each ports on this
      * switch.
      *
-     * @param switchEvent the SwitchEvent with the switch to remove.
+     * @param switchData the SwitchData with the switch to remove.
      */
     @GuardedBy("topology.writeLock")
-    private void removeSwitch(SwitchEvent switchEvent) {
-        final Dpid dpid = switchEvent.getDpid();
+    private void removeSwitch(SwitchData switchData) {
+        final Dpid dpid = switchData.getDpid();
 
-        SwitchEvent swInTopo = topology.getSwitchEvent(dpid);
+        SwitchData swInTopo = topology.getSwitchData(dpid);
         if (swInTopo == null) {
-            log.warn("Switch {} already removed, ignoring", switchEvent);
+            log.warn("Switch {} already removed, ignoring", switchData);
             return;
         }
 
         //
         // Remove all Ports on the Switch
         //
-        ArrayList<PortEvent> portsToRemove = new ArrayList<>();
+        ArrayList<PortData> portsToRemove = new ArrayList<>();
         for (Port port : topology.getPorts(dpid)) {
             log.warn("Port {} on Switch {} should be removed prior to removing Switch. Removing Port now.",
-                    port, switchEvent);
-            PortEvent portEvent = new PortEvent(port.getSwitchPort());
-            portsToRemove.add(portEvent);
+                    port, switchData);
+            PortData portData = new PortData(port.getSwitchPort());
+            portsToRemove.add(portData);
         }
-        for (PortEvent portEvent : portsToRemove) {
-            removePort(portEvent);
+        for (PortData portData : portsToRemove) {
+            removePort(portData);
         }
 
         log.debug("Removed {}", swInTopo);
         topology.removeSwitch(dpid);
-        apiRemovedSwitchEvents.add(swInTopo);
+        apiRemovedSwitchDataEntries.add(swInTopo);
     }
 
     /**
      * Adds a port to the topology replica.
      *
-     * @param portEvent the PortEvent with the port to add.
+     * @param portData the PortData with the port to add.
      * @return true if the item was successfully added, otherwise false.
      */
     @GuardedBy("topology.writeLock")
-    private boolean addPort(PortEvent portEvent) {
-        Switch sw = topology.getSwitch(portEvent.getDpid());
+    private boolean addPort(PortData portData) {
+        Switch sw = topology.getSwitch(portData.getDpid());
         if (sw == null) {
             // Reordered event
-            log.debug("{} reordered because switch is null", portEvent);
+            log.debug("{} reordered because switch is null", portData);
             return false;
         }
 
         if (log.isDebugEnabled()) {
-            PortEvent port = topology.getPortEvent(portEvent.getSwitchPort());
+            PortData port = topology.getPortData(portData.getSwitchPort());
             if (port != null) {
-                log.debug("Update {}", portEvent);
+                log.debug("Update {}", portData);
             } else {
-                log.debug("Added {}", portEvent);
+                log.debug("Added {}", portData);
             }
         }
-        topology.putPort(portEvent.freeze());
-        apiAddedPortEvents.add(portEvent);
+        topology.putPort(portData.freeze());
+        apiAddedPortDataEntries.add(portData);
         return true;
     }
 
@@ -677,47 +677,47 @@
      * Removes a port from the topology replica.
      * <p/>
      * It will remove attachment points from each hosts on this port
-     * and call {@link #removeLink(LinkEvent)} for each links on this port.
+     * and call {@link #removeLink(LinkData)} for each links on this port.
      *
-     * @param portEvent the PortEvent with the port to remove.
+     * @param portData the PortData with the port to remove.
      */
     @GuardedBy("topology.writeLock")
-    private void removePort(PortEvent portEvent) {
-        SwitchEvent sw = topology.getSwitchEvent(portEvent.getDpid());
+    private void removePort(PortData portData) {
+        SwitchData sw = topology.getSwitchData(portData.getDpid());
         if (sw == null) {
             log.warn("Parent Switch for Port {} already removed, ignoring",
-                    portEvent);
+                    portData);
             return;
         }
 
-        final SwitchPort switchPort = portEvent.getSwitchPort();
-        PortEvent portInTopo = topology.getPortEvent(switchPort);
+        final SwitchPort switchPort = portData.getSwitchPort();
+        PortData portInTopo = topology.getPortData(switchPort);
         if (portInTopo == null) {
-            log.warn("Port {} already removed, ignoring", portEvent);
+            log.warn("Port {} already removed, ignoring", portData);
             return;
         }
 
         //
         // Remove all Host attachment points bound to this Port
         //
-        List<HostEvent> hostsToUpdate = new ArrayList<>();
+        List<HostData> hostsToUpdate = new ArrayList<>();
         for (Host host : topology.getHosts(switchPort)) {
             log.debug("Removing Host {} on Port {}", host, portInTopo);
-            HostEvent hostEvent = topology.getHostEvent(host.getMacAddress());
-            hostsToUpdate.add(hostEvent);
+            HostData hostData = topology.getHostData(host.getMacAddress());
+            hostsToUpdate.add(hostData);
         }
-        for (HostEvent hostEvent : hostsToUpdate) {
-            HostEvent newHostEvent = new HostEvent(hostEvent);
-            newHostEvent.removeAttachmentPoint(switchPort);
-            newHostEvent.freeze();
+        for (HostData hostData : hostsToUpdate) {
+            HostData newHostData = new HostData(hostData);
+            newHostData.removeAttachmentPoint(switchPort);
+            newHostData.freeze();
 
             // TODO should this event be fired inside #addHost?
-            if (newHostEvent.getAttachmentPoints().isEmpty()) {
+            if (newHostData.getAttachmentPoints().isEmpty()) {
                 // No more attachment point left -> remove Host
-                removeHost(hostEvent);
+                removeHost(hostData);
             } else {
                 // Update Host
-                addHost(newHostEvent);
+                addHost(newHostData);
             }
         }
 
@@ -731,10 +731,10 @@
             if (link == null) {
                 continue;
             }
-            LinkEvent linkEvent = topology.getLinkEvent(link.getLinkTuple());
-            if (linkEvent != null) {
+            LinkData linkData = topology.getLinkData(link.getLinkTuple());
+            if (linkData != null) {
                 log.debug("Removing Link {} on Port {}", link, portInTopo);
-                removeLink(linkEvent);
+                removeLink(linkData);
             }
         }
 
@@ -742,7 +742,7 @@
         log.debug("Removed {}", portInTopo);
         topology.removePort(switchPort);
 
-        apiRemovedPortEvents.add(portInTopo);
+        apiRemovedPortDataEntries.add(portInTopo);
     }
 
     /**
@@ -750,16 +750,16 @@
      * <p/>
      * It will remove attachment points from each hosts using the same ports.
      *
-     * @param linkEvent the LinkEvent with the link to add.
+     * @param linkData the LinkData with the link to add.
      * @return true if the item was successfully added, otherwise false.
      */
     @GuardedBy("topology.writeLock")
-    private boolean addLink(LinkEvent linkEvent) {
-        PortEvent srcPort = topology.getPortEvent(linkEvent.getSrc());
-        PortEvent dstPort = topology.getPortEvent(linkEvent.getDst());
+    private boolean addLink(LinkData linkData) {
+        PortData srcPort = topology.getPortData(linkData.getSrc());
+        PortData dstPort = topology.getPortData(linkData.getDst());
         if ((srcPort == null) || (dstPort == null)) {
             // Reordered event
-            log.debug("{} reordered because {} port is null", linkEvent,
+            log.debug("{} reordered because {} port is null", linkData,
                     (srcPort == null) ? "src" : "dst");
             return false;
         }
@@ -772,15 +772,15 @@
         //        Hazelcast delay.
         // FIXME: May need to manage local truth and use them instead.
         //
-        if (topology.getLinkEvent(linkEvent.getLinkTuple()) == null) {
+        if (topology.getLinkData(linkData.getLinkTuple()) == null) {
             // Only check for existing Host when adding new Link.
             // Remove all Hosts attached to the ports on both ends
 
-            Set<HostEvent> hostsToUpdate =
-                new TreeSet<>(new Comparator<HostEvent>() {
+            Set<HostData> hostsToUpdate =
+                new TreeSet<>(new Comparator<HostData>() {
                 // Comparison only using ID(=MAC)
                 @Override
-                public int compare(HostEvent o1, HostEvent o2) {
+                public int compare(HostData o1, HostData o2) {
                     return Long.compare(o1.getMac().toLong(), o2.getMac().toLong());
                 }
             });
@@ -793,92 +793,92 @@
             for (SwitchPort port : portsToCheck) {
                 for (Host host : topology.getHosts(port)) {
                     log.error("Host {} on Port {} should have been removed prior to adding Link {}",
-                            host, port, linkEvent);
+                            host, port, linkData);
 
-                    HostEvent hostEvent =
-                        topology.getHostEvent(host.getMacAddress());
-                    hostsToUpdate.add(hostEvent);
+                    HostData hostData =
+                        topology.getHostData(host.getMacAddress());
+                    hostsToUpdate.add(hostData);
                 }
             }
             // Remove attachment point from them
-            for (HostEvent hostEvent : hostsToUpdate) {
+            for (HostData hostData : hostsToUpdate) {
                 // Remove port from attachment point and update
-                HostEvent newHostEvent = new HostEvent(hostEvent);
-                newHostEvent.removeAttachmentPoint(srcPort.getSwitchPort());
-                newHostEvent.removeAttachmentPoint(dstPort.getSwitchPort());
-                newHostEvent.freeze();
+                HostData newHostData = new HostData(hostData);
+                newHostData.removeAttachmentPoint(srcPort.getSwitchPort());
+                newHostData.removeAttachmentPoint(dstPort.getSwitchPort());
+                newHostData.freeze();
 
                 // TODO should this event be fired inside #addHost?
-                if (newHostEvent.getAttachmentPoints().isEmpty()) {
+                if (newHostData.getAttachmentPoints().isEmpty()) {
                     // No more attachment point left -> remove Host
-                    removeHost(hostEvent);
+                    removeHost(hostData);
                 } else {
                     // Update Host
-                    addHost(newHostEvent);
+                    addHost(newHostData);
                 }
             }
         }
 
         if (log.isDebugEnabled()) {
-            LinkEvent link = topology.getLinkEvent(linkEvent.getLinkTuple());
+            LinkData link = topology.getLinkData(linkData.getLinkTuple());
             if (link != null) {
-                log.debug("Update {}", linkEvent);
+                log.debug("Update {}", linkData);
             } else {
-                log.debug("Added {}", linkEvent);
+                log.debug("Added {}", linkData);
             }
         }
-        topology.putLink(linkEvent.freeze());
-        apiAddedLinkEvents.add(linkEvent);
+        topology.putLink(linkData.freeze());
+        apiAddedLinkDataEntries.add(linkData);
         return true;
     }
 
     /**
      * Removes a link from the topology replica.
      *
-     * @param linkEvent the LinkEvent with the link to remove.
+     * @param linkData the LinkData with the link to remove.
      */
     @GuardedBy("topology.writeLock")
-    private void removeLink(LinkEvent linkEvent) {
-        Port srcPort = topology.getPort(linkEvent.getSrc().getDpid(),
-                linkEvent.getSrc().getPortNumber());
+    private void removeLink(LinkData linkData) {
+        Port srcPort = topology.getPort(linkData.getSrc().getDpid(),
+                linkData.getSrc().getPortNumber());
         if (srcPort == null) {
             log.warn("Src Port for Link {} already removed, ignoring",
-                    linkEvent);
+                    linkData);
             return;
         }
 
-        Port dstPort = topology.getPort(linkEvent.getDst().getDpid(),
-                linkEvent.getDst().getPortNumber());
+        Port dstPort = topology.getPort(linkData.getDst().getDpid(),
+                linkData.getDst().getPortNumber());
         if (dstPort == null) {
             log.warn("Dst Port for Link {} already removed, ignoring",
-                    linkEvent);
+                    linkData);
             return;
         }
 
-        LinkEvent linkInTopo = topology.getLinkEvent(linkEvent.getLinkTuple(),
-                linkEvent.getType());
+        LinkData linkInTopo = topology.getLinkData(linkData.getLinkTuple(),
+                linkData.getType());
         if (linkInTopo == null) {
-            log.warn("Link {} already removed, ignoring", linkEvent);
+            log.warn("Link {} already removed, ignoring", linkData);
             return;
         }
 
         if (log.isDebugEnabled()) {
             // only do sanity check on debug level
 
-            Link linkIn = dstPort.getIncomingLink(linkEvent.getType());
+            Link linkIn = dstPort.getIncomingLink(linkData.getType());
             if (linkIn == null) {
                 log.warn("Link {} already removed on destination Port",
-                         linkEvent);
+                         linkData);
             }
-            Link linkOut = srcPort.getOutgoingLink(linkEvent.getType());
+            Link linkOut = srcPort.getOutgoingLink(linkData.getType());
             if (linkOut == null) {
-                log.warn("Link {} already removed on src Port", linkEvent);
+                log.warn("Link {} already removed on src Port", linkData);
             }
         }
 
         log.debug("Removed {}", linkInTopo);
-        topology.removeLink(linkEvent.getLinkTuple(), linkEvent.getType());
-        apiRemovedLinkEvents.add(linkInTopo);
+        topology.removeLink(linkData.getLinkTuple(), linkData.getType());
+        apiRemovedLinkDataEntries.add(linkInTopo);
     }
 
     /**
@@ -886,27 +886,27 @@
      * <p/>
      * TODO: Host-related work is incomplete.
      * TODO: Eventually, we might need to consider reordering
-     * or {@link #addLink(LinkEvent)} and {@link #addHost(HostEvent)} events
+     * or {@link #addLink(LinkData)} and {@link #addHost(HostData)} events
      * on the same port.
      *
-     * @param hostEvent the HostEvent with the host to add.
+     * @param hostData the HostData with the host to add.
      * @return true if the item was successfully added, otherwise false.
      */
     @GuardedBy("topology.writeLock")
-    private boolean addHost(HostEvent hostEvent) {
+    private boolean addHost(HostData hostData) {
 
         // TODO Decide how to handle update scenario.
-        // If the new HostEvent has less attachment point compared to
-        // existing HostEvent, what should the event be?
-        // - AddHostEvent with some attachment point removed? (current behavior)
+        // If the new HostData has less attachment point compared to
+        // existing HostData, what should the event be?
+        // - Add HostData with some attachment point removed? (current behavior)
 
         // create unfrozen copy
         //  for removing attachment points which already has a link
-        HostEvent modifiedHostEvent = new HostEvent(hostEvent);
+        HostData modifiedHostData = new HostData(hostData);
 
         // Verify each attachment point
         boolean attachmentFound = false;
-        for (SwitchPort swp : hostEvent.getAttachmentPoints()) {
+        for (SwitchPort swp : hostData.getAttachmentPoints()) {
             // XXX domain knowledge: Port must exist before Host
             //      but this knowledge cannot be pushed down to driver.
 
@@ -914,7 +914,7 @@
             Port port = topology.getPort(swp.getDpid(), swp.getPortNumber());
             if (port == null) {
                 log.debug("{} reordered because port {} was not there",
-                          hostEvent, swp);
+                          hostData, swp);
                 // Reordered event
                 return false; // should not continue if re-applying later
             }
@@ -924,11 +924,11 @@
                 log.warn("Link (Out:{},In:{}) exist on the attachment point. "
                         + "Ignoring this attachmentpoint ({}) from {}.",
                         port.getOutgoingLink(), port.getIncomingLink(),
-                        swp, modifiedHostEvent);
-                // FIXME Should either reject, reorder this HostEvent,
-                //       or remove attachment point from given HostEvent
-                // Removing attachment point from given HostEvent for now.
-                modifiedHostEvent.removeAttachmentPoint(swp);
+                        swp, modifiedHostData);
+                // FIXME Should either reject, reorder this HostData,
+                //       or remove attachment point from given HostData
+                // Removing attachment point from given HostData for now.
+                modifiedHostData.removeAttachmentPoint(swp);
                 continue;
             }
 
@@ -937,25 +937,25 @@
 
         // Update the host in the topology
         if (attachmentFound) {
-            if (modifiedHostEvent.getAttachmentPoints().isEmpty()) {
+            if (modifiedHostData.getAttachmentPoints().isEmpty()) {
                 log.warn("No valid attachment point left. Ignoring."
                         + "original: {}, modified: {}",
-                         hostEvent, modifiedHostEvent);
+                         hostData, modifiedHostData);
                 // TODO Should we call #removeHost to trigger remove event?
                 //      only if this call is update.
                 return false;
             }
 
             if (log.isDebugEnabled()) {
-                HostEvent host = topology.getHostEvent(hostEvent.getMac());
+                HostData host = topology.getHostData(hostData.getMac());
                 if (host != null) {
-                    log.debug("Update {}", modifiedHostEvent);
+                    log.debug("Update {}", modifiedHostData);
                 } else {
-                    log.debug("Added {}", modifiedHostEvent);
+                    log.debug("Added {}", modifiedHostData);
                 }
             }
-            topology.putHost(modifiedHostEvent.freeze());
-            apiAddedHostEvents.add(modifiedHostEvent);
+            topology.putHost(modifiedHostData.freeze());
+            apiAddedHostDataEntries.add(modifiedHostData);
             return true;
         }
         return false;
@@ -966,20 +966,20 @@
      * <p/>
      * TODO: Host-related work is incomplete.
      *
-     * @param hostEvent the Host Event with the host to remove.
+     * @param hostData the Host Event with the host to remove.
      */
     @GuardedBy("topology.writeLock")
-    private void removeHost(HostEvent hostEvent) {
+    private void removeHost(HostData hostData) {
 
-        final MACAddress mac = hostEvent.getMac();
-        HostEvent hostInTopo = topology.getHostEvent(mac);
+        final MACAddress mac = hostData.getMac();
+        HostData hostInTopo = topology.getHostData(mac);
         if (hostInTopo == null) {
-            log.warn("Host {} already removed, ignoring", hostEvent);
+            log.warn("Host {} already removed, ignoring", hostData);
             return;
         }
 
         log.debug("Removed {}", hostInTopo);
         topology.removeHost(mac);
-        apiRemovedHostEvents.add(hostInTopo);
+        apiRemovedHostDataEntries.add(hostInTopo);
     }
 }
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyPublisher.java b/src/main/java/net/onrc/onos/core/topology/TopologyPublisher.java
index ff05cc3..e2bdb77 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyPublisher.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyPublisher.java
@@ -101,14 +101,14 @@
     //
     private ConcurrentMap<Dpid, MastershipEvent> publishedMastershipEvents =
         new ConcurrentHashMap<>();
-    private ConcurrentMap<Dpid, SwitchEvent> publishedSwitchEvents =
+    private ConcurrentMap<Dpid, SwitchData> publishedSwitchDataEntries =
         new ConcurrentHashMap<>();
-    private ConcurrentMap<Dpid, ConcurrentMap<ByteBuffer, PortEvent>>
-        publishedPortEvents = new ConcurrentHashMap<>();
-    private ConcurrentMap<Dpid, ConcurrentMap<ByteBuffer, LinkEvent>>
-        publishedLinkEvents = new ConcurrentHashMap<>();
-    private ConcurrentMap<Dpid, ConcurrentMap<ByteBuffer, HostEvent>>
-        publishedHostEvents = new ConcurrentHashMap<>();
+    private ConcurrentMap<Dpid, ConcurrentMap<ByteBuffer, PortData>>
+        publishedPortDataEntries = new ConcurrentHashMap<>();
+    private ConcurrentMap<Dpid, ConcurrentMap<ByteBuffer, LinkData>>
+        publishedLinkDataEntries = new ConcurrentHashMap<>();
+    private ConcurrentMap<Dpid, ConcurrentMap<ByteBuffer, HostData>>
+        publishedHostDataEntries = new ConcurrentHashMap<>();
 
     private BlockingQueue<TopologyBatchOperation> delayedOperations =
         new LinkedBlockingQueue<>();
@@ -195,8 +195,8 @@
                 log.debug("Got control to set switch {} INACTIVE",
                         HexString.toHexString(dpid));
 
-                SwitchEvent switchEvent = new SwitchEvent(new Dpid(dpid));
-                publishRemoveSwitchEvent(switchEvent);
+                SwitchData switchData = new SwitchData(new Dpid(dpid));
+                publishRemoveSwitchEvent(switchData);
                 registryService.releaseControl(dpid);
             }
         }
@@ -246,8 +246,8 @@
                             switch (oper) {
                             case ADD:
                                 TopologyEvent topologyEvent = boe.getTarget();
-                                LinkEvent linkEvent =
-                                    topologyEvent.getLinkEvent();
+                                LinkData linkData =
+                                    topologyEvent.getLinkData();
                                 //
                                 // Test whether the Link Event still can be
                                 // published.
@@ -256,19 +256,19 @@
                                 // removed in the middle of checking, we might
                                 // incorrectly publish it again from here.
                                 //
-                                if (linkEvent == null) {
+                                if (linkData == null) {
                                     break;
                                 }
-                                ConcurrentMap<ByteBuffer, LinkEvent>
-                                    linkEvents = publishedLinkEvents.get(
-                                                linkEvent.getDst().getDpid());
-                                if (linkEvents == null) {
+                                ConcurrentMap<ByteBuffer, LinkData>
+                                    linkDataEntries = publishedLinkDataEntries.get(
+                                                linkData.getDst().getDpid());
+                                if (linkDataEntries == null) {
                                     break;
                                 }
-                                if (linkEvents.get(linkEvent.getIDasByteBuffer()) == null) {
+                                if (linkDataEntries.get(linkData.getIDasByteBuffer()) == null) {
                                     break;
                                 }
-                                publishAddLinkEvent(linkEvent);
+                                publishAddLinkEvent(linkData);
                                 break;
                             case REMOVE:
                                 break;
@@ -288,38 +288,38 @@
 
     @Override
     public void linkAdded(Link link) {
-        LinkEvent linkEvent = new LinkEvent(
+        LinkData linkData = new LinkData(
                 new SwitchPort(link.getSrc(), link.getSrcPort()),
                 new SwitchPort(link.getDst(), link.getDstPort()));
 
         // FIXME should be merging, with existing attrs, etc..
         // TODO define attr name as constant somewhere.
         // TODO populate appropriate attributes.
-        linkEvent.createStringAttribute(TopologyElement.TYPE,
+        linkData.createStringAttribute(TopologyElement.TYPE,
                 TopologyElement.TYPE_PACKET_LAYER);
-        linkEvent.createStringAttribute(TopologyElement.ELEMENT_CONFIG_STATE,
+        linkData.createStringAttribute(TopologyElement.ELEMENT_CONFIG_STATE,
                 ConfigState.NOT_CONFIGURED.toString());
-        linkEvent.createStringAttribute(TopologyElement.ELEMENT_ADMIN_STATUS,
+        linkData.createStringAttribute(TopologyElement.ELEMENT_ADMIN_STATUS,
                 AdminStatus.ACTIVE.toString());
-        linkEvent.freeze();
+        linkData.freeze();
 
-        publishAddLinkEvent(linkEvent);
+        publishAddLinkEvent(linkData);
     }
 
     @Override
     public void linkRemoved(Link link) {
-        LinkEvent linkEvent = new LinkEvent(
+        LinkData linkData = new LinkData(
                 new SwitchPort(link.getSrc(), link.getSrcPort()),
                 new SwitchPort(link.getDst(), link.getDstPort()));
 
         // FIXME should be merging, with existing attrs, etc..
         // TODO define attr name as constant somewhere.
         // TODO populate appropriate attributes.
-        linkEvent.createStringAttribute(TopologyElement.TYPE,
+        linkData.createStringAttribute(TopologyElement.TYPE,
                 TopologyElement.TYPE_PACKET_LAYER);
-        linkEvent.freeze();
+        linkData.freeze();
 
-        publishRemoveLinkEvent(linkEvent);
+        publishRemoveLinkEvent(linkData);
     }
 
     /* *****************
@@ -337,39 +337,39 @@
 
         controllerRoleChanged(dpid, Role.MASTER);
 
-        SwitchEvent switchEvent = new SwitchEvent(dpid);
+        SwitchData switchData = new SwitchData(dpid);
         // FIXME should be merging, with existing attrs, etc..
         // TODO define attr name as constant somewhere.
         // TODO populate appropriate attributes.
-        switchEvent.createStringAttribute(TopologyElement.TYPE,
+        switchData.createStringAttribute(TopologyElement.TYPE,
                 TopologyElement.TYPE_PACKET_LAYER);
-        switchEvent.createStringAttribute("ConnectedSince",
+        switchData.createStringAttribute("ConnectedSince",
                 sw.getConnectedSince().toString());
-        switchEvent.createStringAttribute(TopologyElement.ELEMENT_CONFIG_STATE,
+        switchData.createStringAttribute(TopologyElement.ELEMENT_CONFIG_STATE,
                 ConfigState.NOT_CONFIGURED.toString());
-        switchEvent.createStringAttribute(TopologyElement.ELEMENT_ADMIN_STATUS,
+        switchData.createStringAttribute(TopologyElement.ELEMENT_ADMIN_STATUS,
                 AdminStatus.ACTIVE.toString());
-        switchEvent.freeze();
+        switchData.freeze();
         // The Port events
-        List<PortEvent> portEvents = new ArrayList<PortEvent>();
+        List<PortData> portDataEntries = new ArrayList<PortData>();
         for (OFPortDesc port : sw.getPorts()) {
-            PortEvent portEvent = new PortEvent(dpid,
+            PortData portData = new PortData(dpid,
                                                 PortNumberUtils.openFlow(port));
             // FIXME should be merging, with existing attrs, etc..
             // TODO define attr name as constant somewhere.
             // TODO populate appropriate attributes.
-            portEvent.createStringAttribute("name", port.getName());
-            portEvent.createStringAttribute(TopologyElement.TYPE,
+            portData.createStringAttribute("name", port.getName());
+            portData.createStringAttribute(TopologyElement.TYPE,
                     TopologyElement.TYPE_PACKET_LAYER);
-            portEvent.createStringAttribute(TopologyElement.ELEMENT_CONFIG_STATE,
+            portData.createStringAttribute(TopologyElement.ELEMENT_CONFIG_STATE,
                     ConfigState.NOT_CONFIGURED.toString());
-            portEvent.createStringAttribute(TopologyElement.ELEMENT_ADMIN_STATUS,
+            portData.createStringAttribute(TopologyElement.ELEMENT_ADMIN_STATUS,
                     AdminStatus.ACTIVE.toString());
 
-            portEvent.freeze();
-            portEvents.add(portEvent);
+            portData.freeze();
+            portDataEntries.add(portData);
         }
-        publishAddSwitchEvent(switchEvent, portEvents);
+        publishAddSwitchEvent(switchData, portDataEntries);
     }
 
     @Override
@@ -443,17 +443,17 @@
      */
     private void switchPortAdded(long switchId, OFPortDesc port) {
         final Dpid dpid = new Dpid(switchId);
-        final PortEvent portEvent = new PortEvent(dpid,
+        final PortData portData = new PortData(dpid,
                                         PortNumberUtils.openFlow(port));
         // FIXME should be merging, with existing attrs, etc..
         // TODO define attr name as constant somewhere.
         // TODO populate appropriate attributes.
-        portEvent.createStringAttribute(TopologyElement.TYPE,
+        portData.createStringAttribute(TopologyElement.TYPE,
                 TopologyElement.TYPE_PACKET_LAYER);
-        portEvent.createStringAttribute("name", port.getName());
-        portEvent.freeze();
+        portData.createStringAttribute("name", port.getName());
+        portData.freeze();
 
-        publishAddPortEvent(portEvent);
+        publishAddPortEvent(portData);
     }
 
     /**
@@ -465,17 +465,17 @@
     private void switchPortRemoved(long switchId, OFPortDesc port) {
         final Dpid dpid = new Dpid(switchId);
 
-        final PortEvent portEvent = new PortEvent(dpid,
+        final PortData portData = new PortData(dpid,
                                         PortNumberUtils.openFlow(port));
         // FIXME should be merging, with existing attrs, etc..
         // TODO define attr name as constant somewhere.
         // TODO populate appropriate attributes.
-        portEvent.createStringAttribute(TopologyElement.TYPE,
+        portData.createStringAttribute(TopologyElement.TYPE,
                 TopologyElement.TYPE_PACKET_LAYER);
-        portEvent.createStringAttribute("name", port.getName());
-        portEvent.freeze();
+        portData.createStringAttribute("name", port.getName());
+        portData.freeze();
 
-        publishRemovePortEvent(portEvent);
+        publishRemovePortEvent(portData);
     }
 
     @Override
@@ -573,13 +573,13 @@
         SwitchPort sp = new SwitchPort(host.getSwitchDPID(), host.getSwitchPort());
         List<SwitchPort> spLists = new ArrayList<SwitchPort>();
         spLists.add(sp);
-        HostEvent event = new HostEvent(host.getMacAddress());
-        event.setAttachmentPoints(spLists);
-        event.setLastSeenTime(host.getLastSeenTimestamp().getTime());
+        HostData hostData = new HostData(host.getMacAddress());
+        hostData.setAttachmentPoints(spLists);
+        hostData.setLastSeenTime(host.getLastSeenTimestamp().getTime());
         // Does not use vlan info now.
-        event.freeze();
+        hostData.freeze();
 
-        publishAddHostEvent(event);
+        publishAddHostEvent(hostData);
     }
 
     @Override
@@ -587,26 +587,26 @@
         log.debug("Host removed with MAC {}", host.getMacAddress());
 
         //
-        // Remove all previously added HostEvent for this MAC address
+        // Remove all previously added HostData for this MAC address
         //
         // TODO: Currently, the caller of hostRemoved() might not include
-        // the correct set of Attachment Points in the HostEvent entry itself.
-        // Also, we might have multiple HostEvent entries for the same
+        // the correct set of Attachment Points in the HostData entry itself.
+        // Also, we might have multiple HostData entries for the same
         // host (MAC address), each containing a single (different) Attachment
         // Point.
-        // Hence, here we have to cleanup all HostEvent entries for this
+        // Hence, here we have to cleanup all HostData entries for this
         // particular host, based on its MAC address.
         //
-        List<HostEvent> removeHostEvents = new LinkedList<>();
-        for (ConcurrentMap<ByteBuffer, HostEvent> cm : publishedHostEvents.values()) {
-            for (HostEvent hostEvent : cm.values()) {
-                if (hostEvent.getMac().equals(host.getMacAddress())) {
-                    removeHostEvents.add(hostEvent);
+        List<HostData> removeHostDataEntries = new LinkedList<>();
+        for (ConcurrentMap<ByteBuffer, HostData> cm : publishedHostDataEntries.values()) {
+            for (HostData hostData : cm.values()) {
+                if (hostData.getMac().equals(host.getMacAddress())) {
+                    removeHostDataEntries.add(hostData);
                 }
             }
         }
-        for (HostEvent event : removeHostEvents) {
-            publishRemoveHostEvent(event);
+        for (HostData hostData : removeHostDataEntries) {
+            publishRemoveHostEvent(hostData);
         }
     }
 
@@ -676,66 +676,66 @@
     /**
      * Publishes ADD Switch Event.
      *
-     * @param switchEvent the switch event to publish
-     * @param portEvents the corresponding port events for the switch to
+     * @param switchData the switch event to publish
+     * @param portDataEntries the corresponding port events for the switch to
      * publish
      */
-    private void publishAddSwitchEvent(SwitchEvent switchEvent,
-                                       Collection<PortEvent> portEvents) {
-        if (!registryService.hasControl(switchEvent.getOriginDpid().value())) {
+    private void publishAddSwitchEvent(SwitchData switchData,
+                                       Collection<PortData> portDataEntries) {
+        if (!registryService.hasControl(switchData.getOriginDpid().value())) {
             log.debug("Not the master for switch {}. Suppressed switch add event {}.",
-                      switchEvent.getOriginDpid(), switchEvent);
+                      switchData.getOriginDpid(), switchData);
             return;
         }
 
         // Keep track of the old Port Events that should be removed
-        ConcurrentMap<ByteBuffer, PortEvent> oldPortEvents =
-            publishedPortEvents.get(switchEvent.getDpid());
-        if (oldPortEvents == null) {
-            oldPortEvents = new ConcurrentHashMap<>();
+        ConcurrentMap<ByteBuffer, PortData> oldPortDataEntries =
+            publishedPortDataEntries.get(switchData.getDpid());
+        if (oldPortDataEntries == null) {
+            oldPortDataEntries = new ConcurrentHashMap<>();
         }
 
         // Publish the information for the switch
         TopologyBatchOperation tbo = new TopologyBatchOperation();
         TopologyEvent topologyEvent =
-            new TopologyEvent(switchEvent, getOnosInstanceId());
+            new TopologyEvent(switchData, getOnosInstanceId());
         tbo.appendAddOperation(topologyEvent);
 
         // Publish the information for each port
-        ConcurrentMap<ByteBuffer, PortEvent> newPortEvents =
+        ConcurrentMap<ByteBuffer, PortData> newPortDataEntries =
             new ConcurrentHashMap<>();
-        for (PortEvent portEvent : portEvents) {
+        for (PortData portData : portDataEntries) {
             topologyEvent =
-                new TopologyEvent(portEvent, getOnosInstanceId());
+                new TopologyEvent(portData, getOnosInstanceId());
             tbo.appendAddOperation(topologyEvent);
 
-            ByteBuffer id = portEvent.getIDasByteBuffer();
-            newPortEvents.put(id, portEvent);
-            oldPortEvents.remove(id);
+            ByteBuffer id = portData.getIDasByteBuffer();
+            newPortDataEntries.put(id, portData);
+            oldPortDataEntries.remove(id);
         }
         publishTopologyOperations(tbo);
-        publishedSwitchEvents.put(switchEvent.getDpid(), switchEvent);
-        publishedPortEvents.put(switchEvent.getDpid(), newPortEvents);
+        publishedSwitchDataEntries.put(switchData.getDpid(), switchData);
+        publishedPortDataEntries.put(switchData.getDpid(), newPortDataEntries);
 
         // Cleanup for each of the old removed port
-        for (PortEvent portEvent : oldPortEvents.values()) {
-            publishRemovePortEvent(portEvent);
+        for (PortData portData : oldPortDataEntries.values()) {
+            publishRemovePortEvent(portData);
         }
     }
 
     /**
      * Publishes REMOVE Switch Event.
      *
-     * @param switchEvent the switch event to publish
+     * @param switchData the switch event to publish
      */
-    private void publishRemoveSwitchEvent(SwitchEvent switchEvent) {
+    private void publishRemoveSwitchEvent(SwitchData switchData) {
         //
         // TODO: Removed the check for now, because currently this method is
         // also called by the SwitchCleanup thread, and in that case
         // the Switch Event was published by some other ONOS instance.
         //
         /*
-        if (publishedSwitchEvents.get(switchEvent.getDpid()) == null) {
+        if (publishedSwitchDataEntries.get(switchData.getDpid()) == null) {
             return;     // Nothing to do
         }
         */
@@ -743,210 +743,210 @@
         // Publish the information
         TopologyBatchOperation tbo = new TopologyBatchOperation();
         TopologyEvent topologyEvent =
-            new TopologyEvent(switchEvent, getOnosInstanceId());
+            new TopologyEvent(switchData, getOnosInstanceId());
         tbo.appendRemoveOperation(topologyEvent);
         publishTopologyOperations(tbo);
-        publishedSwitchEvents.remove(switchEvent.getDpid());
+        publishedSwitchDataEntries.remove(switchData.getDpid());
 
         // Cleanup for each port
-        ConcurrentMap<ByteBuffer, PortEvent> portEvents =
-            publishedPortEvents.get(switchEvent.getDpid());
-        if (portEvents != null) {
-            for (PortEvent portEvent : portEvents.values()) {
-                publishRemovePortEvent(portEvent);
+        ConcurrentMap<ByteBuffer, PortData> portDataEntries =
+            publishedPortDataEntries.get(switchData.getDpid());
+        if (portDataEntries != null) {
+            for (PortData portData : portDataEntries.values()) {
+                publishRemovePortEvent(portData);
             }
         }
 
-        publishedPortEvents.remove(switchEvent.getDpid());
-        publishedLinkEvents.remove(switchEvent.getDpid());
-        publishedHostEvents.remove(switchEvent.getDpid());
+        publishedPortDataEntries.remove(switchData.getDpid());
+        publishedLinkDataEntries.remove(switchData.getDpid());
+        publishedHostDataEntries.remove(switchData.getDpid());
     }
 
     /**
      * Publishes ADD Port Event.
      *
-     * @param portEvent the port event to publish
+     * @param portData the port event to publish
      */
-    private void publishAddPortEvent(PortEvent portEvent) {
-        if (!registryService.hasControl(portEvent.getOriginDpid().value())) {
+    private void publishAddPortEvent(PortData portData) {
+        if (!registryService.hasControl(portData.getOriginDpid().value())) {
             log.debug("Not the master for switch {}. Suppressed port add event {}.",
-                      portEvent.getOriginDpid(), portEvent);
+                      portData.getOriginDpid(), portData);
             return;
         }
 
         // Publish the information
         TopologyBatchOperation tbo = new TopologyBatchOperation();
         TopologyEvent topologyEvent =
-            new TopologyEvent(portEvent, getOnosInstanceId());
+            new TopologyEvent(portData, getOnosInstanceId());
         tbo.appendAddOperation(topologyEvent);
         publishTopologyOperations(tbo);
 
         // Store the new Port Event in the local cache
-        ConcurrentMap<ByteBuffer, PortEvent> portEvents =
-            ConcurrentUtils.putIfAbsent(publishedPortEvents,
-                        portEvent.getDpid(),
-                        new ConcurrentHashMap<ByteBuffer, PortEvent>());
-        portEvents.put(portEvent.getIDasByteBuffer(), portEvent);
+        ConcurrentMap<ByteBuffer, PortData> portDataEntries =
+            ConcurrentUtils.putIfAbsent(publishedPortDataEntries,
+                        portData.getDpid(),
+                        new ConcurrentHashMap<ByteBuffer, PortData>());
+        portDataEntries.put(portData.getIDasByteBuffer(), portData);
     }
 
     /**
      * Publishes REMOVE Port Event.
      *
-     * @param portEvent the port event to publish
+     * @param portData the port event to publish
      */
-    private void publishRemovePortEvent(PortEvent portEvent) {
-        ConcurrentMap<ByteBuffer, PortEvent> portEvents =
-            publishedPortEvents.get(portEvent.getDpid());
-        if (portEvents == null) {
+    private void publishRemovePortEvent(PortData portData) {
+        ConcurrentMap<ByteBuffer, PortData> portDataEntries =
+            publishedPortDataEntries.get(portData.getDpid());
+        if (portDataEntries == null) {
             return;     // Nothing to do
         }
-        if (portEvents.get(portEvent.getIDasByteBuffer()) == null) {
+        if (portDataEntries.get(portData.getIDasByteBuffer()) == null) {
             return;     // Nothing to do
         }
 
         // Publish the information
         TopologyBatchOperation tbo = new TopologyBatchOperation();
         TopologyEvent topologyEvent =
-            new TopologyEvent(portEvent, getOnosInstanceId());
+            new TopologyEvent(portData, getOnosInstanceId());
         tbo.appendRemoveOperation(topologyEvent);
         publishTopologyOperations(tbo);
 
         // Cleanup for the incoming link(s)
-        ConcurrentMap<ByteBuffer, LinkEvent> linkEvents =
-            publishedLinkEvents.get(portEvent.getDpid());
-        if (linkEvents != null) {
-            for (LinkEvent linkEvent : linkEvents.values()) {
-                if (linkEvent.getDst().equals(portEvent.getSwitchPort())) {
-                    publishRemoveLinkEvent(linkEvent);
+        ConcurrentMap<ByteBuffer, LinkData> linkDataEntries =
+            publishedLinkDataEntries.get(portData.getDpid());
+        if (linkDataEntries != null) {
+            for (LinkData linkData : linkDataEntries.values()) {
+                if (linkData.getDst().equals(portData.getSwitchPort())) {
+                    publishRemoveLinkEvent(linkData);
                 }
             }
         }
 
         // Cleanup for the connected hosts
-        ConcurrentMap<ByteBuffer, HostEvent> hostEvents =
-            publishedHostEvents.get(portEvent.getDpid());
-        if (hostEvents != null) {
-            for (HostEvent hostEvent : hostEvents.values()) {
-                for (SwitchPort swp : hostEvent.getAttachmentPoints()) {
-                    if (swp.equals(portEvent.getSwitchPort())) {
-                        publishRemoveHostEvent(hostEvent);
+        ConcurrentMap<ByteBuffer, HostData> hostDataEntries =
+            publishedHostDataEntries.get(portData.getDpid());
+        if (hostDataEntries != null) {
+            for (HostData hostData : hostDataEntries.values()) {
+                for (SwitchPort swp : hostData.getAttachmentPoints()) {
+                    if (swp.equals(portData.getSwitchPort())) {
+                        publishRemoveHostEvent(hostData);
                     }
                 }
             }
         }
 
-        portEvents.remove(portEvent.getIDasByteBuffer());
+        portDataEntries.remove(portData.getIDasByteBuffer());
     }
 
     /**
      * Publishes ADD Link Event.
      *
-     * @param linkEvent the link event to publish
+     * @param linkData the link event to publish
      */
-    private void publishAddLinkEvent(LinkEvent linkEvent) {
-        if (!registryService.hasControl(linkEvent.getOriginDpid().value())) {
+    private void publishAddLinkEvent(LinkData linkData) {
+        if (!registryService.hasControl(linkData.getOriginDpid().value())) {
             log.debug("Not the master for dst switch {}. Suppressed link add event {}.",
-                      linkEvent.getOriginDpid(), linkEvent);
+                      linkData.getOriginDpid(), linkData);
             return;
         }
 
         // Publish the information
         TopologyBatchOperation tbo = new TopologyBatchOperation();
         TopologyEvent topologyEvent =
-            new TopologyEvent(linkEvent, getOnosInstanceId());
+            new TopologyEvent(linkData, getOnosInstanceId());
         tbo.appendAddOperation(topologyEvent);
         publishTopologyOperations(tbo);
 
         // Store the new Link Event in the local cache
-        ConcurrentMap<ByteBuffer, LinkEvent> linkEvents =
-            ConcurrentUtils.putIfAbsent(publishedLinkEvents,
-                        linkEvent.getDst().getDpid(),
-                        new ConcurrentHashMap<ByteBuffer, LinkEvent>());
-        linkEvents.put(linkEvent.getIDasByteBuffer(), linkEvent);
+        ConcurrentMap<ByteBuffer, LinkData> linkDataEntries =
+            ConcurrentUtils.putIfAbsent(publishedLinkDataEntries,
+                        linkData.getDst().getDpid(),
+                        new ConcurrentHashMap<ByteBuffer, LinkData>());
+        linkDataEntries.put(linkData.getIDasByteBuffer(), linkData);
     }
 
     /**
      * Publishes REMOVE Link Event.
      *
-     * @param linkEvent the link event to publish
+     * @param linkData the link event to publish
      */
-    private void publishRemoveLinkEvent(LinkEvent linkEvent) {
-        ConcurrentMap<ByteBuffer, LinkEvent> linkEvents =
-            publishedLinkEvents.get(linkEvent.getDst().getDpid());
-        if (linkEvents == null) {
+    private void publishRemoveLinkEvent(LinkData linkData) {
+        ConcurrentMap<ByteBuffer, LinkData> linkDataEntries =
+            publishedLinkDataEntries.get(linkData.getDst().getDpid());
+        if (linkDataEntries == null) {
             return;     // Nothing to do
         }
-        if (linkEvents.get(linkEvent.getIDasByteBuffer()) == null) {
+        if (linkDataEntries.get(linkData.getIDasByteBuffer()) == null) {
             return;     // Nothing to do
         }
 
         // Publish the information
         TopologyBatchOperation tbo = new TopologyBatchOperation();
         TopologyEvent topologyEvent =
-            new TopologyEvent(linkEvent, getOnosInstanceId());
+            new TopologyEvent(linkData, getOnosInstanceId());
         tbo.appendRemoveOperation(topologyEvent);
         publishTopologyOperations(tbo);
 
-        linkEvents.remove(linkEvent.getIDasByteBuffer());
+        linkDataEntries.remove(linkData.getIDasByteBuffer());
     }
 
     /**
      * Publishes ADD Host Event.
      *
-     * @param hostEvent the host event to publish
+     * @param hostData the host event to publish
      */
-    private void publishAddHostEvent(HostEvent hostEvent) {
+    private void publishAddHostEvent(HostData hostData) {
         //
         // NOTE: The implementation below assumes that there is just one
-        // attachment point stored in hostEvent. Currently, this assumption
+        // attachment point stored in hostData. Currently, this assumption
         // is true based on the existing implementation of the caller
         // hostAdded().
         //
 
-        if (!registryService.hasControl(hostEvent.getOriginDpid().value())) {
+        if (!registryService.hasControl(hostData.getOriginDpid().value())) {
             log.debug("Not the master for attachment switch {}. Suppressed host add event {}.",
-                      hostEvent.getOriginDpid(), hostEvent);
+                      hostData.getOriginDpid(), hostData);
             return;
         }
 
         // Publish the information
         TopologyBatchOperation tbo = new TopologyBatchOperation();
         TopologyEvent topologyEvent =
-            new TopologyEvent(hostEvent, getOnosInstanceId());
+            new TopologyEvent(hostData, getOnosInstanceId());
         tbo.appendAddOperation(topologyEvent);
         publishTopologyOperations(tbo);
 
         // Store the new Host Event in the local cache
-        ConcurrentMap<ByteBuffer, HostEvent> hostEvents =
-            ConcurrentUtils.putIfAbsent(publishedHostEvents,
-                hostEvent.getOriginDpid(),
-                new ConcurrentHashMap<ByteBuffer, HostEvent>());
-        hostEvents.put(hostEvent.getIDasByteBuffer(), hostEvent);
+        ConcurrentMap<ByteBuffer, HostData> hostDataEntries =
+            ConcurrentUtils.putIfAbsent(publishedHostDataEntries,
+                hostData.getOriginDpid(),
+                new ConcurrentHashMap<ByteBuffer, HostData>());
+        hostDataEntries.put(hostData.getIDasByteBuffer(), hostData);
     }
 
     /**
      * Publishes REMOVE Host Event.
      *
-     * @param hostEvent the host event to publish
+     * @param hostData the host event to publish
      */
-    private void publishRemoveHostEvent(HostEvent hostEvent) {
-        ConcurrentMap<ByteBuffer, HostEvent> hostEvents =
-            publishedHostEvents.get(hostEvent.getOriginDpid());
-        if (hostEvents == null) {
+    private void publishRemoveHostEvent(HostData hostData) {
+        ConcurrentMap<ByteBuffer, HostData> hostDataEntries =
+            publishedHostDataEntries.get(hostData.getOriginDpid());
+        if (hostDataEntries == null) {
             return;     // Nothing to do
         }
-        if (hostEvents.get(hostEvent.getIDasByteBuffer()) == null) {
+        if (hostDataEntries.get(hostData.getIDasByteBuffer()) == null) {
             return;     // Nothing to do
         }
 
         // Publish the information
         TopologyBatchOperation tbo = new TopologyBatchOperation();
         TopologyEvent topologyEvent =
-            new TopologyEvent(hostEvent, getOnosInstanceId());
+            new TopologyEvent(hostData, getOnosInstanceId());
         tbo.appendRemoveOperation(topologyEvent);
         publishTopologyOperations(tbo);
 
-        hostEvents.remove(hostEvent.getIDasByteBuffer());
+        hostDataEntries.remove(hostData.getIDasByteBuffer());
     }
 
     /**
diff --git a/src/main/java/net/onrc/onos/core/topology/web/serializers/HostEventSerializer.java b/src/main/java/net/onrc/onos/core/topology/web/serializers/HostDataSerializer.java
similarity index 69%
rename from src/main/java/net/onrc/onos/core/topology/web/serializers/HostEventSerializer.java
rename to src/main/java/net/onrc/onos/core/topology/web/serializers/HostDataSerializer.java
index cfb1247..7099c83 100644
--- a/src/main/java/net/onrc/onos/core/topology/web/serializers/HostEventSerializer.java
+++ b/src/main/java/net/onrc/onos/core/topology/web/serializers/HostDataSerializer.java
@@ -3,7 +3,7 @@
 import java.io.IOException;
 import java.util.Map.Entry;
 
-import net.onrc.onos.core.topology.HostEvent;
+import net.onrc.onos.core.topology.HostData;
 import net.onrc.onos.core.topology.TopologyElement;
 import net.onrc.onos.core.util.SwitchPort;
 
@@ -12,26 +12,26 @@
 import org.codehaus.jackson.map.ser.std.SerializerBase;
 
 /**
- * JSON serializer for HostEvent objects.
+ * JSON serializer for HostData objects.
  */
-public class HostEventSerializer extends SerializerBase<HostEvent> {
+public class HostDataSerializer extends SerializerBase<HostData> {
     /**
      * Default constructor.
      */
-    public HostEventSerializer() {
-        super(HostEvent.class);
+    public HostDataSerializer() {
+        super(HostData.class);
     }
 
     /**
-     * Serializes a HostEvent object in JSON.
+     * Serializes a HostData object in JSON.
      *
-     * @param hostEvent the HostEvent that is being converted to JSON
+     * @param hostData the HostData that is being converted to JSON
      * @param jsonGenerator generator to place the serialized JSON into
      * @param serializerProvider unused but required for method override
      * @throws IOException if the JSON serialization process fails
      */
     @Override
-    public void serialize(HostEvent hostEvent, JsonGenerator jsonGenerator,
+    public void serialize(HostData hostData, JsonGenerator jsonGenerator,
                           SerializerProvider serializerProvider)
         throws IOException {
 
@@ -42,16 +42,16 @@
         //
 
         jsonGenerator.writeStartObject();
-        jsonGenerator.writeStringField(TopologyElement.TYPE, hostEvent.getType());
-        jsonGenerator.writeStringField("mac", hostEvent.getMac().toString());
+        jsonGenerator.writeStringField(TopologyElement.TYPE, hostData.getType());
+        jsonGenerator.writeStringField("mac", hostData.getMac().toString());
         jsonGenerator.writeFieldName("attachmentPoints");
         jsonGenerator.writeStartArray();
-        for (SwitchPort switchPort : hostEvent.getAttachmentPoints()) {
+        for (SwitchPort switchPort : hostData.getAttachmentPoints()) {
             jsonGenerator.writeObject(switchPort);
         }
         jsonGenerator.writeEndArray();
         jsonGenerator.writeObjectFieldStart("stringAttributes");
-        for (Entry<String, String> entry : hostEvent.getAllStringAttributes().entrySet()) {
+        for (Entry<String, String> entry : hostData.getAllStringAttributes().entrySet()) {
             jsonGenerator.writeStringField(entry.getKey(), entry.getValue());
         }
         jsonGenerator.writeEndObject();         // stringAttributes
diff --git a/src/main/java/net/onrc/onos/core/topology/web/serializers/HostSerializer.java b/src/main/java/net/onrc/onos/core/topology/web/serializers/HostSerializer.java
index b979922..b0f7824 100644
--- a/src/main/java/net/onrc/onos/core/topology/web/serializers/HostSerializer.java
+++ b/src/main/java/net/onrc/onos/core/topology/web/serializers/HostSerializer.java
@@ -36,7 +36,7 @@
 
         //
         // TODO: For now, the JSON format of the serialized output should
-        // be same as the JSON format of the corresponding class HostEvent.
+        // be same as the JSON format of the corresponding class HostData.
         // In the future, we will use a single serializer.
         //
 
@@ -51,7 +51,7 @@
         jsonGenerator.writeEndArray();
         //
         // NOTE: Class Host itself doesn't have stringAttributes.
-        // Adding empty object for now for consistency with HostEventSerializer
+        // Adding empty object for now for consistency with HostDataSerializer
         //
         jsonGenerator.writeObjectFieldStart("stringAttributes");
         /*
diff --git a/src/main/java/net/onrc/onos/core/topology/web/serializers/LinkEventSerializer.java b/src/main/java/net/onrc/onos/core/topology/web/serializers/LinkDataSerializer.java
similarity index 68%
rename from src/main/java/net/onrc/onos/core/topology/web/serializers/LinkEventSerializer.java
rename to src/main/java/net/onrc/onos/core/topology/web/serializers/LinkDataSerializer.java
index f57db5c..028f33b 100644
--- a/src/main/java/net/onrc/onos/core/topology/web/serializers/LinkEventSerializer.java
+++ b/src/main/java/net/onrc/onos/core/topology/web/serializers/LinkDataSerializer.java
@@ -3,7 +3,7 @@
 import java.io.IOException;
 import java.util.Map.Entry;
 
-import net.onrc.onos.core.topology.LinkEvent;
+import net.onrc.onos.core.topology.LinkData;
 import net.onrc.onos.core.topology.TopologyElement;
 
 import org.codehaus.jackson.JsonGenerator;
@@ -11,26 +11,26 @@
 import org.codehaus.jackson.map.ser.std.SerializerBase;
 
 /**
- * JSON serializer for LinkEvents objects.
+ * JSON serializer for LinkData objects.
  */
-public class LinkEventSerializer extends SerializerBase<LinkEvent> {
+public class LinkDataSerializer extends SerializerBase<LinkData> {
     /**
      * Default constructor.
      */
-    public LinkEventSerializer() {
-        super(LinkEvent.class);
+    public LinkDataSerializer() {
+        super(LinkData.class);
     }
 
     /**
-     * Serializes a LinkEvent object in JSON.
+     * Serializes a LinkData object in JSON.
      *
-     * @param linkEvent the LinkEvent that is being converted to JSON
+     * @param linkData the LinkData that is being converted to JSON
      * @param jsonGenerator generator to place the serialized JSON into
      * @param serializerProvider unused but required for method override
      * @throws IOException if the JSON serialization process fails
      */
     @Override
-    public void serialize(final LinkEvent linkEvent,
+    public void serialize(final LinkData linkData,
                           final JsonGenerator jsonGenerator,
                           final SerializerProvider serializerProvider)
         throws IOException {
@@ -42,11 +42,11 @@
         //
 
         jsonGenerator.writeStartObject();
-        jsonGenerator.writeStringField(TopologyElement.TYPE, linkEvent.getType());
-        jsonGenerator.writeObjectField("src", linkEvent.getSrc());
-        jsonGenerator.writeObjectField("dst", linkEvent.getDst());
+        jsonGenerator.writeStringField(TopologyElement.TYPE, linkData.getType());
+        jsonGenerator.writeObjectField("src", linkData.getSrc());
+        jsonGenerator.writeObjectField("dst", linkData.getDst());
         jsonGenerator.writeObjectFieldStart("stringAttributes");
-        for (Entry<String, String> entry : linkEvent.getAllStringAttributes().entrySet()) {
+        for (Entry<String, String> entry : linkData.getAllStringAttributes().entrySet()) {
             jsonGenerator.writeStringField(entry.getKey(), entry.getValue());
         }
         jsonGenerator.writeEndObject();         // stringAttributes
diff --git a/src/main/java/net/onrc/onos/core/topology/web/serializers/LinkSerializer.java b/src/main/java/net/onrc/onos/core/topology/web/serializers/LinkSerializer.java
index bbc08ef..62fd25e 100644
--- a/src/main/java/net/onrc/onos/core/topology/web/serializers/LinkSerializer.java
+++ b/src/main/java/net/onrc/onos/core/topology/web/serializers/LinkSerializer.java
@@ -36,7 +36,7 @@
 
         //
         // TODO: For now, the JSON format of the serialized output should
-        // be same as the JSON format of the corresponding class LinkEvent.
+        // be same as the JSON format of the corresponding class LinkData.
         // In the future, we will use a single serializer.
         //
 
diff --git a/src/main/java/net/onrc/onos/core/topology/web/serializers/PortEventSerializer.java b/src/main/java/net/onrc/onos/core/topology/web/serializers/PortDataSerializer.java
similarity index 69%
rename from src/main/java/net/onrc/onos/core/topology/web/serializers/PortEventSerializer.java
rename to src/main/java/net/onrc/onos/core/topology/web/serializers/PortDataSerializer.java
index 8d81d03..e47c652 100644
--- a/src/main/java/net/onrc/onos/core/topology/web/serializers/PortEventSerializer.java
+++ b/src/main/java/net/onrc/onos/core/topology/web/serializers/PortDataSerializer.java
@@ -3,7 +3,7 @@
 import java.io.IOException;
 import java.util.Map.Entry;
 
-import net.onrc.onos.core.topology.PortEvent;
+import net.onrc.onos.core.topology.PortData;
 import net.onrc.onos.core.topology.TopologyElement;
 
 import org.codehaus.jackson.JsonGenerator;
@@ -11,26 +11,26 @@
 import org.codehaus.jackson.map.ser.std.SerializerBase;
 
 /**
- * JSON serializer for PortEvent objects.
+ * JSON serializer for PortData objects.
  */
-public class PortEventSerializer extends SerializerBase<PortEvent> {
+public class PortDataSerializer extends SerializerBase<PortData> {
     /**
      * Default constructor.
      */
-    public PortEventSerializer() {
-        super(PortEvent.class);
+    public PortDataSerializer() {
+        super(PortData.class);
     }
 
     /**
-     * Serializes a PortEvent object in JSON.
+     * Serializes a PortData object in JSON.
      *
-     * @param portEvent the PortEvent that is being converted to JSON
+     * @param portData the PortData that is being converted to JSON
      * @param jsonGenerator generator to place the serialized JSON into
      * @param serializerProvider unused but required for method override
      * @throws IOException if the JSON serialization process fails
      */
     @Override
-    public void serialize(PortEvent portEvent, JsonGenerator jsonGenerator,
+    public void serialize(PortData portData, JsonGenerator jsonGenerator,
                           SerializerProvider serializerProvider)
         throws IOException {
 
@@ -41,15 +41,15 @@
         //
 
         jsonGenerator.writeStartObject();
-        jsonGenerator.writeStringField(TopologyElement.TYPE, portEvent.getType());
+        jsonGenerator.writeStringField(TopologyElement.TYPE, portData.getType());
         jsonGenerator.writeStringField("state", "ACTIVE");
-        jsonGenerator.writeStringField("dpid", portEvent.getDpid().toString());
+        jsonGenerator.writeStringField("dpid", portData.getDpid().toString());
         jsonGenerator.writeNumberField("portNumber",
-                                       portEvent.getPortNumber().value());
+                                       portData.getPortNumber().value());
         jsonGenerator.writeStringField("desc",
                                        null /* port.getDescription() */);
         jsonGenerator.writeObjectFieldStart("stringAttributes");
-        for (Entry<String, String> entry : portEvent.getAllStringAttributes().entrySet()) {
+        for (Entry<String, String> entry : portData.getAllStringAttributes().entrySet()) {
             jsonGenerator.writeStringField(entry.getKey(), entry.getValue());
         }
         jsonGenerator.writeEndObject();         // stringAttributes
diff --git a/src/main/java/net/onrc/onos/core/topology/web/serializers/PortSerializer.java b/src/main/java/net/onrc/onos/core/topology/web/serializers/PortSerializer.java
index 092336e..7c9b093 100644
--- a/src/main/java/net/onrc/onos/core/topology/web/serializers/PortSerializer.java
+++ b/src/main/java/net/onrc/onos/core/topology/web/serializers/PortSerializer.java
@@ -36,7 +36,7 @@
 
         //
         // TODO: For now, the JSON format of the serialized output should
-        // be same as the JSON format of the corresponding class PortEvent.
+        // be same as the JSON format of the corresponding class PortData.
         // In the future, we will use a single serializer.
         //
 
diff --git a/src/main/java/net/onrc/onos/core/topology/web/serializers/SwitchEventSerializer.java b/src/main/java/net/onrc/onos/core/topology/web/serializers/SwitchDataSerializer.java
similarity index 74%
rename from src/main/java/net/onrc/onos/core/topology/web/serializers/SwitchEventSerializer.java
rename to src/main/java/net/onrc/onos/core/topology/web/serializers/SwitchDataSerializer.java
index a377d4b..0565e08 100644
--- a/src/main/java/net/onrc/onos/core/topology/web/serializers/SwitchEventSerializer.java
+++ b/src/main/java/net/onrc/onos/core/topology/web/serializers/SwitchDataSerializer.java
@@ -3,7 +3,7 @@
 import java.io.IOException;
 import java.util.Map.Entry;
 
-import net.onrc.onos.core.topology.SwitchEvent;
+import net.onrc.onos.core.topology.SwitchData;
 import net.onrc.onos.core.topology.TopologyElement;
 
 import org.codehaus.jackson.JsonGenerator;
@@ -11,26 +11,26 @@
 import org.codehaus.jackson.map.ser.std.SerializerBase;
 
 /**
- * JSON serializer for SwitchEvent objects.
+ * JSON serializer for SwitchData objects.
  */
-public class SwitchEventSerializer extends SerializerBase<SwitchEvent> {
+public class SwitchDataSerializer extends SerializerBase<SwitchData> {
     /**
      * Default constructor.
      */
-    public SwitchEventSerializer() {
-        super(SwitchEvent.class);
+    public SwitchDataSerializer() {
+        super(SwitchData.class);
     }
 
     /**
-     * Serializes a SwitchEvent object in JSON.
+     * Serializes a SwitchData object in JSON.
      *
-     * @param switchEvent the SwitchEvent that is being converted to JSON
+     * @param switchData the SwitchData that is being converted to JSON
      * @param jsonGenerator generator to place the serialized JSON into
      * @param serializerProvider unused but required for method override
      * @throws IOException if the JSON serialization process fails
      */
     @Override
-    public void serialize(SwitchEvent switchEvent, JsonGenerator jsonGenerator,
+    public void serialize(SwitchData switchData, JsonGenerator jsonGenerator,
                           SerializerProvider serializerProvider)
         throws IOException {
 
@@ -41,9 +41,9 @@
         //
 
         jsonGenerator.writeStartObject();
-        jsonGenerator.writeStringField(TopologyElement.TYPE, switchEvent.getType());
+        jsonGenerator.writeStringField(TopologyElement.TYPE, switchData.getType());
         jsonGenerator.writeStringField("dpid",
-                                       switchEvent.getDpid().toString());
+                                       switchData.getDpid().toString());
         jsonGenerator.writeStringField("state", "ACTIVE");
         //
         // TODO: For now, we write empty "ports" array for consistency
@@ -57,7 +57,7 @@
         */
         jsonGenerator.writeEndArray();
         jsonGenerator.writeObjectFieldStart("stringAttributes");
-        for (Entry<String, String> entry : switchEvent.getAllStringAttributes().entrySet()) {
+        for (Entry<String, String> entry : switchData.getAllStringAttributes().entrySet()) {
             jsonGenerator.writeStringField(entry.getKey(), entry.getValue());
         }
         jsonGenerator.writeEndObject();         // stringAttributes
diff --git a/src/main/java/net/onrc/onos/core/topology/web/serializers/SwitchSerializer.java b/src/main/java/net/onrc/onos/core/topology/web/serializers/SwitchSerializer.java
index df331b7..ffe5749 100644
--- a/src/main/java/net/onrc/onos/core/topology/web/serializers/SwitchSerializer.java
+++ b/src/main/java/net/onrc/onos/core/topology/web/serializers/SwitchSerializer.java
@@ -37,7 +37,7 @@
 
         //
         // TODO: For now, the JSON format of the serialized output should
-        // be same as the JSON format of the corresponding class SwitchEvent.
+        // be same as the JSON format of the corresponding class SwitchData.
         // In the future, we will use a single serializer.
         //
 
diff --git a/src/main/java/net/onrc/onos/core/topology/web/serializers/TopologyEventsSerializer.java b/src/main/java/net/onrc/onos/core/topology/web/serializers/TopologyEventsSerializer.java
index b117404..2737ec7 100644
--- a/src/main/java/net/onrc/onos/core/topology/web/serializers/TopologyEventsSerializer.java
+++ b/src/main/java/net/onrc/onos/core/topology/web/serializers/TopologyEventsSerializer.java
@@ -2,11 +2,11 @@
 
 import java.io.IOException;
 
-import net.onrc.onos.core.topology.HostEvent;
-import net.onrc.onos.core.topology.LinkEvent;
+import net.onrc.onos.core.topology.HostData;
+import net.onrc.onos.core.topology.LinkData;
 import net.onrc.onos.core.topology.MastershipEvent;
-import net.onrc.onos.core.topology.PortEvent;
-import net.onrc.onos.core.topology.SwitchEvent;
+import net.onrc.onos.core.topology.PortData;
+import net.onrc.onos.core.topology.SwitchData;
 import net.onrc.onos.core.topology.TopologyEvents;
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.map.SerializerProvider;
@@ -57,57 +57,57 @@
 
         // Output the added switches array
         jsonGenerator.writeArrayFieldStart("addedSwitches");
-        for (final SwitchEvent switchEvent : topologyEvents.getAddedSwitchEvents()) {
-            jsonGenerator.writeObject(switchEvent);
+        for (final SwitchData switchData : topologyEvents.getAddedSwitchDataEntries()) {
+            jsonGenerator.writeObject(switchData);
         }
         jsonGenerator.writeEndArray();
 
         // Output the removed switches array
         jsonGenerator.writeArrayFieldStart("removedSwitches");
-        for (final SwitchEvent switchEvent : topologyEvents.getRemovedSwitchEvents()) {
-            jsonGenerator.writeObject(switchEvent);
+        for (final SwitchData switchData : topologyEvents.getRemovedSwitchDataEntries()) {
+            jsonGenerator.writeObject(switchData);
         }
         jsonGenerator.writeEndArray();
 
         // Output the added ports array
         jsonGenerator.writeArrayFieldStart("addedPorts");
-        for (final PortEvent portEvent : topologyEvents.getAddedPortEvents()) {
-            jsonGenerator.writeObject(portEvent);
+        for (final PortData portData : topologyEvents.getAddedPortDataEntries()) {
+            jsonGenerator.writeObject(portData);
         }
         jsonGenerator.writeEndArray();
 
         // Output the removed ports array
         jsonGenerator.writeArrayFieldStart("removedPorts");
-        for (final PortEvent portEvent : topologyEvents.getRemovedPortEvents()) {
-            jsonGenerator.writeObject(portEvent);
+        for (final PortData portData : topologyEvents.getRemovedPortDataEntries()) {
+            jsonGenerator.writeObject(portData);
         }
         jsonGenerator.writeEndArray();
 
         // Output the added links array
         jsonGenerator.writeArrayFieldStart("addedLinks");
-        for (final LinkEvent linkEvent : topologyEvents.getAddedLinkEvents()) {
-            jsonGenerator.writeObject(linkEvent);
+        for (final LinkData linkData : topologyEvents.getAddedLinkDataEntries()) {
+            jsonGenerator.writeObject(linkData);
         }
         jsonGenerator.writeEndArray();
 
         // Output the removed links array
         jsonGenerator.writeArrayFieldStart("removedLinks");
-        for (final LinkEvent linkEvent : topologyEvents.getRemovedLinkEvents()) {
-            jsonGenerator.writeObject(linkEvent);
+        for (final LinkData linkData : topologyEvents.getRemovedLinkDataEntries()) {
+            jsonGenerator.writeObject(linkData);
         }
         jsonGenerator.writeEndArray();
 
         // Output the added hosts array
         jsonGenerator.writeArrayFieldStart("addedHosts");
-        for (final HostEvent hostEvent : topologyEvents.getAddedHostEvents()) {
-            jsonGenerator.writeObject(hostEvent);
+        for (final HostData hostData : topologyEvents.getAddedHostDataEntries()) {
+            jsonGenerator.writeObject(hostData);
         }
         jsonGenerator.writeEndArray();
 
         // Output the removed hosts array
         jsonGenerator.writeArrayFieldStart("removedHosts");
-        for (final HostEvent hostEvent : topologyEvents.getRemovedHostEvents()) {
-            jsonGenerator.writeObject(hostEvent);
+        for (final HostData hostData : topologyEvents.getRemovedHostDataEntries()) {
+            jsonGenerator.writeObject(hostData);
         }
         jsonGenerator.writeEndArray();
 
diff --git a/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java b/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
index f5bf01d..7f67289 100644
--- a/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
@@ -62,11 +62,11 @@
 import net.onrc.onos.core.packetservice.SinglePacketOutNotification;
 import net.onrc.onos.core.topology.AdminStatus;
 import net.onrc.onos.core.topology.ConfigState;
-import net.onrc.onos.core.topology.HostEvent;
-import net.onrc.onos.core.topology.LinkEvent;
+import net.onrc.onos.core.topology.HostData;
+import net.onrc.onos.core.topology.LinkData;
 import net.onrc.onos.core.topology.MastershipEvent;
-import net.onrc.onos.core.topology.PortEvent;
-import net.onrc.onos.core.topology.SwitchEvent;
+import net.onrc.onos.core.topology.PortData;
+import net.onrc.onos.core.topology.SwitchData;
 import net.onrc.onos.core.topology.TopologyBatchOperation;
 import net.onrc.onos.core.topology.TopologyElement;
 import net.onrc.onos.core.topology.TopologyEvent;
@@ -200,14 +200,14 @@
         kryo.register(AdminStatus.class);
         kryo.register(ConcurrentHashMap.class);
         kryo.register(ConfigState.class);
-        kryo.register(HostEvent.class);
+        kryo.register(HostData.class);
         kryo.register(LinkedList.class);
-        kryo.register(LinkEvent.class);
+        kryo.register(LinkData.class);
         kryo.register(MastershipEvent.class);
         kryo.register(OnosInstanceId.class);
-        kryo.register(PortEvent.class);
+        kryo.register(PortData.class);
         kryo.register(Role.class);
-        kryo.register(SwitchEvent.class);
+        kryo.register(SwitchData.class);
         kryo.register(TopologyBatchOperation.class);
         kryo.register(TopologyBatchOperation.Operator.class);
         kryo.register(TopologyElement.class);