diff --git a/src/main/java/net/onrc/onos/core/topology/SwitchImpl.java b/src/main/java/net/onrc/onos/core/topology/SwitchImpl.java
index 29df7b8..6d4e27a 100644
--- a/src/main/java/net/onrc/onos/core/topology/SwitchImpl.java
+++ b/src/main/java/net/onrc/onos/core/topology/SwitchImpl.java
@@ -15,8 +15,6 @@
 
 /**
  * Handler to Switch object stored in In-memory Topology snapshot.
- * <p/>
- *
  */
 public class SwitchImpl extends TopologyObject implements Switch {
 
@@ -29,7 +27,7 @@
      * @param topology Topology instance this object belongs to
      * @param dpid DPID
      */
-    SwitchImpl(TopologyInternal topology, Dpid dpid) {
+    SwitchImpl(BaseInternalTopology topology, Dpid dpid) {
         super(topology);
         this.id = checkNotNull(dpid);
     }
@@ -41,22 +39,12 @@
 
     @Override
     public Collection<Port> getPorts() {
-        topology.acquireReadLock();
-        try {
-            return topology.getPorts(getDpid());
-        } finally {
-            topology.releaseReadLock();
-        }
+        return new BaseTopologyAdaptor(topology).getPorts(getDpid());
     }
 
     @Override
     public Port getPort(PortNumber number) {
-        topology.acquireReadLock();
-        try {
-            return topology.getPort(getDpid(), number);
-        } finally {
-            topology.releaseReadLock();
-        }
+        return new BaseTopologyAdaptor(topology).getPort(getDpid(), number);
     }
 
     @Override
