diff --git a/y2014/control_loops/shooter/BUILD b/y2014/control_loops/shooter/BUILD
index 810d239..b58ff98 100644
--- a/y2014/control_loops/shooter/BUILD
+++ b/y2014/control_loops/shooter/BUILD
@@ -1,91 +1,92 @@
-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_shooter',
-  srcs = [
-    'replay_shooter.cc',
-  ],
-  deps = [
-    ':shooter_queue',
-    '//aos/controls:replay_control_loop',
-    '//aos:init',
-  ],
+    name = "replay_shooter",
+    srcs = [
+        "replay_shooter.cc",
+    ],
+    deps = [
+        ":shooter_queue",
+        "//aos:init",
+        "//aos/controls:replay_control_loop",
+    ],
 )
 
 queue_library(
-  name = 'shooter_queue',
-  srcs = [
-    'shooter.q',
-  ],
-  deps = [
-    '//aos/controls:control_loop_queues',
-    '//frc971/control_loops:queues',
-  ],
+    name = "shooter_queue",
+    srcs = [
+        "shooter.q",
+    ],
+    deps = [
+        "//aos/controls:control_loop_queues",
+        "//frc971/control_loops:queues",
+    ],
 )
 
 genrule(
-  name = 'genrule_shooter',
-  visibility = ['//visibility:private'],
-  cmd = '$(location //y2014/control_loops/python:shooter) $(OUTS)',
-  tools = [
-    '//y2014/control_loops/python:shooter',
-  ],
-  outs = [
-    'shooter_motor_plant.cc',
-    'shooter_motor_plant.h',
-    'unaugmented_shooter_motor_plant.cc',
-    'unaugmented_shooter_motor_plant.h',
-  ],
+    name = "genrule_shooter",
+    outs = [
+        "shooter_motor_plant.cc",
+        "shooter_motor_plant.h",
+        "unaugmented_shooter_motor_plant.cc",
+        "unaugmented_shooter_motor_plant.h",
+    ],
+    cmd = "$(location //y2014/control_loops/python:shooter) $(OUTS)",
+    tools = [
+        "//y2014/control_loops/python:shooter",
+    ],
+    visibility = ["//visibility:private"],
 )
 
 cc_library(
-  name = 'shooter_lib',
-  srcs = [
-    'shooter.cc',
-    'shooter_motor_plant.cc',
-    'unaugmented_shooter_motor_plant.cc',
-  ],
-  hdrs = [
-    'shooter.h',
-    'shooter_motor_plant.h',
-    'unaugmented_shooter_motor_plant.h',
-  ],
-  deps = [
-    ':shooter_queue',
-    '//aos/controls:control_loop',
-    '//y2014:constants',
-    '//frc971/control_loops:state_feedback_loop',
-    '//aos/logging:queue_logging',
-  ],
-  linkopts = [
-    '-lm',
-  ],
+    name = "shooter_lib",
+    srcs = [
+        "shooter.cc",
+        "shooter_motor_plant.cc",
+        "unaugmented_shooter_motor_plant.cc",
+    ],
+    hdrs = [
+        "shooter.h",
+        "shooter_motor_plant.h",
+        "unaugmented_shooter_motor_plant.h",
+    ],
+    linkopts = [
+        "-lm",
+    ],
+    deps = [
+        ":shooter_queue",
+        "//aos/controls:control_loop",
+        "//aos/logging:queue_logging",
+        "//frc971/control_loops:state_feedback_loop",
+        "//y2014:constants",
+    ],
 )
 
 cc_test(
-  name = 'shooter_lib_test',
-  srcs = [
-    'shooter_lib_test.cc',
-  ],
-  deps = [
-    ':shooter_lib',
-    ':shooter_queue',
-    '//aos/controls:control_loop_test',
-    '//aos/testing:googletest',
-    '//frc971/control_loops:state_feedback_loop',
-    '//frc971/control_loops:team_number_test_environment',
-  ],
+    name = "shooter_lib_test",
+    srcs = [
+        "shooter_lib_test.cc",
+    ],
+    deps = [
+        ":shooter_lib",
+        ":shooter_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 = 'shooter',
-  srcs = [
-    'shooter_main.cc',
-  ],
-  deps = [
-    '//aos:init',
-    ':shooter_lib',
-  ],
+    name = "shooter",
+    srcs = [
+        "shooter_main.cc",
+    ],
+    deps = [
+        ":shooter_lib",
+        "//aos:init",
+        "//aos/events:shm-event-loop",
+    ],
 )
diff --git a/y2014/control_loops/shooter/shooter.cc b/y2014/control_loops/shooter/shooter.cc
index 7f3a3b0..d87c638 100644
--- a/y2014/control_loops/shooter/shooter.cc
+++ b/y2014/control_loops/shooter/shooter.cc
@@ -116,9 +116,10 @@
                  previous_offset, offset_));
 }
 
