diff --git a/y2020/control_loops/superstructure/BUILD b/y2020/control_loops/superstructure/BUILD
index 6ee38ad..100d90c 100644
--- a/y2020/control_loops/superstructure/BUILD
+++ b/y2020/control_loops/superstructure/BUILD
@@ -73,7 +73,6 @@
     ],
     target_compatible_with = ["@platforms//os:linux"],
     deps = [
-        ":climber",
         ":superstructure_goal_fbs",
         ":superstructure_output_fbs",
         ":superstructure_position_fbs",
@@ -135,24 +134,6 @@
     ],
 )
 
-cc_library(
-    name = "climber",
-    srcs = [
-        "climber.cc",
-    ],
-    hdrs = [
-        "climber.h",
-    ],
-    target_compatible_with = ["@platforms//os:linux"],
-    deps = [
-        ":superstructure_goal_fbs",
-        ":superstructure_output_fbs",
-        "//frc971/control_loops:control_loop",
-        "//frc971/control_loops:control_loops_fbs",
-        "//frc971/control_loops:profiled_subsystem_fbs",
-    ],
-)
-
 ts_library(
     name = "turret_plotter",
     srcs = ["turret_plotter.ts"],
diff --git a/y2020/control_loops/superstructure/climber.cc b/y2020/control_loops/superstructure/climber.cc
deleted file mode 100644
index bb449da..0000000
--- a/y2020/control_loops/superstructure/climber.cc
+++ /dev/null
@@ -1,23 +0,0 @@
-#include "y2020/control_loops/superstructure/climber.h"
-
-#include <algorithm>
-
-#include "y2020/control_loops/superstructure/superstructure_goal_generated.h"
-#include "y2020/control_loops/superstructure/superstructure_output_generated.h"
-
-namespace y2020 {
-namespace control_loops {
-namespace superstructure {
-
-void Climber::Iterate(const Goal *unsafe_goal, OutputT *output) {
-  if (unsafe_goal && output) {
-    // Pass through the voltage request from the user.  Backwards isn't
-    // supported, so prevent that.
-    output->climber_voltage =
-        std::clamp(unsafe_goal->climber_voltage(), 0.0f, 12.0f);
-  }
-}
-
-}  // namespace superstructure
-}  // namespace control_loops
-}  // namespace y2020
diff --git a/y2020/control_loops/superstructure/climber.h b/y2020/control_loops/superstructure/climber.h
deleted file mode 100644
index 29b7e51..0000000
--- a/y2020/control_loops/superstructure/climber.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef Y2020_CONTROL_LOOPS_SUPERSTRUCTURE_CLIMBER_H_
-#define Y2020_CONTROL_LOOPS_SUPERSTRUCTURE_CLIMBER_H_
-
-#include "y2020/control_loops/superstructure/superstructure_goal_generated.h"
-#include "y2020/control_loops/superstructure/superstructure_output_generated.h"
-
-namespace y2020 {
-namespace control_loops {
-namespace superstructure {
-
-// Class to encapsulate the climber logic.
-class Climber {
- public:
-  void Iterate(const Goal *unsafe_goal, OutputT *output);
-};
-
-}  // namespace superstructure
-}  // namespace control_loops
-}  // namespace y2020
-
-#endif  // Y2020_CONTROL_LOOPS_SUPERSTRUCTURE_CLIMBER_H_
diff --git a/y2020/control_loops/superstructure/superstructure.cc b/y2020/control_loops/superstructure/superstructure.cc
index 1a61a29..86dcbb1 100644
--- a/y2020/control_loops/superstructure/superstructure.cc
+++ b/y2020/control_loops/superstructure/superstructure.cc
@@ -158,8 +158,6 @@
           position->shooter(), status->fbb(),
           output != nullptr ? &(output_struct) : nullptr, position_timestamp);
 
-  climber_.Iterate(unsafe_goal, output != nullptr ? &(output_struct) : nullptr);
-
   const AbsoluteAndAbsoluteEncoderProfiledJointStatus *const hood_status =
       GetMutableTemporaryPointer(*status->fbb(), hood_status_offset);
 
@@ -237,6 +235,9 @@
     output_struct.feeder_voltage = 0.0;
     output_struct.intake_roller_voltage = 0.0;
     if (unsafe_goal) {
+      output_struct.climber_voltage =
+          std::clamp(unsafe_goal->climber_voltage(), -12.0f, 12.0f);
+
       if (unsafe_goal->shooting() || unsafe_goal->intake_preloading()) {
         preloading_timeout_ = position_timestamp + kPreloadingTimeout;
       }
diff --git a/y2020/control_loops/superstructure/superstructure.h b/y2020/control_loops/superstructure/superstructure.h
index b0bc9f5..8f3eb0a 100644
--- a/y2020/control_loops/superstructure/superstructure.h
+++ b/y2020/control_loops/superstructure/superstructure.h
@@ -6,7 +6,6 @@
 #include "frc971/control_loops/drivetrain/drivetrain_status_generated.h"
 #include "frc971/input/joystick_state_generated.h"
 #include "y2020/constants.h"
-#include "y2020/control_loops/superstructure/climber.h"
 #include "y2020/control_loops/superstructure/shooter/shooter.h"
 #include "y2020/control_loops/superstructure/superstructure_goal_generated.h"
 #include "y2020/control_loops/superstructure/superstructure_output_generated.h"
@@ -70,8 +69,6 @@
       drivetrain_status_fetcher_;
   aos::Fetcher<aos::JoystickState> joystick_state_fetcher_;
 
-  Climber climber_;
-
   aos::monotonic_clock::time_point shooting_start_time_ =
       aos::monotonic_clock::min_time;
   aos::monotonic_clock::time_point preloading_timeout_ =
diff --git a/y2020/control_loops/superstructure/superstructure_lib_test.cc b/y2020/control_loops/superstructure/superstructure_lib_test.cc
index 2b8b39a..b34273c 100644
--- a/y2020/control_loops/superstructure/superstructure_lib_test.cc
+++ b/y2020/control_loops/superstructure/superstructure_lib_test.cc
@@ -952,8 +952,8 @@
   // Give it time to stabilize.
   RunFor(chrono::seconds(1));
 
-  // Can't go backwards.
-  EXPECT_EQ(superstructure_plant_.climber_voltage(), 0.0);
+  // Can go backwards.
+  EXPECT_EQ(superstructure_plant_.climber_voltage(), -10.0);
 
   {
     auto builder = superstructure_goal_sender_.MakeBuilder();
@@ -965,7 +965,8 @@
     ASSERT_TRUE(builder.Send(goal_builder.Finish()));
   }
   RunFor(chrono::seconds(1));
-  // But forwards works.
+
+  // And forwards too.
   EXPECT_EQ(superstructure_plant_.climber_voltage(), 10.0);
 
   VerifyNearGoal();
