diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/LinkImpl.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/LinkImpl.java
index 801e780..bb598fe 100644
--- a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/LinkImpl.java
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/LinkImpl.java
@@ -30,6 +30,26 @@
 		setToPorts();
 	}
 
+	@Override
+	public Switch getSrcSwitch() {
+		return srcPort.getSwitch();
+	}
+
+	@Override
+	public Port getSrcPort() {
+		return srcPort;
+	}
+
+	@Override
+	public Switch getDstSwitch() {
+		return dstPort.getSwitch();
+	}
+
+	@Override
+	public Port getDstPort() {
+		return dstPort;
+	}
+
 	protected void setToPorts() {
 		((PortImpl)srcPort).setOutgoingLink(this);
 		((PortImpl)dstPort).setIncomingLink(this);
@@ -41,26 +61,6 @@
 	}
 
 	@Override
-	public Port getSourcePort() {
-		return srcPort;
-	}
-
-	@Override
-	public Port getDestinationPort() {
-		return dstPort;
-	}
-
-	@Override
-	public Switch getSourceSwitch() {
-		return srcPort.getSwitch();
-	}
-
-	@Override
-	public Switch getDestinationSwitch() {
-		return dstPort.getSwitch();
-	}
-
-	@Override
 	public long getLastSeenTime() {
 		// TODO Auto-generated method stub
 		return 0;
@@ -84,35 +84,11 @@
 		this.capacity = capacity;
 	}
 
-	@Deprecated
-	@Override
-	public Long getSourceSwitchDpid() {
-		return srcPort.getSwitch().getDpid();
-	}
-
-	@Deprecated
-	@Override
-	public Long getSourcePortNumber() {
-		return srcPort.getNumber();
-	}
-
-	@Deprecated
-	@Override
-	public Long getDestinationSwitchDpid() {
-		return dstPort.getSwitch().getDpid();
-	}
-
-	@Deprecated
-	@Override
-	public Long getDestinationPortNumber() {
-		return dstPort.getNumber();
-	}
-
 	@Override
 	public String toString() {
 		return String.format("%s --(cap:%f Mbps)--> %s",
-				getSourcePort().toString(),
+				getSrcPort().toString(),
 				getCapacity(),
-				getDestinationPort().toString());
+				getDstPort().toString());
 	}
 }
