diff --git a/src/main/java/net/onrc/onos/core/topology/DeviceImpl.java b/src/main/java/net/onrc/onos/core/topology/DeviceImpl.java
index 61de0d2..f331b49 100644
--- a/src/main/java/net/onrc/onos/core/topology/DeviceImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/DeviceImpl.java
@@ -132,6 +132,7 @@
      */
     @Override
     public String getType() {
-        throw new UnsupportedOperationException("Not implemented yet");
+        // FIXME assuming device is always in packet layer for now.
+        return TopologyElement.TYPE_PACKET;
     }
 }
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 aa635ef..26c260a 100644
--- a/src/main/java/net/onrc/onos/core/topology/LinkImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/LinkImpl.java
@@ -167,6 +167,6 @@
      */
     @Override
     public String getType() {
-        throw new UnsupportedOperationException("Not implemented yet");
+        return getStringAttribute(TopologyElement.TYPE, TopologyElement.TYPE_PACKET);
     }
 }
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 8a5e783..52dbe47 100644
--- a/src/main/java/net/onrc/onos/core/topology/PortImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/PortImpl.java
@@ -205,6 +205,6 @@
      */
     @Override
     public String getType() {
-        throw new UnsupportedOperationException("Not implemented yet");
+        return getStringAttribute(TopologyElement.TYPE, TopologyElement.TYPE_PACKET);
     }
 }
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 b00409e..f434e33 100644
--- a/src/main/java/net/onrc/onos/core/topology/SwitchImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/SwitchImpl.java
@@ -199,6 +199,6 @@
      */
     @Override
     public String getType() {
-        throw new UnsupportedOperationException("Not implemented yet");
+        return getStringAttribute(TopologyElement.TYPE, TopologyElement.TYPE_PACKET);
     }
 }
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyElement.java b/src/main/java/net/onrc/onos/core/topology/TopologyElement.java
index ceaf0fc..fc94c0a 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyElement.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyElement.java
@@ -18,7 +18,22 @@
  *      (Required to define a method returning itself's type)
  */
 public class TopologyElement<T extends TopologyElement<T>>
-        implements StringAttributes, UpdateStringAttributes {
+        implements ITopologyElement, StringAttributes, UpdateStringAttributes {
+
+    // TODO: Where should the attribute names be defined?
+    /**
+     * Attribute name for type.
+     */
+    public static final String TYPE = "type";
+    /**
+     * Attribute "type" value representing that the object belongs to Packet layer.
+     */
+    public static final String TYPE_PACKET = "packet";
+    /**
+     * Attribute "type" value representing that the object belongs to Optical layer.
+     */
+    public static final String TYPE_OPTICAL = "optical";
+
 
     private boolean isFrozen = false;
 
@@ -151,4 +166,9 @@
 
         this.stringAttributes.remove(attr);
     }
+
+    @Override
+    public String getType() {
+        return getStringAttribute(TYPE, TYPE_PACKET);
+    }
 }
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyObject.java b/src/main/java/net/onrc/onos/core/topology/TopologyObject.java
index ccb266c..f929926 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyObject.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyObject.java
@@ -9,6 +9,7 @@
  */
 public abstract class TopologyObject implements ITopologyElement {
 
+    // XXX This will be a snapshot, thus should be replaceable
     /**
      * Topology instance this object belongs to.
      */
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 1d5b8a6..b82c86f 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyPublisher.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyPublisher.java
@@ -141,6 +141,9 @@
         // FIXME should be merging, with existing attrs, etc..
         // TODO define attr name as constant somewhere.
         // TODO populate appropriate attributes.
+        linkEvent.createStringAttribute(TopologyElement.TYPE,
+                                        TopologyElement.TYPE_PACKET);
+
         linkEvent.freeze();
 
         if (!registryService.hasControl(link.getDst())) {
@@ -162,6 +165,8 @@
         // FIXME should be merging, with existing attrs, etc..
         // TODO define attr name as constant somewhere.
         // TODO populate appropriate attributes.
+        linkEvent.createStringAttribute(TopologyElement.TYPE,
+                                        TopologyElement.TYPE_PACKET);
         linkEvent.freeze();
 
         if (!registryService.hasControl(link.getDst())) {
@@ -181,6 +186,8 @@
         // FIXME should be merging, with existing attrs, etc..
         // TODO define attr name as constant somewhere.
         // TODO populate appropriate attributes.
+        portEvent.createStringAttribute(TopologyElement.TYPE,
+                                        TopologyElement.TYPE_PACKET);
         portEvent.createStringAttribute("name", port.getName());
 
         portEvent.freeze();
@@ -199,6 +206,15 @@
         final Dpid dpid = new Dpid(switchId);
 
         PortEvent portEvent = new PortEvent(dpid, new PortNumber(port.getPortNumber()));
+        // FIXME should be merging, with existing attrs, etc..
+        // TODO define attr name as constant somewhere.
+        // TODO populate appropriate attributes.
+        portEvent.createStringAttribute(TopologyElement.TYPE,
+                                        TopologyElement.TYPE_PACKET);
+        portEvent.createStringAttribute("name", port.getName());
+
+        portEvent.freeze();
+
         if (registryService.hasControl(switchId)) {
             topologyDiscoveryInterface.removePortDiscoveryEvent(portEvent);
         } else {
@@ -214,6 +230,8 @@
         // FIXME should be merging, with existing attrs, etc..
         // TODO define attr name as constant somewhere.
         // TODO populate appropriate attributes.
+        switchEvent.createStringAttribute(TopologyElement.TYPE,
+                                          TopologyElement.TYPE_PACKET);
         switchEvent.createStringAttribute("ConnectedSince",
                 sw.getConnectedSince().toString());
 
@@ -233,6 +251,8 @@
             // TODO define attr name as constant somewhere.
             // TODO populate appropriate attributes.
             portEvent.createStringAttribute("name", port.getName());
+            portEvent.createStringAttribute(TopologyElement.TYPE,
+                                            TopologyElement.TYPE_PACKET);
 
             portEvent.freeze();
             portEvents.add(portEvent);
diff --git a/src/main/java/net/onrc/onos/core/topology/web/serializers/DeviceEventSerializer.java b/src/main/java/net/onrc/onos/core/topology/web/serializers/DeviceEventSerializer.java
index 94ccce2..4ced3c3 100644
--- a/src/main/java/net/onrc/onos/core/topology/web/serializers/DeviceEventSerializer.java
+++ b/src/main/java/net/onrc/onos/core/topology/web/serializers/DeviceEventSerializer.java
@@ -3,6 +3,7 @@
 import java.io.IOException;
 
 import net.onrc.onos.core.topology.DeviceEvent;
+import net.onrc.onos.core.topology.TopologyElement;
 import net.onrc.onos.core.util.SwitchPort;
 
 import org.codehaus.jackson.JsonGenerator;
@@ -26,6 +27,7 @@
         //
 
         jsonGenerator.writeStartObject();
+        jsonGenerator.writeStringField(TopologyElement.TYPE, deviceEvent.getType());
         jsonGenerator.writeStringField("mac", deviceEvent.getMac().toString());
         jsonGenerator.writeFieldName("attachmentPoints");
         jsonGenerator.writeStartArray();
diff --git a/src/main/java/net/onrc/onos/core/topology/web/serializers/DeviceSerializer.java b/src/main/java/net/onrc/onos/core/topology/web/serializers/DeviceSerializer.java
index 1f8676a..1445787 100644
--- a/src/main/java/net/onrc/onos/core/topology/web/serializers/DeviceSerializer.java
+++ b/src/main/java/net/onrc/onos/core/topology/web/serializers/DeviceSerializer.java
@@ -4,6 +4,7 @@
 
 import net.onrc.onos.core.topology.Device;
 import net.onrc.onos.core.topology.Port;
+import net.onrc.onos.core.topology.TopologyElement;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.map.SerializerProvider;
@@ -26,6 +27,7 @@
         //
 
         jsonGenerator.writeStartObject();
+        jsonGenerator.writeStringField(TopologyElement.TYPE, dev.getType());
         jsonGenerator.writeStringField("mac", dev.getMacAddress().toString());
         jsonGenerator.writeFieldName("attachmentPoints");
         jsonGenerator.writeStartArray();
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/LinkEventSerializer.java
index 0678d49..47985b0 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/LinkEventSerializer.java
@@ -1,6 +1,8 @@
 package net.onrc.onos.core.topology.web.serializers;
 
 import net.onrc.onos.core.topology.LinkEvent;
+import net.onrc.onos.core.topology.TopologyElement;
+
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.map.SerializerProvider;
 import org.codehaus.jackson.map.ser.std.SerializerBase;
@@ -40,6 +42,7 @@
         //
 
         jsonGenerator.writeStartObject();
+        jsonGenerator.writeStringField(TopologyElement.TYPE, linkEvent.getType());
         jsonGenerator.writeObjectField("src", linkEvent.getSrc());
         jsonGenerator.writeObjectField("dst", linkEvent.getDst());
         jsonGenerator.writeEndObject();
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 44f5cc3..7b06a21 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
@@ -4,6 +4,7 @@
 import java.util.Map.Entry;
 
 import net.onrc.onos.core.topology.Link;
+import net.onrc.onos.core.topology.TopologyElement;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.map.SerializerProvider;
@@ -26,6 +27,7 @@
         // In the future, we will use a single serializer.
         //
         jsonGenerator.writeStartObject();
+        jsonGenerator.writeStringField(TopologyElement.TYPE, link.getType());
         jsonGenerator.writeObjectField("src", link.getSrcPort().asSwitchPort());
         jsonGenerator.writeObjectField("dst", link.getDstPort().asSwitchPort());
         jsonGenerator.writeObjectFieldStart("stringAttributes");
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/PortEventSerializer.java
index 84f23ac..4f2d5bf 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/PortEventSerializer.java
@@ -3,6 +3,7 @@
 import java.io.IOException;
 
 import net.onrc.onos.core.topology.PortEvent;
+import net.onrc.onos.core.topology.TopologyElement;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.map.SerializerProvider;
@@ -25,6 +26,7 @@
         //
 
         jsonGenerator.writeStartObject();
+        jsonGenerator.writeStringField(TopologyElement.TYPE, portEvent.getType());
         jsonGenerator.writeStringField("state", "ACTIVE");
         jsonGenerator.writeStringField("dpid", portEvent.getDpid().toString());
         //
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 69d710e..34d411f 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
@@ -4,6 +4,7 @@
 import java.util.Map.Entry;
 
 import net.onrc.onos.core.topology.Port;
+import net.onrc.onos.core.topology.TopologyElement;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.map.SerializerProvider;
@@ -26,6 +27,7 @@
         //
 
         jsonGenerator.writeStartObject();
+        jsonGenerator.writeStringField(TopologyElement.TYPE, port.getType());
         jsonGenerator.writeStringField("state", "ACTIVE");
         jsonGenerator.writeStringField("dpid", port.getDpid().toString());
         //
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/SwitchEventSerializer.java
index 09358c4..c4e1826 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/SwitchEventSerializer.java
@@ -3,6 +3,7 @@
 import java.io.IOException;
 
 import net.onrc.onos.core.topology.SwitchEvent;
+import net.onrc.onos.core.topology.TopologyElement;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.map.SerializerProvider;
@@ -24,6 +25,7 @@
         //
 
         jsonGenerator.writeStartObject();
+        jsonGenerator.writeStringField(TopologyElement.TYPE, switchEvent.getType());
         jsonGenerator.writeStringField("dpid",
                                        switchEvent.getDpid().toString());
         jsonGenerator.writeStringField("state", "ACTIVE");
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 79516b4..8542641 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
@@ -5,6 +5,7 @@
 
 import net.onrc.onos.core.topology.Port;
 import net.onrc.onos.core.topology.Switch;
+import net.onrc.onos.core.topology.TopologyElement;
 
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.map.SerializerProvider;
@@ -26,6 +27,7 @@
         //
 
         jsonGenerator.writeStartObject();
+        jsonGenerator.writeStringField(TopologyElement.TYPE, sw.getType());
         jsonGenerator.writeStringField("dpid", sw.getDpid().toString());
         jsonGenerator.writeStringField("state", "ACTIVE");
         jsonGenerator.writeArrayFieldStart("ports");
