diff --git a/core/net/src/main/java/org/onlab/onos/net/host/impl/HostManager.java b/core/net/src/main/java/org/onlab/onos/net/host/impl/HostManager.java
index 1c4cef7..e2c9858 100644
--- a/core/net/src/main/java/org/onlab/onos/net/host/impl/HostManager.java
+++ b/core/net/src/main/java/org/onlab/onos/net/host/impl/HostManager.java
@@ -26,8 +26,10 @@
 import org.onlab.onos.net.host.HostProviderService;
 import org.onlab.onos.net.host.HostService;
 import org.onlab.onos.net.host.HostStore;
+import org.onlab.onos.net.host.PortAddresses;
 import org.onlab.onos.net.provider.AbstractProviderRegistry;
 import org.onlab.onos.net.provider.AbstractProviderService;
+import org.onlab.packet.IpAddress;
 import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
@@ -118,13 +120,18 @@
     }
 
     @Override
-    public void monitorIp(IpPrefix ip) {
-        // TODO pass through to SimpleHostMonitor
+    public void startMonitoringIp(IpAddress ip) {
+        // TODO pass through to HostMonitor
     }
 
     @Override
-    public void stopMonitoringIp(IpPrefix ip) {
-        // TODO pass through to SimpleHostMonitor
+    public void stopMonitoringIp(IpAddress ip) {
+        // TODO pass through to HostMonitor
+    }
+
+    @Override
+    public void requestMac(IpAddress ip) {
+        // TODO Auto-generated method stub
     }
 
     @Override
@@ -147,6 +154,31 @@
         }
     }
 
+    @Override
+    public void bindAddressesToPort(IpAddress ip, MacAddress mac,
+            ConnectPoint connectPoint) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void unbindAddressesFromPort(ConnectPoint connectPoint) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public Set<PortAddresses> getAddressBindings() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public PortAddresses getAddressBindingsForPort(ConnectPoint connectPoint) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
     // Personalized host provider service issued to the supplied provider.
     private class InternalHostProviderService
             extends AbstractProviderService<HostProvider>
