Optimized code
diff --git a/src/main/java/net/onrc/onos/graph/DBOperation.java b/src/main/java/net/onrc/onos/graph/DBOperation.java
index 1f77728..2410ed7 100644
--- a/src/main/java/net/onrc/onos/graph/DBOperation.java
+++ b/src/main/java/net/onrc/onos/graph/DBOperation.java
@@ -41,9 +41,8 @@
         return null;
     }
 
-    @Override
-    public ISwitchObject newSwitch(final String dpid) {
-        ISwitchObject obj = (ISwitchObject) conn.getFramedGraph().addVertex(null, ISwitchObject.class);
+    public ISwitchObject newSwitch(final String dpid, final FramedGraph fg) {
+        ISwitchObject obj = (ISwitchObject) fg.addVertex(null, ISwitchObject.class);
         if (obj != null) {
             obj.setType("switch");
             obj.setDPID(dpid);
@@ -82,9 +81,8 @@
         conn.getFramedGraph().removeVertex(sw.asVertex());
     }
 
-    @Override
-    public IPortObject newPort(String dpid, Short portNum) {
-        IPortObject obj = (IPortObject) conn.getFramedGraph().addVertex(null, IPortObject.class);
+    public IPortObject newPort(String dpid, Short portNum, final FramedGraph fg) {
+        IPortObject obj = (IPortObject) fg.addVertex(null, IPortObject.class);
         if (obj != null) {
             obj.setType("port");
             String id = dpid + portNum.toString();
diff --git a/src/main/java/net/onrc/onos/graph/RamCloudDBOperation.java b/src/main/java/net/onrc/onos/graph/RamCloudDBOperation.java
index 8150e38..66878d7 100644
--- a/src/main/java/net/onrc/onos/graph/RamCloudDBOperation.java
+++ b/src/main/java/net/onrc/onos/graph/RamCloudDBOperation.java
@@ -140,8 +140,20 @@
     }
     
     @Override
+    public ISwitchObject newSwitch(final String dpid) {
+        FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
+	return super.newSwitch(dpid, fg);
+    }
+    
+    @Override
     public IDeviceObject newDevice() {
 	FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
 	return super.newDevice(fg);
     }
+    
+    @Override
+    public IPortObject newPort(String dpid, Short portNum) {
+	FramedGraph<RamCloudGraph> fg = conn.getFramedGraph();
+	return super.newPort(dpid, portNum, fg);
+    }
 }
diff --git a/src/main/java/net/onrc/onos/graph/TitanDBOperation.java b/src/main/java/net/onrc/onos/graph/TitanDBOperation.java
index 845fd46..c2152cc 100644
--- a/src/main/java/net/onrc/onos/graph/TitanDBOperation.java
+++ b/src/main/java/net/onrc/onos/graph/TitanDBOperation.java
@@ -142,9 +142,21 @@
     }
     
     @Override
+    public ISwitchObject newSwitch(final String dpid) {
+        FramedGraph<TitanGraph> fg = conn.getFramedGraph();
+	return super.newSwitch(dpid, fg);
+    }
+    
+    @Override
     public IDeviceObject newDevice() {
 	FramedGraph<TitanGraph> fg = conn.getFramedGraph();
 	return super.newDevice(fg);
     }
+    
+    @Override
+    public IPortObject newPort(String dpid, Short portNum) {
+	FramedGraph<TitanGraph> fg = conn.getFramedGraph();
+	return super.newPort(dpid, portNum, fg);
+    }
 
 }
\ No newline at end of file