diff --git a/tests/load.py b/tests/load.py
index a57b51f..066f553 100644
--- a/tests/load.py
+++ b/tests/load.py
@@ -21,9 +21,7 @@
 from oftest import config
 import oftest.controller as controller
 import ofp
-import oftest.message as message
 import oftest.dataplane as dataplane
-import oftest.action as action
 import oftest.parse as parse
 import oftest.base_tests as base_tests
 import time
@@ -60,17 +58,17 @@
         match = packet_to_flow_match(self, pkt)
         match.wildcards &= ~ofp.OFPFW_IN_PORT
         match.in_port = lb_port
-        act = action.action_output()
+        act = ofp.action.action_output()
         act.port = lb_port + 1
 
-        request = message.flow_mod()
+        request = ofp.message.flow_mod()
         request.match = match
         request.hard_timeout = 2 * barrier_count
 
         request.buffer_id = 0xffffffff
         request.actions.add(act)
 
-        act = action.action_output()
+        act = ofp.action.action_output()
         act.port = ofp.OFPP_CONTROLLER
         request.actions.add(act)
 
@@ -78,10 +76,10 @@
         do_barrier(self.controller)
 
         # Create packet out and send to port lb_port + 1
-        msg = message.packet_out()
+        msg = ofp.message.packet_out()
         msg.in_port = lb_port
         msg.data = str(pkt)
-        act = action.action_output()
+        act = ofp.action.action_output()
         act.port = lb_port + 1
         msg.actions.add(act)
         logging.info("Sleeping before starting storm")
@@ -167,10 +165,10 @@
                (simple_eth_packet(pktlen=40), "tiny Ethernet packet")]:
 
                logging.info("PKT OUT test with %s, port %s" % (opt, dp_port))
-               msg = message.packet_out()
+               msg = ofp.message.packet_out()
                msg.in_port = ofp.OFPP_NONE
                msg.data = str(outpkt)
-               act = action.action_output()
+               act = ofp.action.action_output()
                act.port = dp_port
                msg.actions.add(act)
 
@@ -193,15 +191,15 @@
 class FlowModLoad(base_tests.SimpleProtocol):
 
     def checkBarrier(self):
-        msg, pkt = self.controller.transact(message.barrier_request(), timeout=60)
+        msg, pkt = self.controller.transact(ofp.message.barrier_request(), timeout=60)
         self.assertNotEqual(msg, None, "Barrier failed")
         while self.controller.packets:
            msg = self.controller.packets.pop(0)[0]
-           self.assertNotEqual(msg.header.type, message.OFPT_ERROR,
+           self.assertNotEqual(msg.header.type, ofp.message.OFPT_ERROR,
                                "Error received")
 
     def runTest(self):
-        msg, pkt = self.controller.transact(message.table_stats_request())
+        msg, pkt = self.controller.transact(ofp.message.table_stats_request())
 
         # Some switches report an extremely high max_entries that would cause
         # us to run out of memory attempting to create all the flow-mods.
@@ -215,9 +213,9 @@
             match.wildcards = ofp.OFPFW_ALL & ~ofp.OFPFW_DL_VLAN & ~ofp.OFPFW_DL_DST
             match.dl_vlan = ofp.OFP_VLAN_NONE
             match.dl_dst = [0, 1, 2, 3, i / 256, i % 256]
-            act = action.action_output()
+            act = ofp.action.action_output()
             act.port = ofp.OFPP_CONTROLLER
-            request = message.flow_mod()
+            request = ofp.message.flow_mod()
             request.command = ofp.OFPFC_ADD
             request.buffer_id = 0xffffffff
             request.priority = num_flows - i
