diff --git a/y2014/control_loops/claw/BUILD b/y2014/control_loops/claw/BUILD
index f267251..0764895 100644
--- a/y2014/control_loops/claw/BUILD
+++ b/y2014/control_loops/claw/BUILD
@@ -1,105 +1,106 @@
-package(default_visibility = ['//visibility:public'])
+package(default_visibility = ["//visibility:public"])
 
-load('//aos/build:queues.bzl', 'queue_library')
+load("//aos/build:queues.bzl", "queue_library")
 
 cc_binary(
-  name = 'replay_claw',
-  srcs = [
-    'replay_claw.cc',
-  ],
-  deps = [
-    ':claw_queue',
-    '//aos/controls:replay_control_loop',
-    '//aos:init',
-  ],
+    name = "replay_claw",
+    srcs = [
+        "replay_claw.cc",
+    ],
+    deps = [
+        ":claw_queue",
+        "//aos:init",
+        "//aos/controls:replay_control_loop",
+    ],
 )
 
 queue_library(
-  name = 'claw_queue',
-  srcs = [
-    'claw.q',
-  ],
-  deps = [
-    '//aos/controls:control_loop_queues',
-    '//frc971/control_loops:queues',
-  ],
+    name = "claw_queue",
+    srcs = [
+        "claw.q",
+    ],
+    deps = [
+        "//aos/controls:control_loop_queues",
+        "//frc971/control_loops:queues",
+    ],
 )
 
 genrule(
-  name = 'genrule_claw',
-  visibility = ['//visibility:private'],
-  cmd = '$(location //y2014/control_loops/python:claw) $(OUTS)',
-  tools = [
-    '//y2014/control_loops/python:claw',
-  ],
-  outs = [
-    'claw_motor_plant.h',
-    'claw_motor_plant.cc',
-  ],
+    name = "genrule_claw",
+    outs = [
+        "claw_motor_plant.h",
+        "claw_motor_plant.cc",
+    ],
+    cmd = "$(location //y2014/control_loops/python:claw) $(OUTS)",
+    tools = [
+        "//y2014/control_loops/python:claw",
+    ],
+    visibility = ["//visibility:private"],
 )
 
 cc_library(
-  name = 'claw_lib',
-  srcs = [
-    'claw.cc',
-    'claw_motor_plant.cc',
-  ],
-  hdrs = [
-    'claw.h',
-    'claw_motor_plant.h',
-  ],
-  deps = [
-    ':claw_queue',
-    '//aos/controls:control_loop',
-    '//aos/controls:polytope',
-    '//aos/logging:queue_logging',
-    '//aos/logging:matrix_logging',
-    '//aos:math',
-    '//frc971/control_loops:state_feedback_loop',
-    '//frc971/control_loops:coerce_goal',
-    '//frc971/control_loops:hall_effect_tracker',
-    '//y2014:constants',
-  ],
-  linkopts = [
-    '-lm',
-  ],
+    name = "claw_lib",
+    srcs = [
+        "claw.cc",
+        "claw_motor_plant.cc",
+    ],
+    hdrs = [
+        "claw.h",
+        "claw_motor_plant.h",
+    ],
+    linkopts = [
+        "-lm",
+    ],
+    deps = [
+        ":claw_queue",
+        "//aos:math",
+        "//aos/controls:control_loop",
+        "//aos/controls:polytope",
+        "//aos/logging:matrix_logging",
+        "//aos/logging:queue_logging",
+        "//frc971/control_loops:coerce_goal",
+        "//frc971/control_loops:hall_effect_tracker",
+        "//frc971/control_loops:state_feedback_loop",
+        "//y2014:constants",
+    ],
 )
 
 cc_test(
-  name = 'claw_lib_test',
-  srcs = [
-    'claw_lib_test.cc',
-  ],
-  deps = [
-    ':claw_lib',
-    ':claw_queue',
-    '//aos/controls:control_loop_test',
-    '//aos/testing:googletest',
-    '//frc971/control_loops:state_feedback_loop',
-    '//frc971/control_loops:team_number_test_environment',
-  ],
+    name = "claw_lib_test",
+    srcs = [
+        "claw_lib_test.cc",
+    ],
+    deps = [
+        ":claw_lib",
+        ":claw_queue",
+        "//aos/controls:control_loop_test",
+        "//aos/testing:googletest",
+        "//frc971/control_loops:state_feedback_loop",
+        "//frc971/control_loops:team_number_test_environment",
+    ],
 )
 
 cc_binary(
-  name = 'claw_calibration',
-  srcs = [
-    'claw_calibration.cc',
-  ],
-  deps = [
-    '//aos:init',
-    ':claw_queue',
-    '//aos/controls:control_loop',
-    '//y2014:constants',
-  ],
+    name = "claw_calibration",
+    srcs = [
+        "claw_calibration.cc",
+    ],
+    deps = [
+        ":claw_queue",
+        "//aos:init",
+        "//aos/controls:control_loop",
+        "//y2014:constants",
+    ],
 )
 
 cc_binary(
-  name = 'claw',
-  srcs = [
-    'claw_main.cc',
-  ],
-  deps = [
-    '//aos:init',
-    ':claw_lib',
-  ],
+    name = "claw",
+    srcs = [
+        "claw_main.cc",
+    ],
+    deps = [
+        ":claw_lib",
+        "//aos:init",
+        "//aos/events:shm-event-loop",
+    ],
 )
