diff --git a/src/main/java/net/onrc/onos/core/topology/BaseTopology.java b/src/main/java/net/onrc/onos/core/topology/BaseTopology.java
index 69db9fd..cef6a16 100644
--- a/src/main/java/net/onrc/onos/core/topology/BaseTopology.java
+++ b/src/main/java/net/onrc/onos/core/topology/BaseTopology.java
@@ -55,9 +55,6 @@
 
     /**
      * Gets the outgoing link from a switch port.
-     * <p/>
-     * FIXME As a temporary workaround, it will look for type "packet" and
-     * returns it if found, else return whichever link is found first.
      *
      * @param dpid   the switch DPID.
      * @param portNumber the switch port number.
@@ -77,9 +74,6 @@
 
     /**
      * Gets the outgoing link from a switch port.
-     * <p/>
-     * FIXME As a temporary workaround, it will look for type "packet" and
-     * returns it if found, else return whichever link is found first.
      *
      * @param port port identifier
      * @return the outgoing link if found, otherwise null.
@@ -105,9 +99,6 @@
 
     /**
      * Gets the incoming link to a switch port.
-     * <p/>
-     * FIXME As a temporary workaround, it will look for type "packet" and
-     * returns it if found, else return whichever link is found first.
      *
      * @param dpid   the switch DPID.
      * @param portNumber the switch port number.
@@ -117,9 +108,6 @@
 
     /**
      * Gets the incoming link to a switch port.
-     * <p/>
-     * FIXME As a temporary workaround, it will look for type "packet" and
-     * returns it if found, else return whichever link is found first.
      *
      * @param dpid   the switch DPID.
      * @param portNumber the switch port number.
@@ -130,9 +118,6 @@
 
     /**
      * Gets the incoming link to a switch port.
-     * <p/>
-     * FIXME As a temporary workaround, it will look for type "packet" and
-     * returns it if found, else return whichever link is found first.
      *
      * @param port port identifier
      * @return the incoming link if found, otherwise null.
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 3166a6a..0539e18 100644
--- a/src/main/java/net/onrc/onos/core/topology/ImmutableTopologySnapshot.java
+++ b/src/main/java/net/onrc/onos/core/topology/ImmutableTopologySnapshot.java
@@ -578,7 +578,7 @@
             return null;
         }
 
-        // TODO Should we look for Packet link first?
+        // Should we look for Packet link first?
         //  => Not needed unless invariant is broken.
 
         for (LinkEvent link : links.values()) {
diff --git a/src/main/java/net/onrc/onos/core/topology/Port.java b/src/main/java/net/onrc/onos/core/topology/Port.java
index 5419c02..4063095 100644
--- a/src/main/java/net/onrc/onos/core/topology/Port.java
+++ b/src/main/java/net/onrc/onos/core/topology/Port.java
@@ -9,9 +9,6 @@
 
 import org.codehaus.jackson.map.annotate.JsonSerialize;
 
-//TODO Everything returned by these interfaces must be either Unmodifiable view,
-//immutable object, or a copy of the original "SB" In-memory Topology.
-
 /**
  * Interface of Port object in the topology.
  */
@@ -75,9 +72,6 @@
 
     /**
      * Gets the outgoing link from this port.
-     * <p/>
-     * FIXME As a temporary workaround, it will look for type "packet" and
-     * returns it if found, else return whichever link is found first.
      *
      * @return {@link Link} if there exist a outgoing link from this,
      *         {@code null} otherwise.
@@ -102,9 +96,6 @@
 
     /**
      * Gets the incoming link to this port.
-     * <p/>
-     * FIXME As a temporary workaround, it will look for type "packet" and
-     * returns it if found, else return whichever link is found first.
      *
      * @return {@link Link} if there exist a incoming link to this, {@code null}
      *         otherwise.
diff --git a/src/main/java/net/onrc/onos/core/topology/TopologyBatchTarget.java b/src/main/java/net/onrc/onos/core/topology/TopologyBatchTarget.java
index 76adef9..7102a65 100644
--- a/src/main/java/net/onrc/onos/core/topology/TopologyBatchTarget.java
+++ b/src/main/java/net/onrc/onos/core/topology/TopologyBatchTarget.java
@@ -2,6 +2,8 @@
 
 import net.onrc.onos.api.batchoperation.BatchOperationTarget;
 
+// Note: We may not need this if we decide to use TopologyEvent as base class
+// for all the TopologyBatchOperation targets.
 /**
  * Tag interface for TopologyBatchOperation targets.
  */
diff --git a/src/main/java/net/onrc/onos/core/util/distributed/sharedlog/SharedLogObject.java b/src/main/java/net/onrc/onos/core/util/distributed/sharedlog/SharedLogObject.java
index 75c155f..2c470ab 100644
--- a/src/main/java/net/onrc/onos/core/util/distributed/sharedlog/SharedLogObject.java
+++ b/src/main/java/net/onrc/onos/core/util/distributed/sharedlog/SharedLogObject.java
@@ -68,7 +68,7 @@
     void apply(final SeqNum seq, final LogValue logValue);
 
     /**
-     * Tests if given LogValue is applicable to this .
+     * Tests if given LogValue is applicable to this instance.
      * <p/>
      * This method will be called before {@link #apply(SeqNum, LogValue)} call.
      * This method should be implemented to be side-effect free.
