diff --git a/src/main/java/net/onrc/onos/core/packetservice/PacketModule.java b/src/main/java/net/onrc/onos/core/packetservice/PacketModule.java
index 1e3cae6..6bdf874 100644
--- a/src/main/java/net/onrc/onos/core/packetservice/PacketModule.java
+++ b/src/main/java/net/onrc/onos/core/packetservice/PacketModule.java
@@ -99,7 +99,7 @@
     }
 
     @Override
-    public void sendPacket(SwitchPort switchPort, Ethernet eth) {
+    public void sendPacket(Ethernet eth, SwitchPort switchPort) {
         SinglePacketOutNotification notification =
                 new SinglePacketOutNotification(eth.serialize(), 0,
                 switchPort.dpid().value(), switchPort.port().value());
@@ -110,19 +110,19 @@
     }
 
     @Override
-    public void sendPacket(List<SwitchPort> switchPorts, Ethernet eth) {
+    public void sendPacket(Ethernet eth, List<SwitchPort> switchPorts) {
         // TODO Auto-generated method stub
-
+        throw new UnsupportedOperationException("Not yet implemented");
     }
 
     @Override
-    public void broadcastPacket(Ethernet eth) {
+    public void broadcastPacketOutEdge(Ethernet eth) {
         // TODO Auto-generated method stub
-
+        throw new UnsupportedOperationException("Not yet implemented");
     }
 
     @Override
-    public void broadcastPacket(Ethernet eth, SwitchPort inSwitchPort) {
+    public void broadcastPacketOutEdge(Ethernet eth, SwitchPort inSwitchPort) {
         BroadcastPacketOutNotification notification =
                 new BroadcastPacketOutNotification(eth.serialize(), 0,
                 inSwitchPort.dpid().value(), inSwitchPort.port().value());
