diff --git a/src/main/java/net/onrc/onos/api/flowmanager/FlowBatchHandle.java b/src/main/java/net/onrc/onos/api/flowmanager/FlowBatchHandle.java
index 166a12f..351d9e9 100644
--- a/src/main/java/net/onrc/onos/api/flowmanager/FlowBatchHandle.java
+++ b/src/main/java/net/onrc/onos/api/flowmanager/FlowBatchHandle.java
@@ -1,9 +1,13 @@
 package net.onrc.onos.api.flowmanager;
 
+import net.onrc.onos.core.flowmanager.FlowOperationMap;
+
+
 /**
  * Handle class to handle flow batch operation.
  */
 public class FlowBatchHandle {
+    private final FlowOperationMap flowOperationMap;
     private final FlowBatchId batchId;
 
     /**
@@ -12,9 +16,12 @@
      * The ID is automatically generated and assigned by FlowManager, and used
      * as an internal key for the flow batch operation map.
      *
+     * @param opMap the FlowOperationMap object which maintains the flow batch
+     *        operation
      * @param id the batch operation ID
      */
-    public FlowBatchHandle(FlowBatchId id) {
+    public FlowBatchHandle(FlowOperationMap opMap, FlowBatchId id) {
+        flowOperationMap = opMap;
         batchId = id;
     }
 
@@ -26,4 +33,8 @@
     public FlowBatchId getBatchOperationId() {
         return batchId;
     }
+
+    public FlowBatchState getState() {
+        return flowOperationMap.getState(batchId);
+    }
 }
diff --git a/src/main/java/net/onrc/onos/api/flowmanager/FlowBatchState.java b/src/main/java/net/onrc/onos/api/flowmanager/FlowBatchState.java
index fd62a97..9205476 100644
--- a/src/main/java/net/onrc/onos/api/flowmanager/FlowBatchState.java
+++ b/src/main/java/net/onrc/onos/api/flowmanager/FlowBatchState.java
@@ -1,5 +1,6 @@
 package net.onrc.onos.api.flowmanager;
 
+
 /**
  * Represents the state of {@link FlowBatchOperation}.
  */
diff --git a/src/main/java/net/onrc/onos/api/flowmanager/FlowManagerListener.java b/src/main/java/net/onrc/onos/api/flowmanager/FlowManagerListener.java
index 0e70867..90ed2ca 100644
--- a/src/main/java/net/onrc/onos/api/flowmanager/FlowManagerListener.java
+++ b/src/main/java/net/onrc/onos/api/flowmanager/FlowManagerListener.java
@@ -1,5 +1,6 @@
 package net.onrc.onos.api.flowmanager;
 
+
 /**
  * An interface to the FlowManager's listener.
  */
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 4812de2..347c5fa 100644
--- a/src/main/java/net/onrc/onos/api/flowmanager/FlowManagerService.java
+++ b/src/main/java/net/onrc/onos/api/flowmanager/FlowManagerService.java
@@ -15,20 +15,26 @@
  */
 public interface FlowManagerService {
     /**
-     * Adds Flow object, calculates match-action plan and executes it.
+     * Adds Flow object, calculates match-action plan and executes it
+     * asynchronously.
+     * <p>
+     * To track the execution result, use the returned FlowBatchHandle object.
      *
      * @param flow Flow object to be added
-     * @return true if succeeded, false otherwise
+     * @return FlowBatchHandle object if succeeded, null otherwise
      */
-    boolean addFlow(Flow flow);
+    FlowBatchHandle addFlow(Flow flow);
 
     /**
-     * Removes Flow object, calculates match-action plan and executes it.
+     * Removes Flow object, calculates match-action plan and executes it
+     * asynchronously.
+     * <p>
+     * To track the execution result, use the returned FlowBatchHandle object.
      *
      * @param id ID for Flow object to be removed
-     * @return true if succeeded, false otherwise
+     * @return FlowBatchHandle object if succeeded, null otherwise
      */
-    boolean removeFlow(FlowId id);
+    FlowBatchHandle removeFlow(FlowId id);
 
     /**
      * Gets Flow object.
@@ -46,12 +52,14 @@
     Collection<Flow> getFlows();
 
     /**
-     * Executes batch operation of Flow object.
+     * Executes batch operation of Flow object asynchronously.
+     * <p>
+     * To track the execution result, use the returned FlowBatchHandle object.
      *
      * @param ops flow operations to be executed
-     * @return true if succeeded, false otherwise
+     * @return FlowBatchHandle object if succeeded, null otherwise
      */
-    boolean executeBatch(FlowBatchOperation ops);
+    FlowBatchHandle executeBatch(FlowBatchOperation ops);
 
     /**
      * Sets a conflict detection policy.
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 8336095..235e38a 100644
--- a/src/main/java/net/onrc/onos/core/flowmanager/FlowManagerModule.java
+++ b/src/main/java/net/onrc/onos/core/flowmanager/FlowManagerModule.java
@@ -4,6 +4,7 @@
 
 import net.onrc.onos.api.flowmanager.ConflictDetectionPolicy;
 import net.onrc.onos.api.flowmanager.Flow;
+import net.onrc.onos.api.flowmanager.FlowBatchHandle;
 import net.onrc.onos.api.flowmanager.FlowBatchOperation;
 import net.onrc.onos.api.flowmanager.FlowId;
 import net.onrc.onos.api.flowmanager.FlowManagerListener;
@@ -17,23 +18,25 @@
  */
 public class FlowManagerModule implements FlowManagerService {
     private ConflictDetectionPolicy conflictDetectionPolicy;
+    private FlowOperationMap flowOperationMap;
 
     /**
      * Constructor.
      */
     public FlowManagerModule() {
         this.conflictDetectionPolicy = ConflictDetectionPolicy.FREE;
+        this.flowOperationMap = new FlowOperationMap();
     }
 
     @Override
-    public boolean addFlow(Flow flow) {
+    public FlowBatchHandle addFlow(Flow flow) {
         FlowBatchOperation ops = new FlowBatchOperation();
         ops.addAddFlowOperation(flow);
         return executeBatch(ops);
     }
 
     @Override
-    public boolean removeFlow(FlowId id) {
+    public FlowBatchHandle removeFlow(FlowId id) {
         FlowBatchOperation ops = new FlowBatchOperation();
         ops.addRemoveFlowOperation(id);
         return executeBatch(ops);
@@ -52,9 +55,15 @@
     }
 
     @Override
-    public boolean executeBatch(FlowBatchOperation ops) {
-        // TODO Auto-generated method stub
-        return false;
+    public FlowBatchHandle executeBatch(FlowBatchOperation ops) {
+        // This method just put the batch-operation object to the global
+        // flow operation map with unique ID. The leader process will get
+        // the appended operation with events notified from the map.
+        FlowBatchHandle handler = flowOperationMap.putOperation(ops);
+
+        // Then it will return a handler to obtain the result of this operation,
+        // control the executing process, etc.
+        return handler;
     }
 
     @Override
diff --git a/src/main/java/net/onrc/onos/core/flowmanager/FlowOperationMap.java b/src/main/java/net/onrc/onos/core/flowmanager/FlowOperationMap.java
index 744c65e..e9d66c3 100644
--- a/src/main/java/net/onrc/onos/core/flowmanager/FlowOperationMap.java
+++ b/src/main/java/net/onrc/onos/core/flowmanager/FlowOperationMap.java
@@ -1,8 +1,49 @@
 package net.onrc.onos.core.flowmanager;
 
+import net.onrc.onos.api.flowmanager.FlowBatchHandle;
+import net.onrc.onos.api.flowmanager.FlowBatchId;
+import net.onrc.onos.api.flowmanager.FlowBatchOperation;
+import net.onrc.onos.api.flowmanager.FlowBatchState;
+
 /**
  * Manages the set of flow operations throughout the ONOS instances.
  */
 public class FlowOperationMap {
-    // TODO implement it
+    public FlowBatchHandle putOperation(FlowBatchOperation ops) {
+        FlowBatchId id = getUniqueBatchOperationId();
+        if (id == null) {
+            return null;
+        }
+        if (putBatchOperation(id, ops)) {
+            return null;
+        }
+
+        return new FlowBatchHandle(this, id);
+    }
+
+    public void setState(long id, FlowBatchState state) {
+        // TODO implement it
+    }
+
+    public FlowBatchOperation getOperation(long id) {
+        // TODO implement it
+        return null;
+    }
+
+    public FlowBatchState getState(FlowBatchId id) {
+        // TODO implement it
+        return null;
+    }
+
+    // ====== private methods
+
+    private FlowBatchId getUniqueBatchOperationId() {
+        // TODO implement it
+        return null;
+    }
+
+    private boolean putBatchOperation(FlowBatchId id, FlowBatchOperation ops) {
+        // TODO implement it
+        return false;
+    }
 }
