diff --git a/aos/controls/control_loop.h b/aos/controls/control_loop.h
index fd63e3f..d52a5d1 100644
--- a/aos/controls/control_loop.h
+++ b/aos/controls/control_loop.h
@@ -22,21 +22,6 @@
   virtual void Iterate() = 0;
 };
 
-class SerializableControlLoop : public Runnable {
- public:
-  // Returns the size of all the data to be sent when serialized.
-  virtual size_t SeralizedSize() = 0;
-  // Serialize the current data.
-  virtual void Serialize(char *buffer) const = 0;
-  // Serialize zeroed data in case the data is out of date.
-  virtual void SerializeZeroMessage(char *buffer) const = 0;
-  // Deserialize data into the control loop.
-  virtual void Deserialize(const char *buffer) = 0;
-  // Unique identifier for the control loop.
-  // Most likely the hash of the queue group.
-  virtual uint32_t UniqueID() = 0;
-};
-
 // Control loops run this often, "starting" at time 0.
 constexpr ::std::chrono::nanoseconds kLoopFrequency =
     ::std::chrono::milliseconds(5);
@@ -47,7 +32,7 @@
 // It will then call the RunIteration method every cycle that it has enough
 // valid data for the control loop to run.
 template <class T>
-class ControlLoop : public SerializableControlLoop {
+class ControlLoop : public Runnable {
  public:
   // Create some convenient typedefs to reference the Goal, Position, Status,
   // and Output structures.
@@ -97,26 +82,6 @@
   // Returns the name of the queue group.
   const char *name() { return control_loop_->name(); }
 
-  // Methods to serialize all the data that should be sent over the network.
-  size_t SeralizedSize() override { return control_loop_->goal->Size(); }
-  void Serialize(char *buffer) const override {
-    control_loop_->goal->Serialize(buffer);
-  }
-  void SerializeZeroMessage(char *buffer) const override {
-    GoalType zero_goal;
-    zero_goal.Zero();
-    zero_goal.Serialize(buffer);
-  }
-
-  void Deserialize(const char *buffer) override {
-    ScopedMessagePtr<GoalType> new_msg = control_loop_->goal.MakeMessage();
-    new_msg->Deserialize(buffer);
-    new_msg.Send();
-  }
-
-  uint32_t UniqueID() override { return control_loop_->hash(); }
-
-
  protected:
   static void Quit(int /*signum*/) {
     run_ = false;
