converted the claw to separate structures for each hall effect
diff --git a/frc971/control_loops/claw/claw.q b/frc971/control_loops/claw/claw.q
index 66e3036..f78dee6 100644
--- a/frc971/control_loops/claw/claw.q
+++ b/frc971/control_loops/claw/claw.q
@@ -1,28 +1,18 @@
 package frc971.control_loops;
 
 import "aos/common/control_loop/control_loops.q";
+import "frc971/control_loops/control_loops.q";
 
 struct HalfClawPosition {
   // The current position of this half of the claw.
   double position;
-  // The value of the front hall effect sensor.
-  bool front_hall_effect;
-  // The number of positive and negative edges that have been captured on the
-  // front hall effect sensor.
-  int32_t front_hall_effect_posedge_count;
-  int32_t front_hall_effect_negedge_count;
-  // The value of the calibration hall effect sensor.
-  bool calibration_hall_effect;
-  // The number of positive and negative edges that have been captured on the
-  // calibration hall effect sensor.
-  int32_t calibration_hall_effect_posedge_count;
-  int32_t calibration_hall_effect_negedge_count;
-  // The value of the back hall effect sensor.
-  bool back_hall_effect;
-  // The number of positive and negative edges that have been captured on the
-  // back hall effect sensor.
-  int32_t back_hall_effect_posedge_count;
-  int32_t back_hall_effect_negedge_count;
+
+  // The hall effect sensor at the front limit.
+  HallEffectStruct front;
+  // The hall effect sensor in the middle to use for real calibration.
+  HallEffectStruct calibration;
+  // The hall effect at the back limit.
+  HallEffectStruct back;
 
   // The encoder value at the last posedge of any of the claw hall effect
   // sensors (front, calibration, or back).