diff --git a/y2014/control_loops/claw/claw.cc b/y2014/control_loops/claw/claw.cc
index 82ca3a5..7a28a23 100644
--- a/y2014/control_loops/claw/claw.cc
+++ b/y2014/control_loops/claw/claw.cc
@@ -373,8 +373,9 @@
   return false;
 }
 
-ClawMotor::ClawMotor(::y2014::control_loops::ClawQueue *my_claw)
-    : aos::controls::ControlLoop<::y2014::control_loops::ClawQueue>(my_claw),
+ClawMotor::ClawMotor(::aos::EventLoop *event_loop, const ::std::string &name)
+    : aos::controls::ControlLoop<::y2014::control_loops::ClawQueue>(event_loop,
+                                                                    name),
       has_top_claw_goal_(false),
       top_claw_goal_(0.0),
       top_claw_(this),
diff --git a/y2014/control_loops/claw/claw.h b/y2014/control_loops/claw/claw.h
index 7995512..082ddce 100644
--- a/y2014/control_loops/claw/claw.h
+++ b/y2014/control_loops/claw/claw.h
@@ -185,8 +185,9 @@
 class ClawMotor
     : public aos::controls::ControlLoop<::y2014::control_loops::ClawQueue> {
  public:
-  explicit ClawMotor(::y2014::control_loops::ClawQueue *my_claw =
-                         &::y2014::control_loops::claw_queue);
+  explicit ClawMotor(
+      ::aos::EventLoop *event_loop,
+      const ::std::string &name = ".y2014.control_loops.claw_queue");
 
   // True if the state machine is ready.
   bool capped_goal() const { return capped_goal_; }
diff --git a/y2014/control_loops/claw/claw_lib_test.cc b/y2014/control_loops/claw/claw_lib_test.cc
index f10e61e..6545dcb 100644
--- a/y2014/control_loops/claw/claw_lib_test.cc
+++ b/y2014/control_loops/claw/claw_lib_test.cc
@@ -245,6 +245,7 @@
   // is no longer valid.
   ::y2014::control_loops::ClawQueue claw_queue;
 
+  ::aos::ShmEventLoop event_loop_;
   // Create a loop and simulation plant.
   ClawMotor claw_motor_;
   ClawMotorSimulation claw_motor_plant_;
@@ -259,7 +260,7 @@
                    ".y2014.control_loops.claw_queue.position",
                    ".y2014.control_loops.claw_queue.output",
                    ".y2014.control_loops.claw_queue.status"),
-        claw_motor_(&claw_queue),
+        claw_motor_(&event_loop_),
         claw_motor_plant_(0.4, 0.2),
         min_separation_(constants::GetValues().claw.claw_min_separation) {}
 
diff --git a/y2014/control_loops/claw/claw_main.cc b/y2014/control_loops/claw/claw_main.cc
index 5bb61ba..85497d9 100644
--- a/y2014/control_loops/claw/claw_main.cc
+++ b/y2014/control_loops/claw/claw_main.cc
@@ -1,10 +1,12 @@
 #include "y2014/control_loops/claw/claw.h"
 
+#include "aos/events/shm-event-loop.h"
 #include "aos/init.h"
 
 int main() {
   ::aos::Init();
-  ::y2014::control_loops::ClawMotor claw;
+  ::aos::ShmEventLoop event_loop;
+  ::y2014::control_loops::ClawMotor claw(&event_loop);
   claw.Run();
   ::aos::Cleanup();
   return 0;
