Modified DBOperation
diff --git a/src/main/java/net/onrc/onos/graph/DBOperation.java b/src/main/java/net/onrc/onos/graph/DBOperation.java
index b58198a..d965ad5 100644
--- a/src/main/java/net/onrc/onos/graph/DBOperation.java
+++ b/src/main/java/net/onrc/onos/graph/DBOperation.java
@@ -20,6 +20,7 @@
 import net.onrc.onos.ofcontroller.core.INetMapTopologyObjects.IPortObject;
 import net.onrc.onos.ofcontroller.core.INetMapTopologyObjects.ISwitchObject;
 import net.onrc.onos.ofcontroller.core.ISwitchStorage;
+import net.onrc.onos.ofcontroller.util.FlowEntryId;
 import net.onrc.onos.ofcontroller.util.FlowId;
 
 /**
@@ -252,17 +253,19 @@
 	 * Search and get a flow path object with specified flow ID.
 	 * @param flowId flow ID to search
 	 */
-	protected IFlowPath searchFlowPath(final FlowId flowId, final FramedGraph fg) {
-	    return fg.getVertices("flow_id", flowId.toString()).iterator().hasNext()
-		    ? (IFlowPath) fg.getVertices("flow_id", flowId.toString(),
+	@Override
+	public IFlowPath searchFlowPath(final FlowId flowId) {
+	    return conn.getFramedGraph().getVertices("flow_id", flowId.toString()).iterator().hasNext()
+		    ? (IFlowPath) conn.getFramedGraph().getVertices("flow_id", flowId.toString(),
 		    IFlowPath.class).iterator().next() : null;
 	}
 
 	/**
 	 * Get all flow path objects.
 	 */
-	protected Iterable<IFlowPath> getAllFlowPaths(final FramedGraph fg) {
-	    Iterable<IFlowPath> flowPaths = fg.getVertices("type", "flow", IFlowPath.class);
+	@Override
+	public Iterable<IFlowPath> getAllFlowPaths() {
+	    Iterable<IFlowPath> flowPaths = conn.getFramedGraph().getVertices("type", "flow", IFlowPath.class);
 
 	    List<IFlowPath> nonNullFlows = new ArrayList<IFlowPath>();
 
@@ -275,6 +278,43 @@
 	}
 	
 	/**
+	 * Remove the specified flow path.
+	 * @param flowPath flow path object to remove
+	 */
+	@Override
+	public void removeFlowPath(IFlowPath flowPath) {
+	    conn.getFramedGraph().removeVertex(flowPath.asVertex());
+	}
+	
+	/**
+	 * Search and get a flow entry object with flow entry ID.
+	 * @param flowEntryId flow entry ID to search
+	 */
+	@Override
+	public IFlowEntry searchFlowEntry(FlowEntryId flowEntryId) {
+	    return conn.getFramedGraph().getVertices("flow_entry_id", flowEntryId.toString()).iterator().hasNext()
+		    ? (IFlowEntry)conn.getFramedGraph().getVertices("flow_entry_id", flowEntryId.toString(),
+		    IFlowEntry.class).iterator().next() : null;
+	}
+
+	/**
+	 * Get all flow entry objects.
+	 */
+	@Override
+	public Iterable<IFlowEntry> getAllFlowEntries() {
+	    return conn.getFramedGraph().getVertices("type", "flow_entry", IFlowEntry.class);
+	}
+
+	/**
+	 * Remove the specified flow entry.
+	 * @param flowEntry flow entry object to remove
+	 */
+	@Override
+	public void removeFlowEntry(IFlowEntry flowEntry) {
+	    conn.getFramedGraph().removeVertex(flowEntry.asVertex());
+	}
+	
+	/**
 	 * Create and return a flow entry object.
 	 */
 	@Override
@@ -328,9 +368,26 @@
 		conn.getFramedGraph().removeVertex(ipv4Address.asVertex());
 	}
 
-	
+	/**
+	 * Get the instance of GraphDBConnection assigned to this class.
+	 */
 	@Override
 	public IDBConnection getDBConnection() {
 	    return conn;
 	}	
+	
+	@Override
+	public void commit() {
+	    conn.commit();
+	}
+
+	@Override
+	public void rollback() {
+	    conn.rollback();
+	}
+
+	@Override
+	public void close() {
+	    conn.close();
+	}
 }
diff --git a/src/main/java/net/onrc/onos/graph/RamCloudDBOperation.java b/src/main/java/net/onrc/onos/graph/RamCloudDBOperation.java
index 657c521..1487be7 100644
--- a/src/main/java/net/onrc/onos/graph/RamCloudDBOperation.java
+++ b/src/main/java/net/onrc/onos/graph/RamCloudDBOperation.java
@@ -24,59 +24,4 @@
 
     public RamCloudDBOperation() {
     }
-
-    @Override
-    public IFlowPath searchFlowPath(FlowId flowId) {
-        FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
-        return searchFlowPath(flowId, fg);
-    }
-
-    @Override
-    public Iterable<IFlowPath> getAllFlowPaths() {
-        FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
-        return getAllFlowPaths(fg);
-    }
-
-    @Override
-    public void removeFlowPath(IFlowPath flowPath) {
-        FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
-        fg.removeVertex(flowPath.asVertex());
-    }
-
-    @Override
-    public IFlowEntry searchFlowEntry(FlowEntryId flowEntryId) {
-        FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
-
-        return fg.getVertices("flow_entry_id", flowEntryId.toString()).iterator().hasNext()
-                ? fg.getVertices("flow_entry_id", flowEntryId.toString(),
-                IFlowEntry.class).iterator().next() : null;
-    }
-
-    @Override
-    public Iterable<IFlowEntry> getAllFlowEntries() {
-        FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
-
-        return fg.getVertices("type", "flow_entry", IFlowEntry.class);
-    }
-
-    @Override
-    public void removeFlowEntry(IFlowEntry flowEntry) {
-        FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
-        fg.removeVertex(flowEntry.asVertex());
-    }
-
-    @Override
-    public void commit() {
-        conn.commit();
-    }
-
-    @Override
-    public void rollback() {
-        conn.rollback();
-    }
-
-    @Override
-    public void close() {
-        conn.close();
-    }
 }