-ShooterMotor::ShooterMotor(::y2014::control_loops::ShooterQueue *my_shooter)
+ShooterMotor::ShooterMotor(::aos::EventLoop *event_loop,
+                           const ::std::string &name)
     : aos::controls::ControlLoop<::y2014::control_loops::ShooterQueue>(
-          my_shooter),
+          event_loop, name),
       shooter_(MakeShooterLoop()),
       state_(STATE_INITIALIZE),
       cycles_not_moved_(0),
diff --git a/y2014/control_loops/shooter/shooter.h b/y2014/control_loops/shooter/shooter.h
index 75a05db..a9a255b 100644
--- a/y2014/control_loops/shooter/shooter.h
+++ b/y2014/control_loops/shooter/shooter.h
@@ -129,8 +129,9 @@
 class ShooterMotor
     : public aos::controls::ControlLoop<::y2014::control_loops::ShooterQueue> {
  public:
-  explicit ShooterMotor(::y2014::control_loops::ShooterQueue *my_shooter =
-                            &::y2014::control_loops::shooter_queue);
+  explicit ShooterMotor(
+      ::aos::EventLoop *event_loop,
+      const ::std::string &name = ".y2014.control_loops.shooter_queue");
 
   // True if the goal was moved to avoid goal windup.
   bool capped_goal() const { return shooter_.capped_goal(); }
diff --git a/y2014/control_loops/shooter/shooter_lib_test.cc b/y2014/control_loops/shooter/shooter_lib_test.cc
index a5ac55c..e88a33e 100644
--- a/y2014/control_loops/shooter/shooter_lib_test.cc
+++ b/y2014/control_loops/shooter/shooter_lib_test.cc
@@ -289,6 +289,7 @@
   // is no longer valid.
   ::y2014::control_loops::ShooterQueue shooter_queue_;
 
+  ::aos::ShmEventLoop event_loop_;
   // Create a loop and simulation plant.
   ShooterMotor shooter_motor_;
   ShooterSimulation shooter_motor_plant_;
@@ -303,7 +304,7 @@
                        ".y2014.control_loops.shooter_queue.position",
                        ".y2014.control_loops.shooter_queue.output",
                        ".y2014.control_loops.shooter_queue.status"),
-        shooter_motor_(&shooter_queue_),
+        shooter_motor_(&event_loop_),
         shooter_motor_plant_(0.2) {}
 
   void VerifyNearGoal() {
diff --git a/y2014/control_loops/shooter/shooter_main.cc b/y2014/control_loops/shooter/shooter_main.cc
index b6f4a8c..a7b60f9 100644
--- a/y2014/control_loops/shooter/shooter_main.cc
+++ b/y2014/control_loops/shooter/shooter_main.cc
@@ -1,10 +1,12 @@
 #include "y2014/control_loops/shooter/shooter.h"
 
+#include "aos/events/shm-event-loop.h"
 #include "aos/init.h"
 
 int main() {
   ::aos::Init();
-  ::y2014::control_loops::ShooterMotor shooter;
+  ::aos::ShmEventLoop event_loop;
+  ::y2014::control_loops::ShooterMotor shooter(&event_loop);
   shooter.Run();
   ::aos::Cleanup();
   return 0;
