diff --git a/src/shared/drivers/runcam/Runcam.h b/src/shared/drivers/runcam/Runcam.h
index fe089afee56c02845d0f084be8ec3ceb7bbaea00..eabb564aee0b43d768e2b0c15fa0f490f4d2310f 100644
--- a/src/shared/drivers/runcam/Runcam.h
+++ b/src/shared/drivers/runcam/Runcam.h
@@ -130,7 +130,7 @@ public:
 
 private:
     /**
-     * @brief Confiugre Serial Communication
+     * @brief Configure Serial Communication
      */
     bool configureSerialCommunication();
 
diff --git a/src/shared/events/EventBroker.cpp b/src/shared/events/EventBroker.cpp
index 543005be8a30c7ba8fc97d838d5a4aaa910b77e6..b748fc1e91393133da2709cab2a761fe341ed442 100644
--- a/src/shared/events/EventBroker.cpp
+++ b/src/shared/events/EventBroker.cpp
@@ -29,7 +29,6 @@ namespace Boardcore
 {
 
 EventBroker::EventBroker() {}
-
 void EventBroker::post(const Event& ev, uint8_t topic)
 {
 #ifdef TRACE_EVENTS
@@ -66,6 +65,34 @@ void EventBroker::removeDelayed(uint16_t id)
     }
 }
 
+void EventBroker::subscribe(EventHandlerBase* subscriber, uint8_t topic)
+{
+    Lock<FastMutex> lock(mtxSubscribers);
+    subscribers[topic].push_back(subscriber);
+}
+
+void EventBroker::unsubscribe(EventHandlerBase* subscriber, uint8_t topic)
+{
+    Lock<FastMutex> lock(mtxSubscribers);
+
+    deleteSubscriber(subscribers.at(topic), subscriber);
+}
+
+void EventBroker::unsubscribe(EventHandlerBase* subscriber)
+{
+    Lock<FastMutex> lock(mtxSubscribers);
+    for (auto it = subscribers.begin(); it != subscribers.end(); it++)
+    {
+        deleteSubscriber(it->second, subscriber);
+    }
+}
+
+void EventBroker::clearDelayedEvents()
+{
+    Lock<FastMutex> lock(mtxDelayedEvents);
+    delayedEvents.clear();
+}
+
 // Posts delayed events with expired deadline
 void EventBroker::run()
 {
@@ -110,28 +137,6 @@ void EventBroker::run()
     }
 }
 
-void EventBroker::subscribe(EventHandlerBase* subscriber, uint8_t topic)
-{
-    Lock<FastMutex> lock(mtxSubscribers);
-    subscribers[topic].push_back(subscriber);
-}
-
-void EventBroker::unsubscribe(EventHandlerBase* subscriber, uint8_t topic)
-{
-    Lock<FastMutex> lock(mtxSubscribers);
-
-    deleteSubscriber(subscribers.at(topic), subscriber);
-}
-
-void EventBroker::unsubscribe(EventHandlerBase* subscriber)
-{
-    Lock<FastMutex> lock(mtxSubscribers);
-    for (auto it = subscribers.begin(); it != subscribers.end(); it++)
-    {
-        deleteSubscriber(it->second, subscriber);
-    }
-}
-
 void EventBroker::deleteSubscriber(vector<EventHandlerBase*>& subs,
                                    EventHandlerBase* subscriber)
 {
@@ -150,10 +155,4 @@ void EventBroker::deleteSubscriber(vector<EventHandlerBase*>& subs,
     }
 }
 
-void EventBroker::clearDelayedEvents()
-{
-    Lock<FastMutex> lock(mtxDelayedEvents);
-    delayedEvents.clear();
-}
-
 }  // namespace Boardcore
diff --git a/src/shared/events/EventBroker.h b/src/shared/events/EventBroker.h
index d769bca420e4bcc06773ec87147267116ca46ee2..581ff8011164a47766542460c3959b9fcad1ec4f 100644
--- a/src/shared/events/EventBroker.h
+++ b/src/shared/events/EventBroker.h
@@ -148,14 +148,12 @@ public:
 
     /**
      * @brief Construct a new Event Broker object.
+     *
      * Public access required for testing purposes. Use the singleton interface
      * to access this class in production code.
-     *
      */
     EventBroker();
 
-    virtual ~EventBroker(){};
-
 private:
     /**
      * Private structure for holding a delayed event data in the list.
diff --git a/src/shared/sensors/HX711/HX711.cpp b/src/shared/sensors/HX711/HX711.cpp
index ff8c65addf6d14eabd79b555ec7badb9725041ca..8e3fa92694daa960e71db8a1463147e11bdd3e9d 100644
--- a/src/shared/sensors/HX711/HX711.cpp
+++ b/src/shared/sensors/HX711/HX711.cpp
@@ -87,9 +87,9 @@ void HX711::setScale(float scale) { this->scale = scale; }
 
 float HX711::getScale() { return scale; }
 
-void HX711::setOffset(float offset) { this->offset = offset * scale; }
+void HX711::setOffset(float offset) { this->offset = offset / scale; }
 
-void HX711::updateOffset(float offset) { this->offset += offset * scale; }
+void HX711::updateOffset(float offset) { this->offset += offset / scale; }
 
 float HX711::getOffset() { return offset; }
 
diff --git a/src/shared/utils/MovingAverage.h b/src/shared/utils/MovingAverage.h
index 94e8fda20d5577c21c9de585a6f3081547c2a0e3..6a6efd1bbcf6790efa89a17919146cb6bc770b37 100644
--- a/src/shared/utils/MovingAverage.h
+++ b/src/shared/utils/MovingAverage.h
@@ -45,12 +45,21 @@ public:
         value += newValue * movingAverageCoeff;
     }
 
+    void reset() { value = 0; }
+
+    void setN(int movingAverageN)
+    {
+        this->movingAverageN   = movingAverageN;
+        movingAverageCoeff     = 1 / (float)movingAverageN;
+        movingAverageCompCoeff = 1 - movingAverageCoeff;
+    }
+
 private:
     T value = 0;
 
-    const int movingAverageN           = 20;
-    const float movingAverageCoeff     = 1 / (float)movingAverageN;
-    const float movingAverageCompCoeff = 1 - movingAverageCoeff;
+    int movingAverageN           = 20;
+    float movingAverageCoeff     = 1 / (float)movingAverageN;
+    float movingAverageCompCoeff = 1 - movingAverageCoeff;
 };
 
 }  // namespace Boardcore