diff --git a/frc971/constants.h b/frc971/constants.h
index 2dcd150..4a793ae 100644
--- a/frc971/constants.h
+++ b/frc971/constants.h
@@ -1,6 +1,5 @@
 #ifndef FRC971_CONSTANTS_H_
 #define FRC971_CONSTANTS_H_
-
 #include <stdint.h>
 
 #include "frc971/control_loops/state_feedback_loop.h"
@@ -14,13 +13,7 @@
 
 // This structure contains current values for all of the things that change.
 struct Values {
-  // This is useful for representing the 2 sides of a hall effect sensor etc.
-  struct AnglePair {
-    // The angles for increasing values (posedge on lower, negedge on upper).
-    double lower_angle, upper_angle;
-    // The angles for decreasing values (negedge on lower, posedge on upper).
-    double lower_decreasing_angle, upper_decreasing_angle;
-  };
+  // Drivetrain Values /////
 
   // The ratio from the encoder shaft to the drivetrain wheels.
   double drivetrain_encoder_ratio;
@@ -29,9 +22,7 @@
   // gear.
   double low_gear_ratio;
   double high_gear_ratio;
-
   ShifterHallEffect left_drive, right_drive;
-
   bool clutch_transmission;
 
   double turn_width;
@@ -39,72 +30,43 @@
   ::std::function<StateFeedbackLoop<2, 2, 2>()> make_v_drivetrain_loop;
   ::std::function<StateFeedbackLoop<4, 2, 2>()> make_drivetrain_loop;
 
-  struct Shooter {
-    double lower_limit;
-    double upper_limit;
-    double lower_hard_limit;
-    double upper_hard_limit;
-    // If the plunger is further back than this position, it is safe for the
-    // latch to be down.  Anything else would be considered a collision.
-    double latch_max_safe_position;
-    AnglePair plunger_back;
-    AnglePair pusher_distal;
-    AnglePair pusher_proximal;
-    double zeroing_speed;
-    double unload_speed;
-  };
-
-  Shooter shooter;
-
-  struct Claws {
-    double claw_zeroing_off_speed;
-    double claw_zeroing_speed;
-    double claw_zeroing_separation;
-
-    // claw separation that would be considered a collision
-    double claw_min_separation;
-    double claw_max_separation;
-
-    // We should never get closer/farther than these.
-    double soft_min_separation;
-    double soft_max_separation;
-
-    // Three hall effects are known as front, calib and back
-    typedef Values::AnglePair AnglePair;
-
-    struct Claw {
-      double lower_hard_limit;
-      double upper_hard_limit;
-      double lower_limit;
-      double upper_limit;
-      AnglePair front;
-      AnglePair calibration;
-      AnglePair back;
-    };
-
-    Claw upper_claw;
-    Claw lower_claw;
-
-    double claw_unimportant_epsilon;
-    double start_fine_tune_pos;
-    double max_zeroing_voltage;
-  };
-  Claws claw;
-
-  // Has all the constants for the ShootAction class.
-  struct ShooterAction {
-    // Minimum separation required between the claws in order to be able to
-    // shoot.
-    double claw_shooting_separation;
-
-    // Goal to send to the claw when opening it up in preparation for shooting;
-    // should be larger than claw_shooting_separation so that we can shoot
-    // promptly.
-    double claw_separation_goal;
-   };
-  ShooterAction shooter_action;
   double drivetrain_done_distance;
   double drivetrain_max_speed;
+
+
+  // Superstructure Values /////
+
+  struct ZeroingConstants {
+    int average_filter_size;
+    double index_difference;
+    // Offset between the physical encoder index and the index we want.
+    double index_offset_at_zero;
+  };
+
+  ZeroingConstants left_arm_zeroing_constants;
+  ZeroingConstants right_arm_zeroing_constants;
+  ZeroingConstants left_elevator_zeroing_constants;
+  ZeroingConstants right_elevator_zeroing_constants;
+  ZeroingConstants claw_zeroing_constants;
+
+  // Defines a range of motion for a subsystem.
+  struct Range {
+    double lower_hard_limit;
+    double upper_hard_limit;
+    double lower_limit;
+    double upper_limit;
+  };
+
+  struct Claw {
+    Range wrist;
+  };
+  Claw claw;
+
+  struct Fridge {
+    Range elevator;
+    Range arm;
+  };
+  Fridge fridge;
 };
 
 // Creates (once) a Values instance for ::aos::network::GetTeamNumber() and
