Autogen rules written for elevator module.

Put most things in the y2015 namespace since codegen wants to place
the controller gains in that namespace.

Change-Id: Ib3ef6eb38200bf0d80cba972cbe06ea366522ec6
diff --git a/y2015/actors/can_pickup_action.q b/y2015/actors/can_pickup_action.q
index 4846722..bf61a0f 100644
--- a/y2015/actors/can_pickup_action.q
+++ b/y2015/actors/can_pickup_action.q
@@ -1,4 +1,4 @@
-package frc971.actors;
+package y2015.actors;
 
 import "aos/common/actions/actions.q";
 
diff --git a/y2015/actors/can_pickup_actor.cc b/y2015/actors/can_pickup_actor.cc
index d2a191f..166b246 100644
--- a/y2015/actors/can_pickup_actor.cc
+++ b/y2015/actors/can_pickup_actor.cc
@@ -7,9 +7,10 @@
 #include "y2015/constants.h"
 #include "y2015/control_loops/claw/claw.q.h"
 
-using ::frc971::control_loops::fridge_queue;
+using ::y2015::control_loops::fridge::fridge_queue;
+using ::y2015::control_loops::claw_queue;
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 namespace {
 constexpr ProfileParams kHorizontalMove{1.1, 1.8};
@@ -45,7 +46,7 @@
 bool CanPickupActor::RunAction(const CanPickupParams &params) {
   // Make sure the claw is down.
   {
-    auto message = control_loops::claw_queue.goal.MakeMessage();
+    auto message = claw_queue.goal.MakeMessage();
     message->angle = 0.0;
     message->angular_velocity = 0.0;
     message->intake = 0.0;
@@ -68,7 +69,7 @@
     return false;
   }
   {
-    auto message = control_loops::claw_queue.goal.MakeMessage();
+    auto message = claw_queue.goal.MakeMessage();
     message->angle = 0.0;
     message->angular_velocity = 0.0;
     message->intake = 0.0;
@@ -115,8 +116,8 @@
 ::std::unique_ptr<CanPickupAction> MakeCanPickupAction(
     const CanPickupParams &params) {
   return ::std::unique_ptr<CanPickupAction>(
-      new CanPickupAction(&::frc971::actors::can_pickup_action, params));
+      new CanPickupAction(&::y2015::actors::can_pickup_action, params));
 }
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/actors/can_pickup_actor.h b/y2015/actors/can_pickup_actor.h
index f0b1ec9..10677b9 100644
--- a/y2015/actors/can_pickup_actor.h
+++ b/y2015/actors/can_pickup_actor.h
@@ -10,7 +10,7 @@
 #include "y2015/actors/can_pickup_action.q.h"
 #include "y2015/actors/fridge_profile_lib.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 
 class CanPickupActor : public FridgeActorBase<CanPickupActionQueueGroup> {
@@ -32,6 +32,6 @@
     const CanPickupParams &params);
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
 
 #endif
diff --git a/y2015/actors/can_pickup_actor_main.cc b/y2015/actors/can_pickup_actor_main.cc
index 1afb500..b23d981 100644
--- a/y2015/actors/can_pickup_actor_main.cc
+++ b/y2015/actors/can_pickup_actor_main.cc
@@ -7,7 +7,7 @@
 int main(int /*argc*/, char* /*argv*/ []) {
   ::aos::Init(-1);
 
-  ::frc971::actors::CanPickupActor can_pickup(&::frc971::actors::can_pickup_action);
+  ::y2015::actors::CanPickupActor can_pickup(&::y2015::actors::can_pickup_action);
   can_pickup.Run();
 
   ::aos::Cleanup();
diff --git a/y2015/actors/drivetrain_action.q b/y2015/actors/drivetrain_action.q
index 9ad55d3..1c13f2b 100644
--- a/y2015/actors/drivetrain_action.q
+++ b/y2015/actors/drivetrain_action.q
@@ -1,4 +1,4 @@
-package frc971.actors;
+package y2015.actors;
 
 import "aos/common/actions/actions.q";
 
diff --git a/y2015/actors/drivetrain_actor.cc b/y2015/actors/drivetrain_actor.cc
index 32db222..945d923 100644
--- a/y2015/actors/drivetrain_actor.cc
+++ b/y2015/actors/drivetrain_actor.cc
@@ -15,10 +15,11 @@
 #include "y2015/actors/drivetrain_actor.h"
 #include "y2015/constants.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 
 namespace chrono = ::std::chrono;
+using ::frc971::control_loops::drivetrain_queue;
 
 DrivetrainActor::DrivetrainActor(actors::DrivetrainActionQueueGroup* s)
     : aos::common::actions::ActorBase<actors::DrivetrainActionQueueGroup>(s) {}
@@ -49,9 +50,9 @@
   while (true) {
     ::aos::time::PhasedLoopXMS(5, 2500);
 
-    control_loops::drivetrain_queue.status.FetchLatest();
-    if (control_loops::drivetrain_queue.status.get()) {
-      const auto& status = *control_loops::drivetrain_queue.status;
+    drivetrain_queue.status.FetchLatest();
+    if (drivetrain_queue.status.get()) {
+      const auto& status = *drivetrain_queue.status;
       if (::std::abs(status.uncapped_left_voltage -
                      status.uncapped_right_voltage) > 24) {
         LOG(DEBUG, "spinning in place\n");
@@ -118,7 +119,7 @@
     LOG(DEBUG, "Driving left to %f, right to %f\n",
         left_goal_state(0, 0) + params.left_initial_position,
         right_goal_state(0, 0) + params.right_initial_position);
-    control_loops::drivetrain_queue.goal.MakeWithBuilder()
+    drivetrain_queue.goal.MakeWithBuilder()
         .control_loop_driving(true)
         //.highgear(false)
         .left_goal(left_goal_state(0, 0) + params.left_initial_position)
@@ -128,25 +129,25 @@
         .Send();
   }
   if (ShouldCancel()) return true;
-  control_loops::drivetrain_queue.status.FetchLatest();
-  while (!control_loops::drivetrain_queue.status.get()) {
+  drivetrain_queue.status.FetchLatest();
+  while (!drivetrain_queue.status.get()) {
     LOG(WARNING,
         "No previous drivetrain status packet, trying to fetch again\n");
-    control_loops::drivetrain_queue.status.FetchNextBlocking();
+    drivetrain_queue.status.FetchNextBlocking();
     if (ShouldCancel()) return true;
   }
   while (true) {
     if (ShouldCancel()) return true;
     const double kPositionThreshold = 0.05;
 
-    const double left_error = ::std::abs(
-        control_loops::drivetrain_queue.status->estimated_left_position -
-        (left_goal_state(0, 0) + params.left_initial_position));
-    const double right_error = ::std::abs(
-        control_loops::drivetrain_queue.status->estimated_right_position -
-        (right_goal_state(0, 0) + params.right_initial_position));
+    const double left_error =
+        ::std::abs(drivetrain_queue.status->estimated_left_position -
+                   (left_goal_state(0, 0) + params.left_initial_position));
+    const double right_error =
+        ::std::abs(drivetrain_queue.status->estimated_right_position -
+                   (right_goal_state(0, 0) + params.right_initial_position));
     const double velocity_error =
-        ::std::abs(control_loops::drivetrain_queue.status->robot_speed);
+        ::std::abs(drivetrain_queue.status->robot_speed);
     if (left_error < kPositionThreshold && right_error < kPositionThreshold &&
         velocity_error < 0.2) {
       break;
@@ -154,17 +155,17 @@
       LOG(DEBUG, "Drivetrain error is %f, %f, %f\n", left_error, right_error,
           velocity_error);
     }
-    control_loops::drivetrain_queue.status.FetchNextBlocking();
+    drivetrain_queue.status.FetchNextBlocking();
   }
   LOG(INFO, "Done moving\n");
   return true;
 }
 
 ::std::unique_ptr<DrivetrainAction> MakeDrivetrainAction(
-    const ::frc971::actors::DrivetrainActionParams& params) {
+    const ::y2015::actors::DrivetrainActionParams& params) {
   return ::std::unique_ptr<DrivetrainAction>(
-      new DrivetrainAction(&::frc971::actors::drivetrain_action, params));
+      new DrivetrainAction(&::y2015::actors::drivetrain_action, params));
 }
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/actors/drivetrain_actor.h b/y2015/actors/drivetrain_actor.h
index 369c6ed..0927f38 100644
--- a/y2015/actors/drivetrain_actor.h
+++ b/y2015/actors/drivetrain_actor.h
@@ -7,7 +7,7 @@
 #include "aos/common/actions/actor.h"
 #include "aos/common/actions/actions.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 
 class DrivetrainActor
@@ -23,9 +23,9 @@
 
 // Makes a new DrivetrainActor action.
 ::std::unique_ptr<DrivetrainAction> MakeDrivetrainAction(
-    const ::frc971::actors::DrivetrainActionParams& params);
+    const ::y2015::actors::DrivetrainActionParams& params);
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
 
 #endif
diff --git a/y2015/actors/drivetrain_actor_main.cc b/y2015/actors/drivetrain_actor_main.cc
index 6f567d7..76519f2 100644
--- a/y2015/actors/drivetrain_actor_main.cc
+++ b/y2015/actors/drivetrain_actor_main.cc
@@ -9,8 +9,8 @@
 int main(int /*argc*/, char * /*argv*/[]) {
   ::aos::Init(-1);
 
-  frc971::actors::DrivetrainActor drivetrain(
-      &::frc971::actors::drivetrain_action);
+  y2015::actors::DrivetrainActor drivetrain(
+      &::y2015::actors::drivetrain_action);
   drivetrain.Run();
 
   ::aos::Cleanup();
diff --git a/y2015/actors/fridge_profile_lib.h b/y2015/actors/fridge_profile_lib.h
index ce75f75..8980848 100644
--- a/y2015/actors/fridge_profile_lib.h
+++ b/y2015/actors/fridge_profile_lib.h
@@ -7,7 +7,7 @@
 #include "aos/common/util/phased_loop.h"
 #include "y2015/control_loops/fridge/fridge.q.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 
 struct ProfileParams {
@@ -34,7 +34,8 @@
                           ProfileParams elevator_parameters,
                           ProfileParams arm_parameters, bool top_grabbers,
                           bool front_grabbers, bool back_grabbers) {
-    auto new_fridge_goal = control_loops::fridge_queue.goal.MakeMessage();
+    auto new_fridge_goal =
+        control_loops::fridge::fridge_queue.goal.MakeMessage();
     new_fridge_goal->profiling_type = 0;
     new_fridge_goal->max_velocity = elevator_parameters.velocity;
     new_fridge_goal->max_acceleration = elevator_parameters.acceleration;
@@ -65,29 +66,30 @@
                                bool front_grabbers, bool back_grabbers) {
     if (this->ShouldCancel()) {
       LOG(INFO, "Canceling fridge movement\n");
-      if (!control_loops::fridge_queue.status.get()) {
+      if (!control_loops::fridge::fridge_queue.status.get()) {
         LOG(WARNING, "no fridge status so can't really cancel\n");
         return CANCELED;
       }
 
-      auto new_fridge_goal = control_loops::fridge_queue.goal.MakeMessage();
+      auto new_fridge_goal =
+          control_loops::fridge::fridge_queue.goal.MakeMessage();
       new_fridge_goal->profiling_type = 0;
       new_fridge_goal->max_velocity = elevator_parameters.velocity;
       new_fridge_goal->max_acceleration = elevator_parameters.acceleration;
       new_fridge_goal->height =
-          control_loops::fridge_queue.status->height +
-          (control_loops::fridge_queue.status->goal_velocity *
-           ::std::abs(control_loops::fridge_queue.status->goal_velocity)) /
+          control_loops::fridge::fridge_queue.status->height +
+          (control_loops::fridge::fridge_queue.status->goal_velocity *
+           ::std::abs(control_loops::fridge::fridge_queue.status->goal_velocity)) /
               (2.0 * new_fridge_goal->max_acceleration);
       height = new_fridge_goal->height;
       new_fridge_goal->velocity = 0.0;
       new_fridge_goal->max_angular_velocity = arm_parameters.velocity;
       new_fridge_goal->max_angular_acceleration = arm_parameters.acceleration;
       new_fridge_goal->angle =
-          control_loops::fridge_queue.status->angle +
-          (control_loops::fridge_queue.status->goal_angular_velocity *
+          control_loops::fridge::fridge_queue.status->angle +
+          (control_loops::fridge::fridge_queue.status->goal_angular_velocity *
            ::std::abs(
-               control_loops::fridge_queue.status->goal_angular_velocity)) /
+               control_loops::fridge::fridge_queue.status->goal_angular_velocity)) /
               (2.0 * new_fridge_goal->max_angular_acceleration);
       angle = new_fridge_goal->angle;
       new_fridge_goal->angular_velocity = 0.0;
@@ -101,29 +103,30 @@
       }
       return CANCELED;
     }
-    control_loops::fridge_queue.status.FetchAnother();
+    control_loops::fridge::fridge_queue.status.FetchAnother();
 
     constexpr double kProfileError = 1e-5;
     constexpr double kAngleEpsilon = 0.02, kHeightEpsilon = 0.015;
 
-    if (control_loops::fridge_queue.status->state != 4) {
+    if (control_loops::fridge::fridge_queue.status->state != 4) {
       LOG(ERROR, "Fridge no longer running, aborting action\n");
       return CANCELED;
     }
 
-    if (::std::abs(control_loops::fridge_queue.status->goal_angle - angle) <
+    if (::std::abs(control_loops::fridge::fridge_queue.status->goal_angle -
+                   angle) < kProfileError &&
+        ::std::abs(control_loops::fridge::fridge_queue.status->goal_height -
+                   height) < kProfileError &&
+        ::std::abs(
+            control_loops::fridge::fridge_queue.status->goal_angular_velocity) <
             kProfileError &&
-        ::std::abs(control_loops::fridge_queue.status->goal_height - height) <
-            kProfileError &&
-        ::std::abs(control_loops::fridge_queue.status->goal_angular_velocity) <
-            kProfileError &&
-        ::std::abs(control_loops::fridge_queue.status->goal_velocity) <
+        ::std::abs(control_loops::fridge::fridge_queue.status->goal_velocity) <
             kProfileError) {
       LOG(INFO, "Profile done.\n");
-      if (::std::abs(control_loops::fridge_queue.status->angle - angle) <
-                     kAngleEpsilon &&
-                 ::std::abs(control_loops::fridge_queue.status->height -
-                            height) < kHeightEpsilon) {
+      if (::std::abs(control_loops::fridge::fridge_queue.status->angle -
+                     angle) < kAngleEpsilon &&
+          ::std::abs(control_loops::fridge::fridge_queue.status->height -
+                     height) < kHeightEpsilon) {
         LOG(INFO, "Near goal, done.\n");
         return DONE;
       }
@@ -179,28 +182,31 @@
                       bool top_grabbers, bool front_grabbers,
                       bool back_grabbers) {
     LOG(INFO, "Canceling fridge movement\n");
-    if (!control_loops::fridge_queue.status.get()) {
+    if (!control_loops::fridge::fridge_queue.status.get()) {
       LOG(WARNING, "no fridge status so can't really cancel\n");
       return;
     }
 
-    auto new_fridge_goal = control_loops::fridge_queue.goal.MakeMessage();
+    auto new_fridge_goal =
+        control_loops::fridge::fridge_queue.goal.MakeMessage();
     new_fridge_goal->profiling_type = 1;
     new_fridge_goal->max_x_velocity = x_parameters.velocity;
     new_fridge_goal->max_x_acceleration = x_parameters.acceleration;
     new_fridge_goal->x =
-        control_loops::fridge_queue.status->x +
-        (control_loops::fridge_queue.status->goal_x_velocity *
-         ::std::abs(control_loops::fridge_queue.status->goal_x_velocity)) /
+        control_loops::fridge::fridge_queue.status->x +
+        (control_loops::fridge::fridge_queue.status->goal_x_velocity *
+         ::std::abs(
+             control_loops::fridge::fridge_queue.status->goal_x_velocity)) /
             (2.0 * new_fridge_goal->max_x_acceleration);
     new_fridge_goal->x_velocity = 0.0;
 
     new_fridge_goal->max_y_velocity = y_parameters.velocity;
     new_fridge_goal->max_y_acceleration = y_parameters.acceleration;
     new_fridge_goal->y =
-        control_loops::fridge_queue.status->y +
-        (control_loops::fridge_queue.status->goal_y_velocity *
-         ::std::abs(control_loops::fridge_queue.status->goal_y_velocity)) /
+        control_loops::fridge::fridge_queue.status->y +
+        (control_loops::fridge::fridge_queue.status->goal_y_velocity *
+         ::std::abs(
+             control_loops::fridge::fridge_queue.status->goal_y_velocity)) /
             (2.0 * new_fridge_goal->max_y_acceleration);
     new_fridge_goal->y_velocity = 0.0;
 
@@ -222,27 +228,31 @@
                      back_grabbers);
       return CANCELED;
     }
-    control_loops::fridge_queue.status.FetchAnother();
+    control_loops::fridge::fridge_queue.status.FetchAnother();
 
     constexpr double kProfileError = 1e-5;
     constexpr double kXEpsilon = 0.02, kYEpsilon = 0.02;
 
-    if (control_loops::fridge_queue.status->state != 4) {
+    if (control_loops::fridge::fridge_queue.status->state != 4) {
       LOG(ERROR, "Fridge no longer running, aborting action\n");
       return CANCELED;
     }
 
-    if (::std::abs(control_loops::fridge_queue.status->goal_x - x) <
+    if (::std::abs(control_loops::fridge::fridge_queue.status->goal_x - x) <
             kProfileError &&
-        ::std::abs(control_loops::fridge_queue.status->goal_y - y) <
+        ::std::abs(control_loops::fridge::fridge_queue.status->goal_y - y) <
             kProfileError &&
-        ::std::abs(control_loops::fridge_queue.status->goal_x_velocity) <
+        ::std::abs(
+            control_loops::fridge::fridge_queue.status->goal_x_velocity) <
             kProfileError &&
-        ::std::abs(control_loops::fridge_queue.status->goal_y_velocity) <
+        ::std::abs(
+            control_loops::fridge::fridge_queue.status->goal_y_velocity) <
             kProfileError) {
       LOG(INFO, "Profile done.\n");
-      if (::std::abs(control_loops::fridge_queue.status->x - x) < kXEpsilon &&
-          ::std::abs(control_loops::fridge_queue.status->y - y) < kYEpsilon) {
+      if (::std::abs(control_loops::fridge::fridge_queue.status->x - x) <
+              kXEpsilon &&
+          ::std::abs(control_loops::fridge::fridge_queue.status->y - y) <
+              kYEpsilon) {
         LOG(INFO, "Near goal, done.\n");
         return DONE;
       }
@@ -254,7 +264,8 @@
   bool StartFridgeXYProfile(double x, double y, ProfileParams x_parameters,
                             ProfileParams y_parameters, bool top_grabbers,
                             bool front_grabbers, bool back_grabbers) {
-    auto new_fridge_goal = control_loops::fridge_queue.goal.MakeMessage();
+    auto new_fridge_goal =
+        control_loops::fridge::fridge_queue.goal.MakeMessage();
     new_fridge_goal->profiling_type = 1;
     new_fridge_goal->max_x_velocity = x_parameters.velocity;
     new_fridge_goal->max_x_acceleration = x_parameters.acceleration;
@@ -280,6 +291,6 @@
 };
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
 
 #endif  // Y2015_ACTORS_FRIDGE_PROFILE_LIB_H_
diff --git a/y2015/actors/held_to_lift_action.q b/y2015/actors/held_to_lift_action.q
index c2dd689..d3d456e 100644
--- a/y2015/actors/held_to_lift_action.q
+++ b/y2015/actors/held_to_lift_action.q
@@ -1,4 +1,4 @@
-package frc971.actors;
+package y2015.actors;
 
 import "aos/common/actions/actions.q";
 import "y2015/actors/lift_action_params.q";
diff --git a/y2015/actors/held_to_lift_actor.cc b/y2015/actors/held_to_lift_actor.cc
index 29d68ef..942488d 100644
--- a/y2015/actors/held_to_lift_actor.cc
+++ b/y2015/actors/held_to_lift_actor.cc
@@ -8,7 +8,7 @@
 #include "y2015/actors/lift_actor.h"
 #include "y2015/control_loops/claw/claw.q.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 namespace {
 constexpr ProfileParams kArmMove{0.6, 2.0};
@@ -18,13 +18,15 @@
 }  // namespace
 
 namespace chrono = ::std::chrono;
+using ::y2015::control_loops::fridge::fridge_queue;
+using ::y2015::control_loops::claw_queue;
 
 HeldToLiftActor::HeldToLiftActor(HeldToLiftActionQueueGroup *queues)
     : FridgeActorBase<HeldToLiftActionQueueGroup>(queues) {}
 
 bool HeldToLiftActor::RunAction(const HeldToLiftParams &params) {
-  control_loops::fridge_queue.status.FetchLatest();
-  if (!control_loops::fridge_queue.status.get()) {
+  fridge_queue.status.FetchLatest();
+  if (!fridge_queue.status.get()) {
     return false;
   }
 
@@ -32,14 +34,14 @@
   {
     bool send_goal = true;
     double claw_goal = params.claw_out_angle;
-    control_loops::claw_queue.status.FetchLatest();
-    if (control_loops::claw_queue.status.get()) {
-      if (control_loops::claw_queue.status->goal_angle < claw_goal) {
+    claw_queue.status.FetchLatest();
+    if (claw_queue.status.get()) {
+      if (claw_queue.status->goal_angle < claw_goal) {
         send_goal = false;
       }
     }
     if (send_goal) {
-      auto message = control_loops::claw_queue.goal.MakeMessage();
+      auto message = claw_queue.goal.MakeMessage();
       message->angle = params.claw_out_angle;
       message->angular_velocity = 0.0;
       message->intake = 0.0;
@@ -52,17 +54,16 @@
     }
   }
 
-  control_loops::fridge_queue.status.FetchLatest();
-  if (!control_loops::fridge_queue.status.get()) {
+  fridge_queue.status.FetchLatest();
+  if (!fridge_queue.status.get()) {
     return false;
   }
 
-  if (control_loops::fridge_queue.status->goal_height != params.bottom_height ||
-      control_loops::fridge_queue.status->goal_angle != 0.0) {
+  if (fridge_queue.status->goal_height != params.bottom_height ||
+      fridge_queue.status->goal_angle != 0.0) {
     // Lower with the fridge clamps open and move it forwards slightly to clear.
-    DoFridgeProfile(control_loops::fridge_queue.status->goal_height,
-                    params.arm_clearance, kFastElevatorMove, kFastArmMove,
-                    false);
+    DoFridgeProfile(fridge_queue.status->goal_height, params.arm_clearance,
+                    kFastElevatorMove, kFastArmMove, false);
     if (ShouldCancel()) return true;
 
     DoFridgeProfile(params.bottom_height, params.arm_clearance,
@@ -111,8 +112,8 @@
 ::std::unique_ptr<HeldToLiftAction> MakeHeldToLiftAction(
     const HeldToLiftParams &params) {
   return ::std::unique_ptr<HeldToLiftAction>(
-      new HeldToLiftAction(&::frc971::actors::held_to_lift_action, params));
+      new HeldToLiftAction(&::y2015::actors::held_to_lift_action, params));
 }
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/actors/held_to_lift_actor.h b/y2015/actors/held_to_lift_actor.h
index 369fea4..f431f9c 100644
--- a/y2015/actors/held_to_lift_actor.h
+++ b/y2015/actors/held_to_lift_actor.h
@@ -10,7 +10,7 @@
 #include "y2015/actors/held_to_lift_action.q.h"
 #include "y2015/actors/fridge_profile_lib.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 
 class HeldToLiftActor : public FridgeActorBase<HeldToLiftActionQueueGroup> {
@@ -28,6 +28,6 @@
     const HeldToLiftParams &params);
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
 
 #endif  // Y2015_ACTORS_HELD_TO_LIFT_ACTOR_H_
diff --git a/y2015/actors/held_to_lift_actor_main.cc b/y2015/actors/held_to_lift_actor_main.cc
index 705a073..008a259 100644
--- a/y2015/actors/held_to_lift_actor_main.cc
+++ b/y2015/actors/held_to_lift_actor_main.cc
@@ -7,8 +7,7 @@
 int main(int /*argc*/, char* /*argv*/ []) {
   ::aos::Init(-1);
 
-  ::frc971::actors::HeldToLiftActor lift(
-      &::frc971::actors::held_to_lift_action);
+  ::y2015::actors::HeldToLiftActor lift(&::y2015::actors::held_to_lift_action);
   lift.Run();
 
   ::aos::Cleanup();
diff --git a/y2015/actors/horizontal_can_pickup_action.q b/y2015/actors/horizontal_can_pickup_action.q
index c1a1c55..51238d8 100644
--- a/y2015/actors/horizontal_can_pickup_action.q
+++ b/y2015/actors/horizontal_can_pickup_action.q
@@ -1,4 +1,4 @@
-package frc971.actors;
+package y2015.actors;
 
 import "aos/common/actions/actions.q";
 
diff --git a/y2015/actors/horizontal_can_pickup_actor.cc b/y2015/actors/horizontal_can_pickup_actor.cc
index 82d01a7..25a45e1 100644
--- a/y2015/actors/horizontal_can_pickup_actor.cc
+++ b/y2015/actors/horizontal_can_pickup_actor.cc
@@ -9,7 +9,7 @@
 #include "y2015/constants.h"
 #include "y2015/control_loops/claw/claw.q.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 namespace {
 constexpr ProfileParams kClawPickup{3.0, 2.0};
@@ -28,6 +28,7 @@
 }  // namespace
 
 namespace chrono = ::std::chrono;
+using ::y2015::control_loops::claw_queue;
 
 HorizontalCanPickupActor::HorizontalCanPickupActor(
     HorizontalCanPickupActionQueueGroup *queues)
@@ -35,10 +36,10 @@
 
 bool HorizontalCanPickupActor::WaitUntilGoalNear(double angle) {
   while (true) {
-    control_loops::claw_queue.status.FetchAnother();
+    claw_queue.status.FetchAnother();
     if (ShouldCancel()) return false;
-    const double goal_angle = control_loops::claw_queue.status->goal_angle;
-    LOG_STRUCT(DEBUG, "Got claw status", *control_loops::claw_queue.status);
+    const double goal_angle = claw_queue.status->goal_angle;
+    LOG_STRUCT(DEBUG, "Got claw status", *claw_queue.status);
 
     if (::std::abs(goal_angle - angle) < kGoalAngleEpsilon) {
       return true;
@@ -48,10 +49,10 @@
 
 bool HorizontalCanPickupActor::WaitUntilNear(double angle) {
   while (true) {
-    control_loops::claw_queue.status.FetchAnother();
+    claw_queue.status.FetchAnother();
     if (ShouldCancel()) return false;
-    const double current_angle = control_loops::claw_queue.status->angle;
-    LOG_STRUCT(DEBUG, "Got claw status", *control_loops::claw_queue.status);
+    const double current_angle = claw_queue.status->angle;
+    LOG_STRUCT(DEBUG, "Got claw status", *claw_queue.status);
 
     if (::std::abs(current_angle - angle) < kAngleEpsilon) {
       return true;
@@ -64,7 +65,7 @@
 
 void HorizontalCanPickupActor::MoveArm(double angle, double intake_power,
                                        const ProfileParams profile_params) {
-  auto message = control_loops::claw_queue.goal.MakeMessage();
+  auto message = claw_queue.goal.MakeMessage();
   message->angle = angle;
   message->max_velocity = profile_params.velocity;
   message->max_acceleration = profile_params.acceleration;
@@ -84,9 +85,9 @@
     return true;
   }
 
-  control_loops::claw_queue.status.FetchAnother();
+  claw_queue.status.FetchAnother();
 
-  MoveArm(control_loops::claw_queue.status->angle, params.spit_power);
+  MoveArm(claw_queue.status->angle, params.spit_power);
 
   if (!WaitOrCancel(chrono::duration_cast<::aos::monotonic_clock::duration>(
           chrono::duration<double>(params.spit_time)))) {
@@ -159,8 +160,8 @@
     const HorizontalCanPickupParams &params) {
   return ::std::unique_ptr<HorizontalCanPickupAction>(
       new HorizontalCanPickupAction(
-          &::frc971::actors::horizontal_can_pickup_action, params));
+          &::y2015::actors::horizontal_can_pickup_action, params));
 }
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/actors/horizontal_can_pickup_actor.h b/y2015/actors/horizontal_can_pickup_actor.h
index 5510178..486e8f8 100644
--- a/y2015/actors/horizontal_can_pickup_actor.h
+++ b/y2015/actors/horizontal_can_pickup_actor.h
@@ -10,7 +10,7 @@
 #include "y2015/actors/horizontal_can_pickup_action.q.h"
 #include "y2015/actors/fridge_profile_lib.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 
 class HorizontalCanPickupActor
@@ -40,6 +40,6 @@
     const HorizontalCanPickupParams &params);
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
 
 #endif  // Y2015_ACTORS_HORIZONTAL_CAN_PICKUP_ACTOR_H_
diff --git a/y2015/actors/horizontal_can_pickup_actor_main.cc b/y2015/actors/horizontal_can_pickup_actor_main.cc
index fbe8c0d..f88bdc9 100644
--- a/y2015/actors/horizontal_can_pickup_actor_main.cc
+++ b/y2015/actors/horizontal_can_pickup_actor_main.cc
@@ -7,8 +7,8 @@
 int main(int /*argc*/, char* /*argv*/ []) {
   ::aos::Init(-1);
 
-  ::frc971::actors::HorizontalCanPickupActor horizontal_can_pickup(
-      &::frc971::actors::horizontal_can_pickup_action);
+  ::y2015::actors::HorizontalCanPickupActor horizontal_can_pickup(
+      &::y2015::actors::horizontal_can_pickup_action);
   horizontal_can_pickup.Run();
 
   ::aos::Cleanup();
diff --git a/y2015/actors/lift_action.q b/y2015/actors/lift_action.q
index 37fba8d..0e7e90e 100644
--- a/y2015/actors/lift_action.q
+++ b/y2015/actors/lift_action.q
@@ -1,4 +1,4 @@
-package frc971.actors;
+package y2015.actors;
 
 import "aos/common/actions/actions.q";
 import "y2015/actors/lift_action_params.q";
diff --git a/y2015/actors/lift_action_params.q b/y2015/actors/lift_action_params.q
index b31982b..dd812c3 100644
--- a/y2015/actors/lift_action_params.q
+++ b/y2015/actors/lift_action_params.q
@@ -1,4 +1,4 @@
-package frc971.actors;
+package y2015.actors;
 
 // Parameters to send with start.
 struct LiftParams {
diff --git a/y2015/actors/lift_actor.cc b/y2015/actors/lift_actor.cc
index c057eef..96069ab 100644
--- a/y2015/actors/lift_actor.cc
+++ b/y2015/actors/lift_actor.cc
@@ -6,7 +6,7 @@
 #include "y2015/actors/fridge_profile_lib.h"
 #include "y2015/control_loops/claw/claw.q.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 namespace {
 constexpr ProfileParams kArmMove{0.6, 1.0};
@@ -14,12 +14,15 @@
 constexpr ProfileParams kElevatorFixMove{0.9, 2.0};
 }  // namespace
 
+using ::y2015::control_loops::claw_queue;
+using ::y2015::control_loops::fridge::fridge_queue;
+
 LiftActor::LiftActor(LiftActionQueueGroup *queues)
     : FridgeActorBase<LiftActionQueueGroup>(queues) {}
 
 bool LiftActor::RunAction(const LiftParams &params) {
-  control_loops::fridge_queue.status.FetchLatest();
-  if (!control_loops::fridge_queue.status.get()) {
+  fridge_queue.status.FetchLatest();
+  if (!fridge_queue.status.get()) {
     return false;
   }
 
@@ -28,36 +31,34 @@
 
   if (params.second_lift) {
     DoFridgeProfile(params.intermediate_lift_height, 0.0, kElevatorFixMove,
-                    kArmMove,
-                    control_loops::fridge_queue.status->grabbers.top_front,
-                    control_loops::fridge_queue.status->grabbers.bottom_front,
-                    control_loops::fridge_queue.status->grabbers.bottom_back);
+                    kArmMove, fridge_queue.status->grabbers.top_front,
+                    fridge_queue.status->grabbers.bottom_front,
+                    fridge_queue.status->grabbers.bottom_back);
     if (ShouldCancel()) return true;
   }
 
-  if (!StartFridgeProfile(
-          params.lift_height, 0.0, kElevatorMove, kArmMove,
-          control_loops::fridge_queue.status->grabbers.top_front,
-          control_loops::fridge_queue.status->grabbers.bottom_front,
-          control_loops::fridge_queue.status->grabbers.bottom_back)) {
+  if (!StartFridgeProfile(params.lift_height, 0.0, kElevatorMove, kArmMove,
+                          fridge_queue.status->grabbers.top_front,
+                          fridge_queue.status->grabbers.bottom_front,
+                          fridge_queue.status->grabbers.bottom_back)) {
     return true;
   }
 
   bool has_started_back = false;
   while (true) {
-    if (control_loops::fridge_queue.status->goal_height > 0.1) {
+    if (fridge_queue.status->goal_height > 0.1) {
       if (!has_started_back) {
-        if (!StartFridgeProfile(
-                params.lift_height, params.lift_arm, kElevatorMove, kArmMove,
-                control_loops::fridge_queue.status->grabbers.top_front,
-                control_loops::fridge_queue.status->grabbers.bottom_front,
-                control_loops::fridge_queue.status->grabbers.bottom_back)) {
+        if (!StartFridgeProfile(params.lift_height, params.lift_arm,
+                                kElevatorMove, kArmMove,
+                                fridge_queue.status->grabbers.top_front,
+                                fridge_queue.status->grabbers.bottom_front,
+                                fridge_queue.status->grabbers.bottom_back)) {
           return true;
         }
         goal_angle = params.lift_arm;
         has_started_back = true;
         if (params.pack_claw) {
-          auto message = control_loops::claw_queue.goal.MakeMessage();
+          auto message = claw_queue.goal.MakeMessage();
           message->angle = params.pack_claw_angle;
           message->angular_velocity = 0.0;
           message->intake = 0.0;
@@ -71,11 +72,11 @@
       }
     }
 
-    ProfileStatus status = IterateProfile(
-        goal_height, goal_angle, kElevatorMove, kArmMove,
-        control_loops::fridge_queue.status->grabbers.top_front,
-        control_loops::fridge_queue.status->grabbers.bottom_front,
-        control_loops::fridge_queue.status->grabbers.bottom_back);
+    ProfileStatus status =
+        IterateProfile(goal_height, goal_angle, kElevatorMove, kArmMove,
+                       fridge_queue.status->grabbers.top_front,
+                       fridge_queue.status->grabbers.bottom_front,
+                       fridge_queue.status->grabbers.bottom_back);
     if (status == DONE || status == CANCELED) {
       return true;
     }
@@ -85,8 +86,8 @@
 
 ::std::unique_ptr<LiftAction> MakeLiftAction(const LiftParams &params) {
   return ::std::unique_ptr<LiftAction>(
-      new LiftAction(&::frc971::actors::lift_action, params));
+      new LiftAction(&::y2015::actors::lift_action, params));
 }
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/actors/lift_actor.h b/y2015/actors/lift_actor.h
index cbd79ec..4a1cd43 100644
--- a/y2015/actors/lift_actor.h
+++ b/y2015/actors/lift_actor.h
@@ -10,7 +10,7 @@
 #include "y2015/actors/lift_action.q.h"
 #include "y2015/actors/fridge_profile_lib.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 
 class LiftActor : public FridgeActorBase<LiftActionQueueGroup> {
@@ -26,6 +26,6 @@
 ::std::unique_ptr<LiftAction> MakeLiftAction(const LiftParams &params);
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
 
 #endif  // Y2015_ACTORS_LIFT_ACTOR_H_
diff --git a/y2015/actors/lift_actor_main.cc b/y2015/actors/lift_actor_main.cc
index 68389ca..1a86780 100644
--- a/y2015/actors/lift_actor_main.cc
+++ b/y2015/actors/lift_actor_main.cc
@@ -7,7 +7,7 @@
 int main(int /*argc*/, char* /*argv*/ []) {
   ::aos::Init(-1);
 
-  ::frc971::actors::LiftActor lift(&::frc971::actors::lift_action);
+  ::y2015::actors::LiftActor lift(&::y2015::actors::lift_action);
   lift.Run();
 
   ::aos::Cleanup();
diff --git a/y2015/actors/pickup_action.q b/y2015/actors/pickup_action.q
index 237337a..ca0d6f5 100644
--- a/y2015/actors/pickup_action.q
+++ b/y2015/actors/pickup_action.q
@@ -1,4 +1,4 @@
-package frc971.actors;
+package y2015.actors;
 
 import "aos/common/actions/actions.q";
 
diff --git a/y2015/actors/pickup_actor.cc b/y2015/actors/pickup_actor.cc
index 4ae988e..3aa0c18 100644
--- a/y2015/actors/pickup_actor.cc
+++ b/y2015/actors/pickup_actor.cc
@@ -8,7 +8,7 @@
 #include "aos/common/time.h"
 #include "y2015/control_loops/claw/claw.q.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 namespace {
 constexpr double kClawPickupVelocity = 3.00;
@@ -19,6 +19,8 @@
 constexpr double kClawMoveUpAcceleration = 25.0;
 }  // namespace
 
+using ::y2015::control_loops::claw_queue;
+
 PickupActor::PickupActor(PickupActionQueueGroup* queues)
     : aos::common::actions::ActorBase<PickupActionQueueGroup>(queues) {}
 
@@ -26,7 +28,7 @@
   constexpr double kAngleEpsilon = 0.10;
   // Start lifting the tote.
   {
-    auto message = control_loops::claw_queue.goal.MakeMessage();
+    auto message = claw_queue.goal.MakeMessage();
     message->angle = params.pickup_angle;
     message->max_velocity = kClawPickupVelocity;
     message->max_acceleration = kClawPickupAcceleration;
@@ -38,10 +40,10 @@
     message.Send();
   }
   while (true) {
-    control_loops::claw_queue.status.FetchAnother();
+    claw_queue.status.FetchAnother();
     if (ShouldCancel()) return true;
-    const double current_angle = control_loops::claw_queue.status->angle;
-    LOG_STRUCT(DEBUG, "Got claw status", *control_loops::claw_queue.status);
+    const double current_angle = claw_queue.status->angle;
+    LOG_STRUCT(DEBUG, "Got claw status", *claw_queue.status);
 
     if (current_angle > params.suck_angle ||
         ::std::abs(current_angle - params.pickup_angle) < kAngleEpsilon) {
@@ -51,7 +53,7 @@
 
   // Once above params.suck_angle, start sucking while lifting.
   {
-    auto message = control_loops::claw_queue.goal.MakeMessage();
+    auto message = claw_queue.goal.MakeMessage();
     message->angle = params.pickup_angle;
     message->max_velocity = kClawPickupVelocity;
     message->max_acceleration = kClawPickupAcceleration;
@@ -64,10 +66,10 @@
   }
 
   while (true) {
-    control_loops::claw_queue.status.FetchAnother();
+    claw_queue.status.FetchAnother();
     if (ShouldCancel()) return true;
-    const double current_angle = control_loops::claw_queue.status->angle;
-    LOG_STRUCT(DEBUG, "Got claw status", *control_loops::claw_queue.status);
+    const double current_angle = claw_queue.status->angle;
+    LOG_STRUCT(DEBUG, "Got claw status", *claw_queue.status);
 
     if (::std::abs(current_angle - params.pickup_angle) < kAngleEpsilon) {
       break;
@@ -76,7 +78,7 @@
 
   // Now that we have reached the upper height, come back down while intaking.
   {
-    auto message = control_loops::claw_queue.goal.MakeMessage();
+    auto message = claw_queue.goal.MakeMessage();
     message->angle = params.suck_angle_finish;
     message->max_velocity = kClawMoveDownVelocity;
     message->max_acceleration = kClawMoveDownAcceleration;
@@ -101,7 +103,7 @@
 
   // Lift the claw back up to pack the box back in.
   {
-    auto message = control_loops::claw_queue.goal.MakeMessage();
+    auto message = claw_queue.goal.MakeMessage();
     message->angle = params.pickup_finish_angle;
     message->max_velocity = kClawMoveUpVelocity;
     message->max_acceleration = kClawMoveUpAcceleration;
@@ -114,10 +116,10 @@
   }
 
   while (true) {
-    control_loops::claw_queue.status.FetchAnother();
+    claw_queue.status.FetchAnother();
     if (ShouldCancel()) return true;
-    const double current_angle = control_loops::claw_queue.status->angle;
-    LOG_STRUCT(DEBUG, "Got claw status", *control_loops::claw_queue.status);
+    const double current_angle = claw_queue.status->angle;
+    LOG_STRUCT(DEBUG, "Got claw status", *claw_queue.status);
 
     if (::std::abs(current_angle - params.pickup_finish_angle) <
         kAngleEpsilon) {
@@ -127,7 +129,7 @@
 
   // Stop the motors...
   {
-    auto message = control_loops::claw_queue.goal.MakeMessage();
+    auto message = claw_queue.goal.MakeMessage();
     message->angle = params.pickup_finish_angle;
     message->max_velocity = kClawMoveUpVelocity;
     message->max_acceleration = kClawMoveUpAcceleration;
@@ -145,8 +147,8 @@
 
 ::std::unique_ptr<PickupAction> MakePickupAction(const PickupParams& params) {
   return ::std::unique_ptr<PickupAction>(
-      new PickupAction(&::frc971::actors::pickup_action, params));
+      new PickupAction(&::y2015::actors::pickup_action, params));
 }
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/actors/pickup_actor.h b/y2015/actors/pickup_actor.h
index 1f09718..6b2822c 100644
--- a/y2015/actors/pickup_actor.h
+++ b/y2015/actors/pickup_actor.h
@@ -5,7 +5,7 @@
 #include "aos/common/actions/actor.h"
 #include "y2015/actors/pickup_action.q.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 
 class PickupActor
@@ -22,6 +22,6 @@
 ::std::unique_ptr<PickupAction> MakePickupAction(const PickupParams &params);
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
 
 #endif  // Y2015_ACTORS_PICKUP_ACTOR_H_
diff --git a/y2015/actors/pickup_actor_main.cc b/y2015/actors/pickup_actor_main.cc
index 0ddda42..f8b53f1 100644
--- a/y2015/actors/pickup_actor_main.cc
+++ b/y2015/actors/pickup_actor_main.cc
@@ -7,7 +7,7 @@
 int main(int /*argc*/, char* /*argv*/ []) {
   ::aos::Init(-1);
 
-  frc971::actors::PickupActor pickup(&::frc971::actors::pickup_action);
+  y2015::actors::PickupActor pickup(&::y2015::actors::pickup_action);
   pickup.Run();
 
   ::aos::Cleanup();
diff --git a/y2015/actors/score_action.q b/y2015/actors/score_action.q
index 5b14210..1937d5d 100644
--- a/y2015/actors/score_action.q
+++ b/y2015/actors/score_action.q
@@ -1,4 +1,4 @@
-package frc971.actors;
+package y2015.actors;
 
 import "aos/common/actions/actions.q";
 
diff --git a/y2015/actors/score_actor.cc b/y2015/actors/score_actor.cc
index 45c0bc4..92ddfac 100644
--- a/y2015/actors/score_actor.cc
+++ b/y2015/actors/score_actor.cc
@@ -10,11 +10,11 @@
 #include "y2015/constants.h"
 #include "y2015/control_loops/fridge/fridge.q.h"
 
-using ::frc971::control_loops::fridge_queue;
+using ::y2015::control_loops::fridge::fridge_queue;
 
 namespace chrono = ::std::chrono;
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 namespace {
 
@@ -245,7 +245,7 @@
                           double max_x_velocity, double max_y_velocity,
                           double max_x_acceleration,
                           double max_y_acceleration) {
-  auto new_fridge_goal = control_loops::fridge_queue.goal.MakeMessage();
+  auto new_fridge_goal = fridge_queue.goal.MakeMessage();
   new_fridge_goal->x = x;
   new_fridge_goal->y = y;
   new_fridge_goal->profiling_type = 1;
@@ -299,8 +299,8 @@
 
 ::std::unique_ptr<ScoreAction> MakeScoreAction(const ScoreParams& params) {
   return ::std::unique_ptr<ScoreAction>(
-      new ScoreAction(&::frc971::actors::score_action, params));
+      new ScoreAction(&::y2015::actors::score_action, params));
 }
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/actors/score_actor.h b/y2015/actors/score_actor.h
index c9ed71f..6202403 100644
--- a/y2015/actors/score_actor.h
+++ b/y2015/actors/score_actor.h
@@ -6,7 +6,7 @@
 #include "y2015/util/kinematics.h"
 #include "y2015/actors/score_action.q.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 
 class ScoreActor
@@ -38,6 +38,6 @@
 ::std::unique_ptr<ScoreAction> MakeScoreAction(const ScoreParams &params);
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
 
 #endif
diff --git a/y2015/actors/score_actor_main.cc b/y2015/actors/score_actor_main.cc
index 754d3bd..d62589d 100644
--- a/y2015/actors/score_actor_main.cc
+++ b/y2015/actors/score_actor_main.cc
@@ -7,7 +7,7 @@
 int main(int /*argc*/, char* /*argv*/ []) {
   ::aos::Init(-1);
 
-  frc971::actors::ScoreActor score(&::frc971::actors::score_action);
+  y2015::actors::ScoreActor score(&::y2015::actors::score_action);
   score.Run();
 
   ::aos::Cleanup();
diff --git a/y2015/actors/score_actor_test.cc b/y2015/actors/score_actor_test.cc
index f859875..25d1bc2 100644
--- a/y2015/actors/score_actor_test.cc
+++ b/y2015/actors/score_actor_test.cc
@@ -13,24 +13,26 @@
 
 using ::aos::time::Time;
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 namespace testing {
 
+using ::y2015::control_loops::fridge::fridge_queue;
+
 class ScoreActionTest : public ::testing::Test {
  protected:
   ScoreActionTest() {
-    frc971::actors::score_action.goal.Clear();
-    frc971::actors::score_action.status.Clear();
-    control_loops::fridge_queue.status.Clear();
-    control_loops::fridge_queue.goal.Clear();
+    y2015::actors::score_action.goal.Clear();
+    y2015::actors::score_action.status.Clear();
+    fridge_queue.status.Clear();
+    fridge_queue.goal.Clear();
   }
 
   virtual ~ScoreActionTest() {
-    frc971::actors::score_action.goal.Clear();
-    frc971::actors::score_action.status.Clear();
-    control_loops::fridge_queue.status.Clear();
-    control_loops::fridge_queue.goal.Clear();
+    y2015::actors::score_action.goal.Clear();
+    y2015::actors::score_action.status.Clear();
+    fridge_queue.status.Clear();
+    fridge_queue.goal.Clear();
   }
 
   // Bring up and down Core.
@@ -40,12 +42,12 @@
 // Tests that cancel stops not only the score action, but also the underlying
 // profile action.
 TEST_F(ScoreActionTest, PlaceTheStackCancel) {
-  ScoreActor score(&frc971::actors::score_action);
+  ScoreActor score(&y2015::actors::score_action);
 
-  frc971::actors::score_action.goal.MakeWithBuilder().run(true).Send();
+  y2015::actors::score_action.goal.MakeWithBuilder().run(true).Send();
 
   // Tell it the fridge is zeroed.
-  ASSERT_TRUE(control_loops::fridge_queue.status.MakeWithBuilder()
+  ASSERT_TRUE(fridge_queue.status.MakeWithBuilder()
                   .zeroed(true)
                   .angle(0.0)
                   .height(0.0)
@@ -56,7 +58,7 @@
 
   // the action has started, so now cancel it and it should cancel
   // the underlying profile
-  frc971::actors::score_action.goal.MakeWithBuilder().run(false).Send();
+  y2015::actors::score_action.goal.MakeWithBuilder().run(false).Send();
 
   // let the action start running, if we return from this call it has worked.
   const ScoreParams params = {true, true, 0.14, 0.13, -0.7, -0.7, -0.10, -0.5, 0.1};
@@ -68,12 +70,12 @@
 // Tests that cancel stops not only the score action, but also the underlying
 // profile action.
 TEST_F(ScoreActionTest, MoveStackIntoPositionCancel) {
-  ScoreActor score(&frc971::actors::score_action);
+  ScoreActor score(&y2015::actors::score_action);
 
-  frc971::actors::score_action.goal.MakeWithBuilder().run(true).Send();
+  y2015::actors::score_action.goal.MakeWithBuilder().run(true).Send();
 
   // Tell it the fridge is zeroed.
-  ASSERT_TRUE(control_loops::fridge_queue.status.MakeWithBuilder()
+  ASSERT_TRUE(fridge_queue.status.MakeWithBuilder()
                   .zeroed(true)
                   .angle(0.0)
                   .height(0.0)
@@ -84,7 +86,7 @@
 
   // the action has started, so now cancel it and it should cancel
   // the underlying profile
-  frc971::actors::score_action.goal.MakeWithBuilder().run(false).Send();
+  y2015::actors::score_action.goal.MakeWithBuilder().run(false).Send();
 
   // let the action start running, if we return from this call it has worked.
   const ScoreParams params = {false, true, 0.14, 0.13, -0.7, -0.7, -0.10, -0.5, 0.1};
@@ -95,4 +97,4 @@
 
 }  // namespace testing
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/actors/stack_action.q b/y2015/actors/stack_action.q
index b4389b8..814b6ba 100644
--- a/y2015/actors/stack_action.q
+++ b/y2015/actors/stack_action.q
@@ -1,4 +1,4 @@
-package frc971.actors;
+package y2015.actors;
 
 import "aos/common/actions/actions.q";
 import "y2015/actors/stack_action_params.q";
diff --git a/y2015/actors/stack_action_params.q b/y2015/actors/stack_action_params.q
index 3958f7d..a7be764 100644
--- a/y2015/actors/stack_action_params.q
+++ b/y2015/actors/stack_action_params.q
@@ -1,4 +1,4 @@
-package frc971.actors;
+package y2015.actors;
 
 // Parameters to send with start.
 struct StackParams {
diff --git a/y2015/actors/stack_actor.cc b/y2015/actors/stack_actor.cc
index 539018f..20dc66a 100644
--- a/y2015/actors/stack_actor.cc
+++ b/y2015/actors/stack_actor.cc
@@ -8,7 +8,7 @@
 #include "y2015/constants.h"
 #include "y2015/control_loops/claw/claw.q.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 namespace {
 constexpr ProfileParams kArmWithStackMove{1.75, 4.20};
@@ -20,23 +20,26 @@
 constexpr ProfileParams kReallyFastElevatorMove{1.2, 6.0};
 }  // namespace
 
+using ::y2015::control_loops::claw_queue;
+using ::y2015::control_loops::fridge::fridge_queue;
+
 StackActor::StackActor(StackActionQueueGroup *queues)
     : FridgeActorBase<StackActionQueueGroup>(queues) {}
 
 bool StackActor::RunAction(const StackParams &params) {
   const auto &values = constants::GetValues();
 
-  control_loops::fridge_queue.status.FetchLatest();
-  if (!control_loops::fridge_queue.status.get()) {
+  fridge_queue.status.FetchLatest();
+  if (!fridge_queue.status.get()) {
     LOG(ERROR, "Got no fridge status packet.\n");
     return false;
   }
 
   // If we are really high, probably have a can.  Move over before down.
-  if (control_loops::fridge_queue.status->goal_height >
+  if (fridge_queue.status->goal_height >
       params.over_box_before_place_height + 0.1) {
     // Set the current stack down on top of the bottom box.
-    DoFridgeProfile(control_loops::fridge_queue.status->goal_height, 0.0,
+    DoFridgeProfile(fridge_queue.status->goal_height, 0.0,
                     kSlowElevatorMove, kArmWithStackMove, true);
     if (ShouldCancel()) return true;
   }
@@ -50,15 +53,15 @@
   if (!params.only_place) {
     // Move the claw out of the way only if we are supposed to pick up.
     bool send_goal = true;
-    control_loops::claw_queue.status.FetchLatest();
-    if (control_loops::claw_queue.status.get()) {
-      if (control_loops::claw_queue.status->goal_angle <
+    claw_queue.status.FetchLatest();
+    if (claw_queue.status.get()) {
+      if (claw_queue.status->goal_angle <
           params.claw_out_angle) {
         send_goal = false;
       }
     }
     if (send_goal) {
-      auto message = control_loops::claw_queue.goal.MakeMessage();
+      auto message = claw_queue.goal.MakeMessage();
       message->angle = params.claw_out_angle;
       message->angular_velocity = 0.0;
       message->intake = 0.0;
@@ -89,8 +92,8 @@
 
 ::std::unique_ptr<StackAction> MakeStackAction(const StackParams &params) {
   return ::std::unique_ptr<StackAction>(
-      new StackAction(&::frc971::actors::stack_action, params));
+      new StackAction(&::y2015::actors::stack_action, params));
 }
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/actors/stack_actor.h b/y2015/actors/stack_actor.h
index 5f2f7fb..986c35b 100644
--- a/y2015/actors/stack_actor.h
+++ b/y2015/actors/stack_actor.h
@@ -10,7 +10,7 @@
 #include "y2015/actors/stack_action.q.h"
 #include "y2015/actors/fridge_profile_lib.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 
 class StackActor : public FridgeActorBase<StackActionQueueGroup> {
@@ -26,6 +26,6 @@
 ::std::unique_ptr<StackAction> MakeStackAction(const StackParams &params);
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
 
 #endif
diff --git a/y2015/actors/stack_actor_main.cc b/y2015/actors/stack_actor_main.cc
index 03a3055..cac8535 100644
--- a/y2015/actors/stack_actor_main.cc
+++ b/y2015/actors/stack_actor_main.cc
@@ -7,7 +7,7 @@
 int main(int /*argc*/, char* /*argv*/ []) {
   ::aos::Init(-1);
 
-  ::frc971::actors::StackActor stack(&::frc971::actors::stack_action);
+  ::y2015::actors::StackActor stack(&::y2015::actors::stack_action);
   stack.Run();
 
   ::aos::Cleanup();
diff --git a/y2015/actors/stack_actor_test.cc b/y2015/actors/stack_actor_test.cc
index 35b3604..c62b6ce 100644
--- a/y2015/actors/stack_actor_test.cc
+++ b/y2015/actors/stack_actor_test.cc
@@ -15,24 +15,26 @@
 
 using ::aos::time::Time;
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 namespace testing {
 
+using ::y2015::control_loops::fridge::fridge_queue;
+
 class StackActionTest : public ::testing::Test {
  protected:
   StackActionTest() {
-    frc971::actors::stack_action.goal.Clear();
-    frc971::actors::stack_action.status.Clear();
-    control_loops::fridge_queue.status.Clear();
-    control_loops::fridge_queue.goal.Clear();
+    y2015::actors::stack_action.goal.Clear();
+    y2015::actors::stack_action.status.Clear();
+    fridge_queue.status.Clear();
+    fridge_queue.goal.Clear();
   }
 
   virtual ~StackActionTest() {
-    frc971::actors::stack_action.goal.Clear();
-    frc971::actors::stack_action.status.Clear();
-    control_loops::fridge_queue.status.Clear();
-    control_loops::fridge_queue.goal.Clear();
+    y2015::actors::stack_action.goal.Clear();
+    y2015::actors::stack_action.status.Clear();
+    fridge_queue.status.Clear();
+    fridge_queue.goal.Clear();
   }
 
   // Bring up and down Core.
@@ -42,12 +44,12 @@
 // Tests that cancel stops not only the stack action, but the underlying profile
 // action.
 TEST_F(StackActionTest, StackCancel) {
-  StackActor stack(&frc971::actors::stack_action);
+  StackActor stack(&y2015::actors::stack_action);
 
-  frc971::actors::stack_action.goal.MakeWithBuilder().run(true).Send();
+  y2015::actors::stack_action.goal.MakeWithBuilder().run(true).Send();
 
   // tell it the fridge is zeroed
-  control_loops::fridge_queue.status.MakeWithBuilder()
+  fridge_queue.status.MakeWithBuilder()
       .zeroed(true)
       .angle(0.0)
       .height(0.0)
@@ -58,7 +60,7 @@
 
   // the action has started, so now cancel it and it should cancel
   // the underlying profile
-  frc971::actors::stack_action.goal.MakeWithBuilder().run(false).Send();
+  y2015::actors::stack_action.goal.MakeWithBuilder().run(false).Send();
 
   // let the action start running, if we return from this call it has worked.
   StackParams s;
@@ -69,4 +71,4 @@
 
 }  // namespace testing
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/actors/stack_and_hold_action.q b/y2015/actors/stack_and_hold_action.q
index 42e98ed..4dd82fc 100644
--- a/y2015/actors/stack_and_hold_action.q
+++ b/y2015/actors/stack_and_hold_action.q
@@ -1,4 +1,4 @@
-package frc971.actors;
+package y2015.actors;
 
 import "aos/common/actions/actions.q";
 import "y2015/actors/stack_action_params.q";
diff --git a/y2015/actors/stack_and_hold_actor.cc b/y2015/actors/stack_and_hold_actor.cc
index 41a650c..e12b54c 100644
--- a/y2015/actors/stack_and_hold_actor.cc
+++ b/y2015/actors/stack_and_hold_actor.cc
@@ -9,7 +9,7 @@
 #include "y2015/control_loops/claw/claw.q.h"
 #include "y2015/actors/stack_actor.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 namespace {
 constexpr ProfileParams kReallySlowArmMove{0.1, 1.0};
@@ -21,6 +21,8 @@
 
 namespace chrono = ::std::chrono;
 
+using ::y2015::control_loops::claw_queue;
+
 StackAndHoldActor::StackAndHoldActor(StackAndHoldActionQueueGroup *queues)
     : FridgeActorBase<StackAndHoldActionQueueGroup>(queues) {}
 
@@ -32,15 +34,15 @@
     // Move the arm out of the way.
     {
       bool send_goal = true;
-      control_loops::claw_queue.status.FetchLatest();
-      if (control_loops::claw_queue.status.get()) {
-        if (control_loops::claw_queue.status->goal_angle <
+      claw_queue.status.FetchLatest();
+      if (claw_queue.status.get()) {
+        if (claw_queue.status->goal_angle <
             params.claw_out_angle) {
           send_goal = false;
         }
       }
       if (send_goal) {
-        auto message = control_loops::claw_queue.goal.MakeMessage();
+        auto message = claw_queue.goal.MakeMessage();
         message->angle = params.claw_out_angle;
         message->angular_velocity = 0.0;
         message->intake = 0.0;
@@ -103,7 +105,7 @@
 
   if (params.place_not_stack) {
     // Clamp the stack with the claw.
-    auto message = control_loops::claw_queue.goal.MakeMessage();
+    auto message = claw_queue.goal.MakeMessage();
     message->angle = params.claw_clamp_angle;
     message->angular_velocity = 0.0;
     message->intake = 0.0;
@@ -129,8 +131,8 @@
 ::std::unique_ptr<StackAndHoldAction> MakeStackAndHoldAction(
     const StackAndHoldParams &params) {
   return ::std::unique_ptr<StackAndHoldAction>(
-      new StackAndHoldAction(&::frc971::actors::stack_and_hold_action, params));
+      new StackAndHoldAction(&::y2015::actors::stack_and_hold_action, params));
 }
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/actors/stack_and_hold_actor.h b/y2015/actors/stack_and_hold_actor.h
index b3bf2c5..4b4cf9a 100644
--- a/y2015/actors/stack_and_hold_actor.h
+++ b/y2015/actors/stack_and_hold_actor.h
@@ -10,7 +10,7 @@
 #include "y2015/actors/stack_and_hold_action.q.h"
 #include "y2015/actors/fridge_profile_lib.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 
 class StackAndHoldActor : public FridgeActorBase<StackAndHoldActionQueueGroup> {
@@ -28,6 +28,6 @@
     const StackAndHoldParams &params);
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
 
 #endif  // Y2015_ACTORS_STACK_AND_HOLD_ACTOR_H_
diff --git a/y2015/actors/stack_and_hold_actor_main.cc b/y2015/actors/stack_and_hold_actor_main.cc
index b193dba..925afe9 100644
--- a/y2015/actors/stack_and_hold_actor_main.cc
+++ b/y2015/actors/stack_and_hold_actor_main.cc
@@ -7,8 +7,8 @@
 int main(int /*argc*/, char* /*argv*/ []) {
   ::aos::Init(-1);
 
-  ::frc971::actors::StackAndHoldActor stack_and_hold(
-      &::frc971::actors::stack_and_hold_action);
+  ::y2015::actors::StackAndHoldActor stack_and_hold(
+      &::y2015::actors::stack_and_hold_action);
   stack_and_hold.Run();
 
   ::aos::Cleanup();
diff --git a/y2015/actors/stack_and_lift_action.q b/y2015/actors/stack_and_lift_action.q
index 0ec971b..85f2a4f 100644
--- a/y2015/actors/stack_and_lift_action.q
+++ b/y2015/actors/stack_and_lift_action.q
@@ -1,4 +1,4 @@
-package frc971.actors;
+package y2015.actors;
 
 import "aos/common/actions/actions.q";
 
diff --git a/y2015/actors/stack_and_lift_actor.cc b/y2015/actors/stack_and_lift_actor.cc
index 84b5c2c..24eb11e 100644
--- a/y2015/actors/stack_and_lift_actor.cc
+++ b/y2015/actors/stack_and_lift_actor.cc
@@ -11,20 +11,22 @@
 #include "y2015/actors/stack_actor.h"
 #include "y2015/actors/lift_actor.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 
 namespace chrono = ::std::chrono;
+using ::y2015::control_loops::claw_queue;
+using ::y2015::control_loops::fridge::fridge_queue;
 
 StackAndLiftActor::StackAndLiftActor(StackAndLiftActionQueueGroup *queues)
     : FridgeActorBase<StackAndLiftActionQueueGroup>(queues) {}
 
 bool StackAndLiftActor::RunAction(const StackAndLiftParams &params) {
-  control_loops::claw_queue.goal.FetchLatest();
+  claw_queue.goal.FetchLatest();
   double claw_goal_start;
   bool have_claw_goal_start;
-  if (control_loops::claw_queue.goal.get()) {
-    claw_goal_start = control_loops::claw_queue.goal->angle;
+  if (claw_queue.goal.get()) {
+    claw_goal_start = claw_queue.goal->angle;
     have_claw_goal_start = true;
   } else {
     claw_goal_start = 0;
@@ -51,12 +53,12 @@
   }
 
   {
-    control_loops::fridge_queue.goal.FetchLatest();
-    if (!control_loops::fridge_queue.goal.get()) {
+    fridge_queue.goal.FetchLatest();
+    if (!fridge_queue.goal.get()) {
       return false;
     }
-    auto new_fridge_goal = control_loops::fridge_queue.goal.MakeMessage();
-    *new_fridge_goal = *control_loops::fridge_queue.goal;
+    auto new_fridge_goal = fridge_queue.goal.MakeMessage();
+    *new_fridge_goal = *fridge_queue.goal;
     new_fridge_goal->grabbers.top_front = params.grab_after_stack;
     new_fridge_goal->grabbers.top_back = params.grab_after_stack;
     new_fridge_goal->grabbers.bottom_front = params.grab_after_stack;
@@ -92,12 +94,12 @@
   }
 
   {
-    control_loops::fridge_queue.goal.FetchLatest();
-    if (!control_loops::fridge_queue.goal.get()) {
+    fridge_queue.goal.FetchLatest();
+    if (!fridge_queue.goal.get()) {
       return false;
     }
-    auto new_fridge_goal = control_loops::fridge_queue.goal.MakeMessage();
-    *new_fridge_goal = *control_loops::fridge_queue.goal;
+    auto new_fridge_goal = fridge_queue.goal.MakeMessage();
+    *new_fridge_goal = *fridge_queue.goal;
     new_fridge_goal->grabbers.top_front = params.grab_after_lift;
     new_fridge_goal->grabbers.top_back = params.grab_after_lift;
     new_fridge_goal->grabbers.bottom_front = params.grab_after_lift;
@@ -113,8 +115,8 @@
 ::std::unique_ptr<StackAndLiftAction> MakeStackAndLiftAction(
     const StackAndLiftParams &params) {
   return ::std::unique_ptr<StackAndLiftAction>(
-      new StackAndLiftAction(&::frc971::actors::stack_and_lift_action, params));
+      new StackAndLiftAction(&::y2015::actors::stack_and_lift_action, params));
 }
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/actors/stack_and_lift_actor.h b/y2015/actors/stack_and_lift_actor.h
index 1d5fe29..f93cc39 100644
--- a/y2015/actors/stack_and_lift_actor.h
+++ b/y2015/actors/stack_and_lift_actor.h
@@ -10,7 +10,7 @@
 #include "y2015/actors/stack_and_lift_action.q.h"
 #include "y2015/actors/fridge_profile_lib.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace actors {
 
 class StackAndLiftActor : public FridgeActorBase<StackAndLiftActionQueueGroup> {
@@ -28,6 +28,6 @@
     const StackAndLiftParams &params);
 
 }  // namespace actors
-}  // namespace frc971
+}  // namespace y2015
 
 #endif  // Y2015_ACTORS_STACK_AND_LIFT_ACTOR_H_
diff --git a/y2015/actors/stack_and_lift_actor_main.cc b/y2015/actors/stack_and_lift_actor_main.cc
index 2118a32..b2f941d 100644
--- a/y2015/actors/stack_and_lift_actor_main.cc
+++ b/y2015/actors/stack_and_lift_actor_main.cc
@@ -7,8 +7,8 @@
 int main(int /*argc*/, char* /*argv*/ []) {
   ::aos::Init(-1);
 
-  ::frc971::actors::StackAndLiftActor stack_and_lift(
-      &::frc971::actors::stack_and_lift_action);
+  ::y2015::actors::StackAndLiftActor stack_and_lift(
+      &::y2015::actors::stack_and_lift_action);
   stack_and_lift.Run();
 
   ::aos::Cleanup();
diff --git a/y2015/autonomous/auto.cc b/y2015/autonomous/auto.cc
index e074356..198cc97 100644
--- a/y2015/autonomous/auto.cc
+++ b/y2015/autonomous/auto.cc
@@ -20,11 +20,11 @@
 #include "y2015/actors/held_to_lift_actor.h"
 
 using ::aos::time::Time;
-using ::frc971::control_loops::claw_queue;
-using ::frc971::control_loops::fridge_queue;
 using ::frc971::control_loops::drivetrain_queue;
+using ::y2015::control_loops::claw_queue;
+using ::y2015::control_loops::fridge::fridge_queue;
 
-namespace frc971 {
+namespace y2015 {
 namespace autonomous {
 
 constexpr double kClawAutoVelocity = 3.00;
@@ -56,7 +56,7 @@
 
 void StopDrivetrain() {
   LOG(INFO, "Stopping the drivetrain\n");
-  control_loops::drivetrain_queue.goal.MakeWithBuilder()
+  drivetrain_queue.goal.MakeWithBuilder()
       .control_loop_driving(true)
       .left_goal(left_initial_position)
       .left_velocity_goal(0)
@@ -68,7 +68,7 @@
 
 void ResetDrivetrain() {
   LOG(INFO, "resetting the drivetrain\n");
-  control_loops::drivetrain_queue.goal.MakeWithBuilder()
+  drivetrain_queue.goal.MakeWithBuilder()
       .control_loop_driving(false)
       //.highgear(false)
       .steering(0.0)
@@ -100,7 +100,7 @@
                       theta * constants::GetValues().turn_width / 2.0);
   double right_goal = (right_initial_position + distance +
                        theta * constants::GetValues().turn_width / 2.0);
-  control_loops::drivetrain_queue.goal.MakeWithBuilder()
+  drivetrain_queue.goal.MakeWithBuilder()
       .control_loop_driving(true)
       .left_goal(left_goal)
       .right_goal(right_goal)
@@ -114,13 +114,13 @@
 void WaitUntilNear(double distance) {
   while (true) {
     if (ShouldExitAuto()) return;
-    control_loops::drivetrain_queue.status.FetchAnother();
-    double left_error = ::std::abs(
-        left_initial_position -
-        control_loops::drivetrain_queue.status->estimated_left_position);
-    double right_error = ::std::abs(
-        right_initial_position -
-        control_loops::drivetrain_queue.status->estimated_right_position);
+    drivetrain_queue.status.FetchAnother();
+    double left_error =
+        ::std::abs(left_initial_position -
+                   drivetrain_queue.status->estimated_left_position);
+    double right_error =
+        ::std::abs(right_initial_position -
+                   drivetrain_queue.status->estimated_right_position);
     const double kPositionThreshold = 0.05 + distance;
     if (right_error < kPositionThreshold && left_error < kPositionThreshold) {
       LOG(INFO, "At the goal\n");
@@ -140,11 +140,12 @@
 const ProfileParams kRaceDrive = {2.0, 2.0};
 const ProfileParams kRaceBackupDrive = {2.0, 5.0};
 
-::std::unique_ptr<::frc971::actors::DrivetrainAction> SetDriveGoal(
-    double distance, const ProfileParams drive_params, double theta = 0, const ProfileParams &turn_params = kFastTurn) {
+::std::unique_ptr<::y2015::actors::DrivetrainAction> SetDriveGoal(
+    double distance, const ProfileParams drive_params, double theta = 0,
+    const ProfileParams &turn_params = kFastTurn) {
   LOG(INFO, "Driving to %f\n", distance);
 
-  ::frc971::actors::DrivetrainActionParams params;
+  ::y2015::actors::DrivetrainActionParams params;
   params.left_initial_position = left_initial_position;
   params.right_initial_position = right_initial_position;
   params.y_offset = distance;
@@ -201,28 +202,26 @@
 void WaitForFridge() {
   while (true) {
     if (ShouldExitAuto()) return;
-    control_loops::fridge_queue.status.FetchAnother();
+    fridge_queue.status.FetchAnother();
 
     constexpr double kProfileError = 1e-5;
     constexpr double kXEpsilon = 0.03, kYEpsilon = 0.03;
 
-    if (control_loops::fridge_queue.status->state != 4) {
+    if (fridge_queue.status->state != 4) {
       LOG(ERROR, "Fridge no longer running, aborting action\n");
       return;
     }
 
-    if (::std::abs(control_loops::fridge_queue.status->goal_x - fridge_goal_x) <
+    if (::std::abs(fridge_queue.status->goal_x - fridge_goal_x) <
             kProfileError &&
-        ::std::abs(control_loops::fridge_queue.status->goal_y - fridge_goal_y) <
+        ::std::abs(fridge_queue.status->goal_y - fridge_goal_y) <
             kProfileError &&
-        ::std::abs(control_loops::fridge_queue.status->goal_x_velocity) <
-            kProfileError &&
-        ::std::abs(control_loops::fridge_queue.status->goal_y_velocity) <
-            kProfileError) {
+        ::std::abs(fridge_queue.status->goal_x_velocity) < kProfileError &&
+        ::std::abs(fridge_queue.status->goal_y_velocity) < kProfileError) {
       LOG(INFO, "Profile done.\n");
-      if (::std::abs(control_loops::fridge_queue.status->x - fridge_goal_x) <
+      if (::std::abs(fridge_queue.status->x - fridge_goal_x) <
               kXEpsilon &&
-          ::std::abs(control_loops::fridge_queue.status->y - fridge_goal_y) <
+          ::std::abs(fridge_queue.status->y - fridge_goal_y) <
               kYEpsilon) {
         LOG(INFO, "Near goal, done.\n");
         return;
@@ -232,11 +231,9 @@
 }
 
 void InitializeEncoders() {
-  control_loops::drivetrain_queue.status.FetchAnother();
-  left_initial_position =
-      control_loops::drivetrain_queue.status->estimated_left_position;
-  right_initial_position =
-      control_loops::drivetrain_queue.status->estimated_right_position;
+  drivetrain_queue.status.FetchAnother();
+  left_initial_position = drivetrain_queue.status->estimated_left_position;
+  right_initial_position = drivetrain_queue.status->estimated_right_position;
 }
 
 void WaitForClawZero() {
@@ -256,9 +253,9 @@
 void WaitForFridgeZero() {
   LOG(INFO, "Waiting for claw to zero.\n");
   while (true) {
-    control_loops::fridge_queue.status.FetchAnother();
-    LOG_STRUCT(DEBUG, "Got fridge status", *control_loops::fridge_queue.status);
-    if (control_loops::fridge_queue.status->zeroed) {
+    fridge_queue.status.FetchAnother();
+    LOG_STRUCT(DEBUG, "Got fridge status", *fridge_queue.status);
+    if (fridge_queue.status->zeroed) {
       LOG(INFO, "Fridge zeroed\n");
       return;
     }
@@ -308,10 +305,10 @@
 }
 
 void TripleCanAuto() {
-  ::std::unique_ptr<::frc971::actors::DrivetrainAction> drive;
-  ::std::unique_ptr<::frc971::actors::PickupAction> pickup;
-  ::std::unique_ptr<::frc971::actors::StackAction> stack;
-  ::std::unique_ptr<::frc971::actors::HeldToLiftAction> lift;
+  ::std::unique_ptr<::y2015::actors::DrivetrainAction> drive;
+  ::std::unique_ptr<::y2015::actors::PickupAction> pickup;
+  ::std::unique_ptr<::y2015::actors::StackAction> stack;
+  ::std::unique_ptr<::y2015::actors::HeldToLiftAction> lift;
 
   actors::PickupParams pickup_params;
   // Lift to here initially.
@@ -581,7 +578,7 @@
   InitializeEncoders();
   ResetDrivetrain();
   if (ShouldExitAuto()) return;
-  control_loops::drivetrain_queue.goal.MakeWithBuilder()
+  drivetrain_queue.goal.MakeWithBuilder()
       .control_loop_driving(true)
       //.highgear(false)
       .steering(0.0)
@@ -605,4 +602,4 @@
 }
 
 }  // namespace autonomous
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/autonomous/auto.h b/y2015/autonomous/auto.h
index 7733715..fb7b033 100644
--- a/y2015/autonomous/auto.h
+++ b/y2015/autonomous/auto.h
@@ -1,12 +1,12 @@
 #ifndef Y2015_AUTONOMOUS_AUTO_H_
 #define Y2015_AUTONOMOUS_AUTO_H_
 
-namespace frc971 {
+namespace y2015 {
 namespace autonomous {
 
 void HandleAuto();
 
 }  // namespace autonomous
-}  // namespace frc971
+}  // namespace y2015
 
 #endif  // Y2015_AUTONOMOUS_AUTO_H_
diff --git a/y2015/autonomous/auto.q b/y2015/autonomous/auto.q
index a2d9270..6d453aa 100644
--- a/y2015/autonomous/auto.q
+++ b/y2015/autonomous/auto.q
@@ -1,4 +1,4 @@
-package frc971.autonomous;
+package y2015.autonomous;
 
 message CanGrabberControl {
   // Voltage to send out to can grabbers.
diff --git a/y2015/autonomous/auto_main.cc b/y2015/autonomous/auto_main.cc
index 776067a..d9437d1 100644
--- a/y2015/autonomous/auto_main.cc
+++ b/y2015/autonomous/auto_main.cc
@@ -25,7 +25,7 @@
     }
     LOG(INFO, "Starting auto mode\n");
     ::aos::time::Time start_time = ::aos::time::Time::Now();
-    ::frc971::autonomous::HandleAuto();
+    ::y2015::autonomous::HandleAuto();
 
     ::aos::time::Time elapsed_time = ::aos::time::Time::Now() - start_time;
     LOG(INFO, "Auto mode exited in %f, waiting for it to finish.\n",
diff --git a/y2015/constants.cc b/y2015/constants.cc
index 66feb01..7ccb020 100644
--- a/y2015/constants.cc
+++ b/y2015/constants.cc
@@ -22,7 +22,7 @@
 #define M_PI 3.14159265358979323846
 #endif
 
-namespace frc971 {
+namespace y2015 {
 namespace constants {
 namespace {
 
@@ -36,13 +36,15 @@
 const double kLowGearRatio = kDrivetrainEncoderRatio * 20.0 / 50.0;
 const double kHighGearRatio = kLowGearRatio;
 
-const ShifterHallEffect kCompRightDriveShifter{555, 657, 660, 560, 0.2, 0.7};
-const ShifterHallEffect kCompLeftDriveShifter{555, 660, 644, 552, 0.2, 0.7};
+const ::frc971::constants::ShifterHallEffect kCompRightDriveShifter{
+    555, 657, 660, 560, 0.2, 0.7};
+const ::frc971::constants::ShifterHallEffect kCompLeftDriveShifter{
+    555, 660, 644, 552, 0.2, 0.7};
 
-const ShifterHallEffect kPracticeRightDriveShifter{2.95, 3.95, 3.95,
-                                                   2.95, 0.2,  0.7};
-const ShifterHallEffect kPracticeLeftDriveShifter{2.95, 4.2, 3.95,
-                                                  3.0,  0.2, 0.7};
+const ::frc971::constants::ShifterHallEffect kPracticeRightDriveShifter{
+    2.95, 3.95, 3.95, 2.95, 0.2, 0.7};
+const ::frc971::constants::ShifterHallEffect kPracticeLeftDriveShifter{
+    2.95, 4.2, 3.95, 3.0, 0.2, 0.7};
 const double kToteHeight = 0.3;
 
 // Set by Daniel on 2/13/15.
@@ -376,4 +378,4 @@
 }
 
 }  // namespace constants
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/constants.h b/y2015/constants.h
index ce08e46..eed5616 100644
--- a/y2015/constants.h
+++ b/y2015/constants.h
@@ -7,7 +7,7 @@
 #include "frc971/shifter_hall_effect.h"
 #include "frc971/constants.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace constants {
 
 // Has all of the numbers that change for both robots and makes it easy to
@@ -45,7 +45,7 @@
   // gear.
   double low_gear_ratio;
   double high_gear_ratio;
-  ShifterHallEffect left_drive, right_drive;
+  ::frc971::constants::ShifterHallEffect left_drive, right_drive;
   bool clutch_transmission;
 
   double turn_width;
@@ -68,7 +68,7 @@
 
   struct Claw {
     Range wrist;
-    ZeroingConstants zeroing;
+    ::frc971::constants::ZeroingConstants zeroing;
     // The value to add to potentiometer readings after they have been converted
     // to radians so that the resulting value is 0 when the claw is at absolute
     // 0 (horizontal straight out the front).
@@ -86,10 +86,10 @@
     Range elevator;
     Range arm;
 
-    ZeroingConstants left_elev_zeroing;
-    ZeroingConstants right_elev_zeroing;
-    ZeroingConstants left_arm_zeroing;
-    ZeroingConstants right_arm_zeroing;
+    ::frc971::constants::ZeroingConstants left_elev_zeroing;
+    ::frc971::constants::ZeroingConstants right_elev_zeroing;
+    ::frc971::constants::ZeroingConstants left_arm_zeroing;
+    ::frc971::constants::ZeroingConstants right_arm_zeroing;
 
     // Values to add to scaled potentiometer readings so 0 lines up with the
     // physical absolute 0.
@@ -143,6 +143,6 @@
 const Values &GetValuesForTeam(uint16_t team_number);
 
 }  // namespace constants
-}  // namespace frc971
+}  // namespace y2015
 
 #endif  // Y2015_CONSTANTS_H_
diff --git a/y2015/control_loops/claw/claw.cc b/y2015/control_loops/claw/claw.cc
index ad8aaee..b4a5a7b 100644
--- a/y2015/control_loops/claw/claw.cc
+++ b/y2015/control_loops/claw/claw.cc
@@ -9,7 +9,7 @@
 #include "y2015/control_loops/claw/claw_motor_plant.h"
 #include "aos/common/util/trapezoid_profile.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace control_loops {
 
 using ::aos::time::Time;
@@ -280,7 +280,8 @@
   status->zeroed = state_ == RUNNING;
   status->estopped = state_ == ESTOP;
   status->state = state_;
-  zeroing::PopulateEstimatorState(claw_estimator_, &status->zeroing_state);
+  ::frc971::zeroing::PopulateEstimatorState(claw_estimator_,
+                                            &status->zeroing_state);
 
   status->angle = claw_loop_->X_hat(0, 0);
   status->angular_velocity = claw_loop_->X_hat(1, 0);
@@ -311,4 +312,4 @@
 }
 
 }  // namespace control_loops
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/control_loops/claw/claw.h b/y2015/control_loops/claw/claw.h
index 02e5398..58c3cc1 100644
--- a/y2015/control_loops/claw/claw.h
+++ b/y2015/control_loops/claw/claw.h
@@ -11,7 +11,7 @@
 #include "y2015/control_loops/claw/claw_motor_plant.h"
 #include "frc971/zeroing/zeroing.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace control_loops {
 namespace testing {
 class ClawTest_DisabledGoal_Test;
@@ -95,7 +95,7 @@
   // Latest position from queue.
   control_loops::ClawQueue::Position current_position_;
   // Zeroing estimator for claw.
-  zeroing::ZeroingEstimator claw_estimator_;
+  ::frc971::zeroing::ZeroingEstimator claw_estimator_;
 
   // The goal for the claw.
   double claw_goal_ = 0.0;
@@ -111,6 +111,6 @@
 };
 
 }  // namespace control_loops
-}  // namespace frc971
+}  // namespace y2015
 
 #endif  // Y2015_CONTROL_LOOPS_CLAW_H_
diff --git a/y2015/control_loops/claw/claw.q b/y2015/control_loops/claw/claw.q
index 8da1c20..e1d444d 100644
--- a/y2015/control_loops/claw/claw.q
+++ b/y2015/control_loops/claw/claw.q
@@ -1,4 +1,4 @@
-package frc971.control_loops;
+package y2015.control_loops;
 
 import "aos/common/controls/control_loops.q";
 import "frc971/control_loops/control_loops.q";
@@ -28,7 +28,7 @@
   };
 
   message Position {
-    PotAndIndexPosition joint;
+    .frc971.PotAndIndexPosition joint;
   };
 
   message Output {
@@ -49,7 +49,7 @@
     bool estopped;
     // The internal state of the claw state machine.
     uint32_t state;
-    EstimatorState zeroing_state;
+    .frc971.EstimatorState zeroing_state;
 
     // Estimated angle of wrist joint.
     double angle;
diff --git a/y2015/control_loops/claw/claw_lib_test.cc b/y2015/control_loops/claw/claw_lib_test.cc
index 6b3ad87..b38a2ee 100644
--- a/y2015/control_loops/claw/claw_lib_test.cc
+++ b/y2015/control_loops/claw/claw_lib_test.cc
@@ -15,7 +15,7 @@
 
 using ::aos::time::Time;
 
-namespace frc971 {
+namespace y2015 {
 namespace control_loops {
 namespace testing {
 
@@ -28,11 +28,11 @@
       : claw_plant_(new StateFeedbackPlant<2, 1, 1>(
             y2015::control_loops::claw::MakeClawPlant())),
         pot_and_encoder_(constants::GetValues().claw.zeroing.index_difference),
-        claw_queue_(".frc971.control_loops.claw_queue", 0x9d7452fb,
-                    ".frc971.control_loops.claw_queue.goal",
-                    ".frc971.control_loops.claw_queue.position",
-                    ".frc971.control_loops.claw_queue.output",
-                    ".frc971.control_loops.claw_queue.status") {
+        claw_queue_(".y2015.control_loops.claw_queue", 0x9d7452fb,
+                    ".y2015.control_loops.claw_queue.goal",
+                    ".y2015.control_loops.claw_queue.position",
+                    ".y2015.control_loops.claw_queue.output",
+                    ".y2015.control_loops.claw_queue.status") {
     InitializePosition(constants::GetValues().claw.wrist.lower_limit);
   }
 
@@ -85,7 +85,7 @@
 
  private:
   ::std::unique_ptr<StateFeedbackPlant<2, 1, 1>> claw_plant_;
-  PositionSensorSimulator pot_and_encoder_;
+  ::frc971::control_loops::PositionSensorSimulator pot_and_encoder_;
 
   ClawQueue claw_queue_;
 };
@@ -93,14 +93,14 @@
 class ClawTest : public ::aos::testing::ControlLoopTest {
  protected:
   ClawTest()
-      : claw_queue_(".frc971.control_loops.claw_queue", 0x9d7452fb,
-                    ".frc971.control_loops.claw_queue.goal",
-                    ".frc971.control_loops.claw_queue.position",
-                    ".frc971.control_loops.claw_queue.output",
-                    ".frc971.control_loops.claw_queue.status"),
+      : claw_queue_(".y2015.control_loops.claw_queue", 0x9d7452fb,
+                    ".y2015.control_loops.claw_queue.goal",
+                    ".y2015.control_loops.claw_queue.position",
+                    ".y2015.control_loops.claw_queue.output",
+                    ".y2015.control_loops.claw_queue.status"),
         claw_(&claw_queue_),
         claw_plant_() {
-    set_team_id(kTeamNumber);
+    set_team_id(::frc971::control_loops::testing::kTeamNumber);
   }
 
   void VerifyNearGoal() {
@@ -345,4 +345,4 @@
 
 }  // namespace testing
 }  // namespace control_loops
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/control_loops/claw/claw_main.cc b/y2015/control_loops/claw/claw_main.cc
index d1b869c..8b0c21f 100644
--- a/y2015/control_loops/claw/claw_main.cc
+++ b/y2015/control_loops/claw/claw_main.cc
@@ -4,7 +4,7 @@
 
 int main() {
   ::aos::Init();
-  frc971::control_loops::Claw claw;
+  y2015::control_loops::Claw claw;
   claw.Run();
   ::aos::Cleanup();
   return 0;
diff --git a/y2015/control_loops/claw/replay_claw.cc b/y2015/control_loops/claw/replay_claw.cc
index 50673e4..600ad99 100644
--- a/y2015/control_loops/claw/replay_claw.cc
+++ b/y2015/control_loops/claw/replay_claw.cc
@@ -14,8 +14,8 @@
 
   ::aos::InitNRT();
 
-  ::aos::controls::ControlLoopReplayer<::frc971::control_loops::ClawQueue>
-      replayer(&::frc971::control_loops::claw_queue, "claw");
+  ::aos::controls::ControlLoopReplayer<::y2015::control_loops::ClawQueue>
+      replayer(&::y2015::control_loops::claw_queue, "claw");
   for (int i = 1; i < argc; ++i) {
     replayer.ProcessFile(argv[i]);
   }
diff --git a/y2015/control_loops/fridge/BUILD b/y2015/control_loops/fridge/BUILD
index 2e90a80..a9bb737 100644
--- a/y2015/control_loops/fridge/BUILD
+++ b/y2015/control_loops/fridge/BUILD
@@ -26,27 +26,52 @@
   ],
 )
 
+genrule(
+  name = 'genrule_elevator',
+  visibility = ['//visibility:private'],
+  cmd = '$(location //y2015/control_loops/python:elevator) $(OUTS)',
+  tools = [
+    '//y2015/control_loops/python:elevator',
+  ],
+  outs = [
+    'elevator_motor_plant.h',
+    'elevator_motor_plant.cc',
+  ],
+)
+
+cc_library(
+  name = 'elevator_plants',
+  srcs = [
+    'elevator_motor_plant.cc',
+  ],
+  hdrs = [
+    'elevator_motor_plant.h',
+  ],
+  deps = [
+    '//frc971/control_loops:state_feedback_loop',
+  ],
+)
+
 cc_library(
   name = 'fridge_lib',
   srcs = [
     'fridge.cc',
     'integral_arm_plant.cc',
-    'elevator_motor_plant.cc',
   ],
   hdrs = [
     'fridge.h',
     'integral_arm_plant.h',
-    'elevator_motor_plant.h',
   ],
   deps = [
+    ':elevator_plants',
     ':fridge_queue',
     '//aos/common/controls:control_loop',
     '//aos/common/util:trapezoid_profile',
-    '//y2015:constants',
-    '//frc971/control_loops:state_feedback_loop',
     '//frc971/control_loops/voltage_cap:voltage_cap',
+    '//frc971/control_loops:state_feedback_loop',
     '//frc971/zeroing',
     '//y2015/util:kinematics',
+    '//y2015:constants',
   ],
 )
 
diff --git a/y2015/control_loops/fridge/elevator_motor_plant.cc b/y2015/control_loops/fridge/elevator_motor_plant.cc
deleted file mode 100644
index 995d838..0000000
--- a/y2015/control_loops/fridge/elevator_motor_plant.cc
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "y2015/control_loops/fridge/elevator_motor_plant.h"
-
-#include <vector>
-
-#include "frc971/control_loops/state_feedback_loop.h"
-
-namespace frc971 {
-namespace control_loops {
-
-StateFeedbackPlantCoefficients<4, 2, 2> MakeElevatorPlantCoefficients() {
-  Eigen::Matrix<double, 4, 4> A;
-  A << 1.0, 0.00435668193669, 0.0, 0.0, 0.0, 0.754212786054, 0.0, 0.0, 0.0, 0.0, 0.997194498569, 0.00435222083164, 0.0, 0.0, -1.07131589702, 0.751658962986;
-  Eigen::Matrix<double, 4, 2> B;
-  B << 3.82580284276e-05, 3.82580284276e-05, 0.0146169286307, 0.0146169286307, 3.82387898839e-05, -3.82387898839e-05, 0.0146019613563, -0.0146019613563;
-  Eigen::Matrix<double, 2, 4> C;
-  C << 1, 0, 1, 0, 1, 0, -1, 0;
-  Eigen::Matrix<double, 2, 2> D;
-  D << 0, 0, 0, 0;
-  Eigen::Matrix<double, 2, 1> U_max;
-  U_max << 12.0, 12.0;
-  Eigen::Matrix<double, 2, 1> U_min;
-  U_min << -12.0, -12.0;
-  return StateFeedbackPlantCoefficients<4, 2, 2>(A, B, C, D, U_max, U_min);
-}
-
-StateFeedbackController<4, 2, 2> MakeElevatorController() {
-  Eigen::Matrix<double, 4, 2> L;
-  L << 0.677106393027, 0.677106393027, 35.5375738607, 35.5375738607, 0.674426730777, -0.674426730777, 34.7138874344, -34.7138874344;
-  Eigen::Matrix<double, 2, 4> K;
-  K << 321.310606763, 11.7674534233, 601.047935717, 12.6977148843, 321.310606764, 11.7674534233, -601.047935716, -12.6977148843;
-  Eigen::Matrix<double, 4, 4> A_inv;
-  A_inv << 1.0, -0.00577646258091, 0.0, 0.0, 0.0, 1.32588576923, 0.0, 0.0, 0.0, 0.0, 0.996613922337, -0.00577054766522, 0.0, 0.0, 1.42044250221, 1.32216599481;
-  return StateFeedbackController<4, 2, 2>(L, K, A_inv, MakeElevatorPlantCoefficients());
-}
-
-StateFeedbackPlant<4, 2, 2> MakeElevatorPlant() {
-  ::std::vector< ::std::unique_ptr<StateFeedbackPlantCoefficients<4, 2, 2>>> plants(1);
-  plants[0] = ::std::unique_ptr<StateFeedbackPlantCoefficients<4, 2, 2>>(new StateFeedbackPlantCoefficients<4, 2, 2>(MakeElevatorPlantCoefficients()));
-  return StateFeedbackPlant<4, 2, 2>(&plants);
-}
-
-StateFeedbackLoop<4, 2, 2> MakeElevatorLoop() {
-  ::std::vector< ::std::unique_ptr<StateFeedbackController<4, 2, 2>>> controllers(1);
-  controllers[0] = ::std::unique_ptr<StateFeedbackController<4, 2, 2>>(new StateFeedbackController<4, 2, 2>(MakeElevatorController()));
-  return StateFeedbackLoop<4, 2, 2>(&controllers);
-}
-
-}  // namespace control_loops
-}  // namespace frc971
diff --git a/y2015/control_loops/fridge/elevator_motor_plant.h b/y2015/control_loops/fridge/elevator_motor_plant.h
deleted file mode 100644
index e68e6d7..0000000
--- a/y2015/control_loops/fridge/elevator_motor_plant.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef Y2015_CONTROL_LOOPS_FRIDGE_ELEVATOR_MOTOR_PLANT_H_
-#define Y2015_CONTROL_LOOPS_FRIDGE_ELEVATOR_MOTOR_PLANT_H_
-
-#include "frc971/control_loops/state_feedback_loop.h"
-
-namespace frc971 {
-namespace control_loops {
-
-StateFeedbackPlantCoefficients<4, 2, 2> MakeElevatorPlantCoefficients();
-
-StateFeedbackController<4, 2, 2> MakeElevatorController();
-
-StateFeedbackPlant<4, 2, 2> MakeElevatorPlant();
-
-StateFeedbackLoop<4, 2, 2> MakeElevatorLoop();
-
-}  // namespace control_loops
-}  // namespace frc971
-
-#endif  // Y2015_CONTROL_LOOPS_FRIDGE_ELEVATOR_MOTOR_PLANT_H_
diff --git a/y2015/control_loops/fridge/fridge.cc b/y2015/control_loops/fridge/fridge.cc
index 9f2241a..4c24a1f 100644
--- a/y2015/control_loops/fridge/fridge.cc
+++ b/y2015/control_loops/fridge/fridge.cc
@@ -12,8 +12,9 @@
 
 #include "y2015/constants.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace control_loops {
+namespace fridge {
 
 namespace chrono = ::std::chrono;
 
@@ -27,8 +28,9 @@
 
 template <int S>
 void CappedStateFeedbackLoop<S>::CapU() {
-  VoltageCap(max_voltage_, this->U(0, 0), this->U(1, 0), &this->mutable_U(0, 0),
-             &this->mutable_U(1, 0));
+  ::frc971::control_loops::VoltageCap(max_voltage_, this->U(0, 0),
+                                      this->U(1, 0), &this->mutable_U(0, 0),
+                                      &this->mutable_U(1, 0));
 }
 
 template <int S>
@@ -49,10 +51,10 @@
   return deltaR;
 }
 
-Fridge::Fridge(control_loops::FridgeQueue *fridge)
-    : aos::controls::ControlLoop<control_loops::FridgeQueue>(fridge),
-      arm_loop_(new CappedStateFeedbackLoop<5>(
-          StateFeedbackLoop<5, 2, 2>(MakeIntegralArmLoop()))),
+Fridge::Fridge(FridgeQueue *fridge)
+    : aos::controls::ControlLoop<FridgeQueue>(fridge),
+      arm_loop_(new CappedStateFeedbackLoop<5>(StateFeedbackLoop<5, 2, 2>(
+          ::frc971::control_loops::MakeIntegralArmLoop()))),
       elevator_loop_(new CappedStateFeedbackLoop<4>(
           StateFeedbackLoop<4, 2, 2>(MakeElevatorLoop()))),
       left_arm_estimator_(constants::GetValues().fridge.left_arm_zeroing),
@@ -239,10 +241,10 @@
   return arm_zeroing_velocity_;
 }
 
-void Fridge::RunIteration(const control_loops::FridgeQueue::Goal *unsafe_goal,
-                          const control_loops::FridgeQueue::Position *position,
-                          control_loops::FridgeQueue::Output *output,
-                          control_loops::FridgeQueue::Status *status) {
+void Fridge::RunIteration(const FridgeQueue::Goal *unsafe_goal,
+                          const FridgeQueue::Position *position,
+                          FridgeQueue::Output *output,
+                          FridgeQueue::Status *status) {
   if (WasReset()) {
     LOG(ERROR, "WPILib reset, restarting\n");
     left_elevator_estimator_.Reset();
@@ -709,17 +711,19 @@
     status->grabbers.bottom_front = false;
     status->grabbers.bottom_back = false;
   }
-  zeroing::PopulateEstimatorState(left_arm_estimator_, &status->left_arm_state);
-  zeroing::PopulateEstimatorState(right_arm_estimator_,
-                                  &status->right_arm_state);
-  zeroing::PopulateEstimatorState(left_elevator_estimator_,
-                                  &status->left_elevator_state);
-  zeroing::PopulateEstimatorState(right_elevator_estimator_,
-                                  &status->right_elevator_state);
+  ::frc971::zeroing::PopulateEstimatorState(left_arm_estimator_,
+                                            &status->left_arm_state);
+  ::frc971::zeroing::PopulateEstimatorState(right_arm_estimator_,
+                                            &status->right_arm_state);
+  ::frc971::zeroing::PopulateEstimatorState(left_elevator_estimator_,
+                                            &status->left_elevator_state);
+  ::frc971::zeroing::PopulateEstimatorState(right_elevator_estimator_,
+                                            &status->right_elevator_state);
   status->estopped = (state_ == ESTOP);
   status->state = state_;
   last_state_ = state_;
 }
 
+}  // namespace fridge
 }  // namespace control_loops
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/control_loops/fridge/fridge.h b/y2015/control_loops/fridge/fridge.h
index 0448e09..ee64554 100644
--- a/y2015/control_loops/fridge/fridge.h
+++ b/y2015/control_loops/fridge/fridge.h
@@ -10,8 +10,9 @@
 #include "frc971/zeroing/zeroing.h"
 #include "y2015/util/kinematics.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace control_loops {
+namespace fridge {
 namespace testing {
 class FridgeTest_DisabledGoalTest_Test;
 class FridgeTest_ArmGoalPositiveWindupTest_Test;
@@ -42,10 +43,10 @@
 };
 
 class Fridge
-    : public aos::controls::ControlLoop<control_loops::FridgeQueue> {
+    : public aos::controls::ControlLoop<FridgeQueue> {
  public:
-  explicit Fridge(
-      control_loops::FridgeQueue *fridge_queue = &control_loops::fridge_queue);
+  explicit Fridge(FridgeQueue *fridge_queue =
+                      &::y2015::control_loops::fridge::fridge_queue);
 
   enum State {
     // Waiting to receive data before doing anything.
@@ -72,10 +73,10 @@
   State state() const { return state_; }
 
  protected:
-  void RunIteration(const control_loops::FridgeQueue::Goal *goal,
-                    const control_loops::FridgeQueue::Position *position,
-                    control_loops::FridgeQueue::Output *output,
-                    control_loops::FridgeQueue::Status *status) override;
+  void RunIteration(const FridgeQueue::Goal *goal,
+                    const FridgeQueue::Position *position,
+                    FridgeQueue::Output *output,
+                    FridgeQueue::Status *status) override;
 
  private:
   friend class testing::FridgeTest_DisabledGoalTest_Test;
@@ -127,10 +128,10 @@
   ::std::unique_ptr<CappedStateFeedbackLoop<5>> arm_loop_;
   ::std::unique_ptr<CappedStateFeedbackLoop<4>> elevator_loop_;
 
-  zeroing::ZeroingEstimator left_arm_estimator_;
-  zeroing::ZeroingEstimator right_arm_estimator_;
-  zeroing::ZeroingEstimator left_elevator_estimator_;
-  zeroing::ZeroingEstimator right_elevator_estimator_;
+  ::frc971::zeroing::ZeroingEstimator left_arm_estimator_;
+  ::frc971::zeroing::ZeroingEstimator right_arm_estimator_;
+  ::frc971::zeroing::ZeroingEstimator left_elevator_estimator_;
+  ::frc971::zeroing::ZeroingEstimator right_elevator_estimator_;
 
   // Offsets from the encoder position to the absolute position.  Add these to
   // the encoder position to get the absolute position.
@@ -153,7 +154,7 @@
   State state_ = UNINITIALIZED;
   State last_state_ = UNINITIALIZED;
 
-  control_loops::FridgeQueue::Position current_position_;
+  FridgeQueue::Position current_position_;
 
   ProfilingType last_profiling_type_;
   aos::util::ElevatorArmKinematics kinematics_;
@@ -165,8 +166,9 @@
   aos::util::TrapezoidProfile y_profile_;
 };
 
+}  // namespace fridge
 }  // namespace control_loops
-}  // namespace frc971
+}  // namespace y2015
 
 #endif // Y2015_CONTROL_LOOPS_FRIDGE_H_
 
diff --git a/y2015/control_loops/fridge/fridge.q b/y2015/control_loops/fridge/fridge.q
index 257374d..9df30e3 100644
--- a/y2015/control_loops/fridge/fridge.q
+++ b/y2015/control_loops/fridge/fridge.q
@@ -1,4 +1,4 @@
-package frc971.control_loops;
+package y2015.control_loops.fridge;
 
 import "aos/common/controls/control_loops.q";
 import "frc971/control_loops/control_loops.q";
@@ -82,8 +82,8 @@
   };
 
   message Position {
-    PotAndIndexPair arm;
-    PotAndIndexPair elevator;
+    .frc971.PotAndIndexPair arm;
+    .frc971.PotAndIndexPair elevator;
   };
 
   message Status {
@@ -128,10 +128,10 @@
     // The internal state of the state machine.
     int32_t state;
 
-    EstimatorState left_elevator_state;
-    EstimatorState right_elevator_state;
-    EstimatorState left_arm_state;
-    EstimatorState right_arm_state;
+    .frc971.EstimatorState left_elevator_state;
+    .frc971.EstimatorState right_elevator_state;
+    .frc971.EstimatorState left_arm_state;
+    .frc971.EstimatorState right_arm_state;
   };
 
   message Output {
diff --git a/y2015/control_loops/fridge/fridge_lib_test.cc b/y2015/control_loops/fridge/fridge_lib_test.cc
index 7719fb4..2378622 100644
--- a/y2015/control_loops/fridge/fridge_lib_test.cc
+++ b/y2015/control_loops/fridge/fridge_lib_test.cc
@@ -20,8 +20,9 @@
 
 using ::aos::time::Time;
 
-namespace frc971 {
+namespace y2015 {
 namespace control_loops {
+namespace fridge {
 namespace testing {
 // Class which simulates the fridge and sends out queue messages with the
 // position.
@@ -30,7 +31,8 @@
   static constexpr double kNoiseScalar = 0.1;
   // Constructs a simulation.
   FridgeSimulation()
-      : arm_plant_(new StateFeedbackPlant<4, 2, 2>(MakeArmPlant())),
+      : arm_plant_(new StateFeedbackPlant<4, 2, 2>(
+            ::frc971::control_loops::MakeArmPlant())),
         elevator_plant_(new StateFeedbackPlant<4, 2, 2>(MakeElevatorPlant())),
         left_arm_pot_encoder_(
             constants::GetValues().fridge.left_arm_zeroing.index_difference),
@@ -40,11 +42,11 @@
             constants::GetValues().fridge.left_elev_zeroing.index_difference),
         right_elevator_pot_encoder_(
             constants::GetValues().fridge.right_elev_zeroing.index_difference),
-        fridge_queue_(".frc971.control_loops.fridge_queue", 0xe4e05855,
-                      ".frc971.control_loops.fridge_queue.goal",
-                      ".frc971.control_loops.fridge_queue.position",
-                      ".frc971.control_loops.fridge_queue.output",
-                      ".frc971.control_loops.fridge_queue.status") {
+        fridge_queue_(".y2015.control_loops.fridge.fridge_queue", 0xe4e05855,
+                      ".y2015.control_loops.fridge.fridge_queue.goal",
+                      ".y2015.control_loops.fridge.fridge_queue.position",
+                      ".y2015.control_loops.fridge.fridge_queue.output",
+                      ".y2015.control_loops.fridge.fridge_queue.status") {
     // Initialize the elevator.
     InitializeElevatorPosition(
         constants::GetValues().fridge.elevator.lower_limit);
@@ -109,7 +111,7 @@
 
   // Sends a queue message with the position.
   void SendPositionMessage() {
-    ::aos::ScopedMessagePtr<control_loops::FridgeQueue::Position> position =
+    ::aos::ScopedMessagePtr<FridgeQueue::Position> position =
         fridge_queue_.position.MakeMessage();
 
     left_arm_pot_encoder_.GetSensorValues(&position->arm.left);
@@ -196,10 +198,10 @@
   ::std::unique_ptr<StateFeedbackPlant<4, 2, 2>> arm_plant_;
   ::std::unique_ptr<StateFeedbackPlant<4, 2, 2>> elevator_plant_;
 
-  PositionSensorSimulator left_arm_pot_encoder_;
-  PositionSensorSimulator right_arm_pot_encoder_;
-  PositionSensorSimulator left_elevator_pot_encoder_;
-  PositionSensorSimulator right_elevator_pot_encoder_;
+  ::frc971::control_loops::PositionSensorSimulator left_arm_pot_encoder_;
+  ::frc971::control_loops::PositionSensorSimulator right_arm_pot_encoder_;
+  ::frc971::control_loops::PositionSensorSimulator left_elevator_pot_encoder_;
+  ::frc971::control_loops::PositionSensorSimulator right_elevator_pot_encoder_;
 
   FridgeQueue fridge_queue_;
 
@@ -211,11 +213,11 @@
 class FridgeTest : public ::aos::testing::ControlLoopTest {
  protected:
   FridgeTest()
-      : fridge_queue_(".frc971.control_loops.fridge_queue", 0xe4e05855,
-                      ".frc971.control_loops.fridge_queue.goal",
-                      ".frc971.control_loops.fridge_queue.position",
-                      ".frc971.control_loops.fridge_queue.output",
-                      ".frc971.control_loops.fridge_queue.status"),
+      : fridge_queue_(".y2015.control_loops.fridge.fridge_queue", 0xe4e05855,
+                      ".y2015.control_loops.fridge.fridge_queue.goal",
+                      ".y2015.control_loops.fridge.fridge_queue.position",
+                      ".y2015.control_loops.fridge.fridge_queue.output",
+                      ".y2015.control_loops.fridge.fridge_queue.status"),
         fridge_(&fridge_queue_),
         fridge_plant_(),
         kinematics_(constants::GetValues().fridge.arm_length,
@@ -223,7 +225,7 @@
                     constants::GetValues().fridge.elevator.lower_limit,
                     constants::GetValues().fridge.arm.upper_limit,
                     constants::GetValues().fridge.arm.lower_limit) {
-    set_team_id(kTeamNumber);
+    set_team_id(::frc971::control_loops::testing::kTeamNumber);
   }
 
   void VerifyNearGoal() {
@@ -731,5 +733,6 @@
 // after we are zeroed.
 
 }  // namespace testing
+}  // namespace fridge
 }  // namespace control_loops
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/control_loops/fridge/fridge_main.cc b/y2015/control_loops/fridge/fridge_main.cc
index e0fd6ea..658a4af 100644
--- a/y2015/control_loops/fridge/fridge_main.cc
+++ b/y2015/control_loops/fridge/fridge_main.cc
@@ -4,7 +4,7 @@
 
 int main() {
   ::aos::Init();
-  frc971::control_loops::Fridge fridge;
+  y2015::control_loops::fridge::Fridge fridge;
   fridge.Run();
   ::aos::Cleanup();
   return 0;
diff --git a/y2015/control_loops/fridge/replay_fridge.cc b/y2015/control_loops/fridge/replay_fridge.cc
index 65cc98a..842aa0d 100644
--- a/y2015/control_loops/fridge/replay_fridge.cc
+++ b/y2015/control_loops/fridge/replay_fridge.cc
@@ -14,8 +14,9 @@
 
   ::aos::InitNRT();
 
-  ::aos::controls::ControlLoopReplayer<::frc971::control_loops::FridgeQueue>
-      replayer(&::frc971::control_loops::fridge_queue, "fridge");
+  ::aos::controls::ControlLoopReplayer<
+      ::y2015::control_loops::fridge::FridgeQueue>
+      replayer(&::y2015::control_loops::fridge::fridge_queue, "fridge");
   for (int i = 1; i < argc; ++i) {
     replayer.ProcessFile(argv[i]);
   }
diff --git a/y2015/control_loops/python/BUILD b/y2015/control_loops/python/BUILD
index 77c3d81..16fc62b 100644
--- a/y2015/control_loops/python/BUILD
+++ b/y2015/control_loops/python/BUILD
@@ -61,3 +61,15 @@
     '//frc971/control_loops/python:controls',
   ],
 )
+
+py_binary(
+  name = 'elevator',
+  srcs  = [
+    'elevator.py',
+  ],
+  deps = [
+    '//external:python-gflags',
+    '//external:python-glog',
+    '//frc971/control_loops/python:controls',
+  ],
+)
diff --git a/y2015/control_loops/python/elevator.py b/y2015/control_loops/python/elevator.py
index 464011b..dc9caa1 100755
--- a/y2015/control_loops/python/elevator.py
+++ b/y2015/control_loops/python/elevator.py
@@ -1,9 +1,8 @@
 #!/usr/bin/python
 
-import control_loop
-import controls
-import polytope
-import polydrivetrain
+from frc971.control_loops.python import control_loop
+from frc971.control_loops.python import controls
+from frc971.control_loops.python import polytope
 import numpy
 import sys
 import matplotlib
@@ -128,7 +127,7 @@
 
 
 def run_test(elevator, initial_X, goal, max_separation_error=0.01,
-             show_graph=True, iterations=200, controller_elevator=None,
+             show_graph=False, iterations=200, controller_elevator=None,
              observer_elevator=None):
   """Runs the elevator plant with an initial condition and goal.
 
@@ -235,12 +234,14 @@
   if len(argv) != 3:
     print "Expected .h file name and .cc file name for the elevator."
   else:
+    namespaces = ['y2015', 'control_loops', 'fridge']
     elevator = Elevator("Elevator")
-    loop_writer = control_loop.ControlLoopWriter("Elevator", [elevator])
-    if argv[1][-3:] == '.cc':
-      loop_writer.Write(argv[2], argv[1])
-    else:
-      loop_writer.Write(argv[1], argv[2])
+    loop_writer = control_loop.ControlLoopWriter("Elevator", [elevator],
+                                                 namespaces=namespaces)
+  if argv[1][-3:] == '.cc':
+    loop_writer.Write(argv[2], argv[1])
+  else:
+    loop_writer.Write(argv[1], argv[2])
 
 if __name__ == '__main__':
   sys.exit(main(sys.argv))
diff --git a/y2015/http_status/http_status.cc b/y2015/http_status/http_status.cc
index 9c64314..7d5093a 100644
--- a/y2015/http_status/http_status.cc
+++ b/y2015/http_status/http_status.cc
@@ -19,7 +19,7 @@
 
 #include "y2015/http_status/embedded.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace http_status {
 
 // TODO(comran): Make some of these separate libraries & document them better.
@@ -139,7 +139,7 @@
 DataCollector::DataCollector() : cur_raw_data_("no data") {}
 
 void DataCollector::RunIteration() {
-  auto& fridge_queue = control_loops::fridge_queue;
+  auto& fridge_queue = control_loops::fridge::fridge_queue;
   auto& claw_queue = control_loops::claw_queue;
 
   fridge_queue.status.FetchAnother();
@@ -275,18 +275,18 @@
 }
 
 }  // namespace http_status
-}  // namespace frc971
+}  // namespace y2015
 
 int main(int, char* []) {
   ::aos::InitNRT();
 
   seasocks::Server server(::std::shared_ptr<seasocks::Logger>(
-      new frc971::http_status::SeasocksLogger(seasocks::Logger::INFO)));
-  frc971::http_status::SocketHandler socket_handler;
+      new ::y2015::http_status::SeasocksLogger(seasocks::Logger::INFO)));
+  ::y2015::http_status::SocketHandler socket_handler;
 
   server.addWebSocketHandler(
       "/ws",
-      ::std::shared_ptr<frc971::http_status::SocketHandler>(&socket_handler));
+      ::std::shared_ptr<::y2015::http_status::SocketHandler>(&socket_handler));
   server.serve("www", 8080);
 
   socket_handler.Quit();
diff --git a/y2015/http_status/http_status.h b/y2015/http_status/http_status.h
index 2f7497d..b7b3b4c 100644
--- a/y2015/http_status/http_status.h
+++ b/y2015/http_status/http_status.h
@@ -16,7 +16,7 @@
 #include "aos/common/util/phased_loop.h"
 #include "aos/common/mutex.h"
 
-namespace frc971 {
+namespace y2015 {
 namespace http_status {
 
 // A class for storing data from DataCollector and packaging it as a custom
@@ -103,4 +103,4 @@
 };
 
 }  // namespace http_status
-}  // namespace frc971
+}  // namespace y2015
diff --git a/y2015/joystick_reader.cc b/y2015/joystick_reader.cc
index 7cbd7e5..4a8df16 100644
--- a/y2015/joystick_reader.cc
+++ b/y2015/joystick_reader.cc
@@ -28,17 +28,17 @@
 #include "y2015/actors/can_pickup_actor.h"
 #include "y2015/actors/horizontal_can_pickup_actor.h"
 
-using ::frc971::control_loops::claw_queue;
 using ::frc971::control_loops::drivetrain_queue;
-using ::frc971::control_loops::fridge_queue;
 using ::frc971::sensors::gyro_reading;
+using ::y2015::control_loops::claw_queue;
+using ::y2015::control_loops::fridge::fridge_queue;
 
 using ::aos::input::driver_station::ButtonLocation;
 using ::aos::input::driver_station::POVLocation;
 using ::aos::input::driver_station::JoystickAxis;
 using ::aos::input::driver_station::ControlBit;
 
-namespace frc971 {
+namespace y2015 {
 namespace input {
 namespace joysticks {
 
@@ -491,10 +491,10 @@
 
     if (action_queue_.Running()) {
       // If we are running an action, update our goals to the current goals.
-      control_loops::fridge_queue.status.FetchLatest();
-      if (control_loops::fridge_queue.status.get()) {
-        arm_goal_ = control_loops::fridge_queue.status->goal_angle;
-        elevator_goal_ = control_loops::fridge_queue.status->goal_height;
+      fridge_queue.status.FetchLatest();
+      if (fridge_queue.status.get()) {
+        arm_goal_ = fridge_queue.status->goal_angle;
+        elevator_goal_ = fridge_queue.status->goal_height;
       } else {
         LOG(ERROR, "No fridge status!\n");
       }
@@ -547,11 +547,11 @@
 
 }  // namespace joysticks
 }  // namespace input
-}  // namespace frc971
+}  // namespace y2015
 
 int main() {
   ::aos::Init(-1);
-  ::frc971::input::joysticks::Reader reader;
+  ::y2015::input::joysticks::Reader reader;
   reader.Run();
   ::aos::Cleanup();
 }
diff --git a/y2015/util/kinematics.h b/y2015/util/kinematics.h
index 611012e..f206174 100644
--- a/y2015/util/kinematics.h
+++ b/y2015/util/kinematics.h
@@ -88,7 +88,7 @@
         elevator_min_(height_min),
         upper_angle_limit_(angle_max),
         lower_angle_limit_(angle_min),
-        geometry_(frc971::constants::GetValues().clawGeometry) {}
+        geometry_(::y2015::constants::GetValues().clawGeometry) {}
 
   ~ElevatorArmKinematics() {}
 
@@ -379,7 +379,7 @@
   // arm angle lower limit
   double lower_angle_limit_;
   // Geometry of the arm + fridge
-  frc971::constants::Values::ClawGeometry geometry_;
+  ::y2015::constants::Values::ClawGeometry geometry_;
 };
 
 }  // namespace util
diff --git a/y2015/wpilib/wpilib_interface.cc b/y2015/wpilib/wpilib_interface.cc
index 7accc92..a6dab4d 100644
--- a/y2015/wpilib/wpilib_interface.cc
+++ b/y2015/wpilib/wpilib_interface.cc
@@ -55,11 +55,21 @@
 #endif
 
 using ::aos::util::SimpleLogInterval;
+using ::frc971::PotAndIndexPosition;
 using ::frc971::control_loops::drivetrain_queue;
-using ::frc971::control_loops::fridge_queue;
-using ::frc971::control_loops::claw_queue;
+using ::frc971::wpilib::BufferedPcm;
+using ::frc971::wpilib::BufferedSolenoid;
+using ::frc971::wpilib::DMAEncoderAndPotentiometer;
+using ::frc971::wpilib::DMASynchronizer;
+using ::frc971::wpilib::GyroSender;
+using ::frc971::wpilib::InterruptEncoderAndPotentiometer;
+using ::frc971::wpilib::JoystickSender;
+using ::frc971::wpilib::LoopOutputHandler;
+using ::frc971::wpilib::PneumaticsToLog;
+using ::y2015::control_loops::claw_queue;
+using ::y2015::control_loops::fridge::fridge_queue;
 
-namespace frc971 {
+namespace y2015 {
 namespace wpilib {
 
 double drivetrain_translate(int32_t in) {
@@ -373,8 +383,8 @@
  public:
   SolenoidWriter(const ::std::unique_ptr<BufferedPcm> &pcm)
       : pcm_(pcm),
-        fridge_(".frc971.control_loops.fridge_queue.output"),
-        claw_(".frc971.control_loops.claw_queue.output") {}
+        fridge_(".y2015.control_loops.fridge.fridge_queue.output"),
+        claw_(".y2015.control_loops.claw_queue.output") {}
 
   void set_pressure_switch(::std::unique_ptr<DigitalInput> pressure_switch) {
     pressure_switch_ = ::std::move(pressure_switch);
@@ -487,8 +497,8 @@
   ::std::unique_ptr<DigitalInput> pressure_switch_;
   ::std::unique_ptr<Relay> compressor_relay_;
 
-  ::aos::Queue<::frc971::control_loops::FridgeQueue::Output> fridge_;
-  ::aos::Queue<::frc971::control_loops::ClawQueue::Output> claw_;
+  ::aos::Queue<::y2015::control_loops::fridge::FridgeQueue::Output> fridge_;
+  ::aos::Queue<::y2015::control_loops::ClawQueue::Output> claw_;
 
   ::std::atomic<bool> run_{true};
 };
@@ -503,11 +513,11 @@
 
  private:
   virtual void Read() override {
-    ::frc971::autonomous::can_control.FetchAnother();
+    ::y2015::autonomous::can_control.FetchAnother();
   }
 
   virtual void Write() override {
-    auto &queue = ::frc971::autonomous::can_control;
+    auto &queue = ::y2015::autonomous::can_control;
     LOG_STRUCT(DEBUG, "will output", *queue);
     can_talon_->Set(queue->can_voltage / 12.0);
   }
@@ -572,11 +582,11 @@
 
  private:
   virtual void Read() override {
-    ::frc971::control_loops::fridge_queue.output.FetchAnother();
+    ::y2015::control_loops::fridge::fridge_queue.output.FetchAnother();
   }
 
   virtual void Write() override {
-    auto &queue = ::frc971::control_loops::fridge_queue.output;
+    auto &queue = ::y2015::control_loops::fridge::fridge_queue.output;
     LOG_STRUCT(DEBUG, "will output", *queue);
     left_arm_talon_->Set(queue->left_arm / 12.0);
     right_arm_talon_->Set(-queue->right_arm / 12.0);
@@ -614,11 +624,11 @@
 
  private:
   virtual void Read() override {
-    ::frc971::control_loops::claw_queue.output.FetchAnother();
+    ::y2015::control_loops::claw_queue.output.FetchAnother();
   }
 
   virtual void Write() override {
-    auto &queue = ::frc971::control_loops::claw_queue.output;
+    auto &queue = ::y2015::control_loops::claw_queue.output;
     LOG_STRUCT(DEBUG, "will output", *queue);
     left_intake_talon_->Set(queue->intake_voltage / 12.0);
     right_intake_talon_->Set(-queue->intake_voltage / 12.0);
@@ -770,7 +780,7 @@
 };
 
 }  // namespace wpilib
-}  // namespace frc971
+}  // namespace y2015
 
 
-AOS_ROBOT_CLASS(::frc971::wpilib::WPILibRobot);
+AOS_ROBOT_CLASS(::y2015::wpilib::WPILibRobot);