diff --git a/src/main/java/net/onrc/onos/api/flowmanager/FlowId.java b/src/main/java/net/onrc/onos/api/flowmanager/FlowId.java
index 4fef792..9d1f0ed 100644
--- a/src/main/java/net/onrc/onos/api/flowmanager/FlowId.java
+++ b/src/main/java/net/onrc/onos/api/flowmanager/FlowId.java
@@ -3,7 +3,7 @@
 import net.onrc.onos.api.batchoperation.BatchOperationTarget;
 
 /**
- * Represents ID for IFlow objects.
+ * Represents ID for Flow objects.
  */
 public class FlowId implements BatchOperationTarget {
     private final String value;
diff --git a/src/main/java/net/onrc/onos/api/flowmanager/FlowLink.java b/src/main/java/net/onrc/onos/api/flowmanager/FlowLink.java
index 474ac75..59bcb98 100644
--- a/src/main/java/net/onrc/onos/api/flowmanager/FlowLink.java
+++ b/src/main/java/net/onrc/onos/api/flowmanager/FlowLink.java
@@ -5,10 +5,10 @@
 import net.onrc.onos.core.util.SwitchPort;
 
 /**
- * A link representation used by IFlow objects.
+ * A link representation used by Flow objects.
  * <p>
  * TODO: Should lambda, bandwidth, tag, etc. be defined in this FlowLink, Path,
- * Tree or IFlow? We have to define it.
+ * Tree or Flow? We have to define it.
  */
 public class FlowLink {
     protected SwitchPort srcSwitchPort;
diff --git a/src/main/java/net/onrc/onos/api/flowmanager/FlowManagerService.java b/src/main/java/net/onrc/onos/api/flowmanager/FlowManagerService.java
index a87eb65..b8e14f4 100644
--- a/src/main/java/net/onrc/onos/api/flowmanager/FlowManagerService.java
+++ b/src/main/java/net/onrc/onos/api/flowmanager/FlowManagerService.java
@@ -5,49 +5,49 @@
 
 /**
  * An interface class for flow manager. The role of the flow manager is to
- * manage a set of Match-Action entries based on the specified IFlow objects.
+ * manage a set of Match-Action entries based on the specified Flow objects.
  * <p>
- * It compiles accepted IFlow objects to Match-Action entries by calculating the
+ * It compiles accepted Flow objects to Match-Action entries by calculating the
  * match-action operation phases and allocating resources based on the
- * constrains described in the IFlow objects, and executes calculated phases
+ * constrains described in the Flow objects, and executes calculated phases
  * using Match-Action Service.
  * <p>
- * TODO: add more getter with filter for IFlow objects.
+ * TODO: add more getter with filter for Flow objects.
  */
 public interface FlowManagerService {
     /**
-     * Adds IFlow object, calculates match-action plan and executes it.
+     * Adds Flow object, calculates match-action plan and executes it.
      *
-     * @param flow IFlow object to be added
+     * @param flow Flow object to be added
      * @return true if succeeded, false otherwise
      */
     boolean addFlow(Flow flow);
 
     /**
-     * Removes IFlow object, calculates match-action plan and executes it.
+     * Removes Flow object, calculates match-action plan and executes it.
      *
-     * @param id ID for IFlow object to be removed
+     * @param id ID for Flow object to be removed
      * @return true if succeeded, false otherwise
      */
     boolean removeFlow(FlowId id);
 
     /**
-     * Gets IFlow object.
+     * Gets Flow object.
      *
-     * @param id ID of IFlow object
-     * @return IFlow object if found, null otherwise
+     * @param id ID of Flow object
+     * @return Flow object if found, null otherwise
      */
     Flow getFlow(FlowId id);
 
     /**
-     * Gets All IFlow objects.
+     * Gets All Flow objects.
      *
-     * @return the collection of IFlow objects
+     * @return the collection of Flow objects
      */
     Collection<Flow> getFlows();
 
     /**
-     * Executes batch operation of IFlow object.
+     * Executes batch operation of Flow object.
      *
      * @param ops flow operations to be executed
      * @return true if succeeded, false otherwise
diff --git a/src/main/java/net/onrc/onos/api/flowmanager/OpticalPathFlow.java b/src/main/java/net/onrc/onos/api/flowmanager/OpticalPathFlow.java
index 9de82c5..64b7e2e 100644
--- a/src/main/java/net/onrc/onos/api/flowmanager/OpticalPathFlow.java
+++ b/src/main/java/net/onrc/onos/api/flowmanager/OpticalPathFlow.java
@@ -7,7 +7,7 @@
 import net.onrc.onos.core.util.PortNumber;
 
 /**
- * IFlow object representing an optical path.
+ * Flow object representing an optical path.
  * <p>
  * TODO: Think this: How do we deal the optical path flow going through the
  * regenerators? Can we express it with multiple OpticalPathFlow objects?
@@ -18,7 +18,7 @@
     /**
      * Constructor.
      *
-     * @param id ID for this new IFlow object.
+     * @param id ID for this new Flow object.
      * @param inPort Ingress port number at the ingress edge node.
      * @param path Path between ingress and egress edge node.
      * @param actions The list of Action objects at the egress edge node.
diff --git a/src/main/java/net/onrc/onos/api/flowmanager/PacketPathFlow.java b/src/main/java/net/onrc/onos/api/flowmanager/PacketPathFlow.java
index 3c6bd6d..040b9a7 100644
--- a/src/main/java/net/onrc/onos/api/flowmanager/PacketPathFlow.java
+++ b/src/main/java/net/onrc/onos/api/flowmanager/PacketPathFlow.java
@@ -8,7 +8,7 @@
 import net.onrc.onos.core.util.PortNumber;
 
 /**
- * IFlow object representing a packet path.
+ * Flow object representing a packet path.
  * <p>
  * TODO: Think this: Do we need a bandwidth constraint?
  */
@@ -19,7 +19,7 @@
     /**
      * Constructor.
      *
-     * @param id ID for this new IFlow object.
+     * @param id ID for this new Flow object.
      * @param match Match object at the source node of the path.
      * @param inPort Ingress port number at the ingress edge node.
      * @param path Path between ingress and egress edge node.
diff --git a/src/main/java/net/onrc/onos/api/flowmanager/SingleDstTreeFlow.java b/src/main/java/net/onrc/onos/api/flowmanager/SingleDstTreeFlow.java
index 3587eb1..af403ed 100644
--- a/src/main/java/net/onrc/onos/api/flowmanager/SingleDstTreeFlow.java
+++ b/src/main/java/net/onrc/onos/api/flowmanager/SingleDstTreeFlow.java
@@ -11,7 +11,7 @@
 import net.onrc.onos.core.util.SwitchPort;
 
 /**
- * An IFlow object expressing the multipoints-to-point tree flow for the packet
+ * A Flow object expressing the multipoints-to-point tree flow for the packet
  * layer.
  * <p>
  * NOTE: This class might generate the MatchActionPlan which includes the MAC
diff --git a/src/main/java/net/onrc/onos/api/flowmanager/SingleSrcTreeFlow.java b/src/main/java/net/onrc/onos/api/flowmanager/SingleSrcTreeFlow.java
index e39006a..7430b7f 100644
--- a/src/main/java/net/onrc/onos/api/flowmanager/SingleSrcTreeFlow.java
+++ b/src/main/java/net/onrc/onos/api/flowmanager/SingleSrcTreeFlow.java
@@ -10,7 +10,7 @@
 import net.onrc.onos.core.util.SwitchPort;
 
 /**
- * An IFlow object expressing the point-to-multipoints tree flow for the packet
+ * A Flow object expressing the point-to-multipoints tree flow for the packet
  * layer.
  */
 public class SingleSrcTreeFlow implements Flow {
diff --git a/src/main/java/net/onrc/onos/core/flowmanager/FlowManagerModule.java b/src/main/java/net/onrc/onos/core/flowmanager/FlowManagerModule.java
index 3d85d03..2d184f8 100644
--- a/src/main/java/net/onrc/onos/core/flowmanager/FlowManagerModule.java
+++ b/src/main/java/net/onrc/onos/core/flowmanager/FlowManagerModule.java
@@ -10,8 +10,8 @@
 import net.onrc.onos.api.flowmanager.FlowManagerService;
 
 /**
- * Manages a set of IFlow objects, computes and maintains a set of Match-Action
- * entries based on the IFlow objects, and executes Match-Action plans.
+ * Manages a set of Flow objects, computes and maintains a set of Match-Action
+ * entries based on the Flow objects, and executes Match-Action plans.
  * <p>
  * TODO: Make all methods thread-safe
  */
diff --git a/src/main/java/net/onrc/onos/core/matchaction/action/ModifyDstMacAction.java b/src/main/java/net/onrc/onos/core/matchaction/action/ModifyDstMacAction.java
index 856b951..47e0d44 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/action/ModifyDstMacAction.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/action/ModifyDstMacAction.java
@@ -6,7 +6,7 @@
  * An action object to modify destination MAC address.
  * <p>
  * This class does not have a switch ID. The switch ID is handled by
- * MatchAction, IFlow or Intent class.
+ * MatchAction, Flow or Intent class.
  */
 public class ModifyDstMacAction implements Action {
     private final MACAddress dstMac;
diff --git a/src/main/java/net/onrc/onos/core/matchaction/action/ModifyLambdaAction.java b/src/main/java/net/onrc/onos/core/matchaction/action/ModifyLambdaAction.java
index ab62f5f..f2d313d 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/action/ModifyLambdaAction.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/action/ModifyLambdaAction.java
@@ -4,7 +4,7 @@
  * An action object to modify lambda.
  * <p>
  * This class does not have a switch ID. The switch ID is handled by
- * MatchAction, IFlow or Intent class.
+ * MatchAction, Flow or Intent class.
  */
 public class ModifyLambdaAction implements Action {
     protected int lambda;
diff --git a/src/main/java/net/onrc/onos/core/matchaction/action/OutputAction.java b/src/main/java/net/onrc/onos/core/matchaction/action/OutputAction.java
index 6c2e782..a86b4d0 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/action/OutputAction.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/action/OutputAction.java
@@ -6,7 +6,7 @@
  * An action object to output traffic to specified port.
  * <p>
  * This class does not have a switch ID. The switch ID is handled by
- * MatchAction, IFlow or Intent class.
+ * MatchAction, Flow or Intent class.
  */
 public class OutputAction implements Action {
     protected PortNumber portNumber;
diff --git a/src/main/java/net/onrc/onos/core/matchaction/match/OpticalMatch.java b/src/main/java/net/onrc/onos/core/matchaction/match/OpticalMatch.java
index afd9de0..3cdec64 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/match/OpticalMatch.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/match/OpticalMatch.java
@@ -4,7 +4,7 @@
  * A match object (traffic specifier) for optical nodes, flow-paths and intents.
  * <p>
  * This class does not have a switch ID and a port number. They are handled by
- * MatchAction, IFlow or Intent class.
+ * MatchAction, Flow or Intent class.
  */
 public class OpticalMatch implements Match {
 