diff --git a/src/main/java/net/onrc/onos/graph/TitanDBOperation.java b/src/main/java/net/onrc/onos/graph/TitanDBOperation.java
index 3a6f13d..1b211d6 100644
--- a/src/main/java/net/onrc/onos/graph/TitanDBOperation.java
+++ b/src/main/java/net/onrc/onos/graph/TitanDBOperation.java
@@ -22,59 +22,5 @@
  * @author nickkaranatsios
  */
 public class TitanDBOperation extends DBOperation {
-	
-    @Override
-    public IFlowPath searchFlowPath(FlowId flowId) {
-        FramedGraph<TitanGraph> fg = conn.getFramedGraph();
-        return searchFlowPath(flowId, fg);
-    }
 
-    @Override
-    public Iterable<IFlowPath> getAllFlowPaths() {
-        FramedGraph<TitanGraph> fg = conn.getFramedGraph();
-        return getAllFlowPaths(fg);
-    }
-
-    @Override
-    public void removeFlowPath(IFlowPath flowPath) {
-        FramedGraph<TitanGraph> fg = conn.getFramedGraph();
-        fg.removeVertex(flowPath.asVertex());
-    }
-
-    @Override
-    public IFlowEntry searchFlowEntry(FlowEntryId flowEntryId) {
-        FramedGraph<TitanGraph> fg = conn.getFramedGraph();
-
-        return fg.getVertices("flow_entry_id", flowEntryId.toString()).iterator().hasNext()
-                ? fg.getVertices("flow_entry_id", flowEntryId.toString(),
-                IFlowEntry.class).iterator().next() : null;
-    }
-
-    @Override
-    public Iterable<IFlowEntry> getAllFlowEntries() {
-        FramedGraph<TitanGraph> fg = conn.getFramedGraph();
-
-        return fg.getVertices("type", "flow_entry", IFlowEntry.class);
-    }
-
-    @Override
-    public void removeFlowEntry(IFlowEntry flowEntry) {
-        FramedGraph<TitanGraph> fg = conn.getFramedGraph();
-        fg.removeVertex(flowEntry.asVertex());
-    }
-
-    @Override
-    public void commit() {
-        conn.commit();
-    }
-
-    @Override
-    public void rollback() {
-        conn.rollback();
-    }
-
-    @Override
-    public void close() {
-        conn.close();
-    }
 }
\ No newline at end of file
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java
index 4e67bf5..7b3904b 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowDatabaseOperation.java
@@ -41,12 +41,15 @@
     static boolean addFlow(FlowManager flowManager,
 			   DBOperation dbHandler,
 			   FlowPath flowPath, FlowId flowId) {
+	System.out.println("addFlow");
 	IFlowPath flowObj = null;
 	boolean found = false;
 	try {
 	    if ((flowObj = dbHandler.searchFlowPath(flowPath.flowId())) != null) {
+		System.out.println("found = true");
 		found = true;
 	    } else {
+		System.out.println("found = false");
 		flowObj = dbHandler.newFlowPath();
 	    }
 	} catch (Exception e) {
diff --git a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
index 2a55ae1..20fe5d2 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/flowmanager/FlowManager.java
@@ -694,6 +694,7 @@
 		    // NOTE: The Flow Path might not be found if the Flow was
 		    // just removed by some other controller instance.
 		    //
+		    System.out.println("writeModifiedFlowEntriesToDatabase");
 		    IFlowPath flowObj =
 			dbHandlerInner.searchFlowPath(flowEntry.flowId());
 		    if (flowObj == null) {