diff --git a/README.md b/README.md
index d5b336dc64866ecad586969f6c0aa56135cded57..2c9a6181dd44039238ed0c616b472640484382bd 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
 
 This repository contains the On-Board Software for R2A-Hermes. 
 
-To clone, use the `--recurse-submodules` option.
+To clone, use the `git clone --recurse-submodules` option.
 
 To build, use `sbs` (for more info, type `./sbs --help` on Linux or `sbs --help` on Windows).
 
@@ -12,9 +12,10 @@ To build, use `sbs` (for more info, type `./sbs --help` on Linux or `sbs --help`
 
 ## Folder Structure
 
-| **src/**               | **sources!**                                        |
+|   Folder               |   Content                                           |
 | ---------------------- | --------------------------------------------------- |
-| boards/                | Classes source files, divided per board.            |
+| **src/**               | **sources!**                                        |
+| boards/                | Classes and components, divided by board.            |
 | entrypoints/           | Each file here is a "*main*" to be built with SBS.  |
 | tests/                 | Tests that can be built with SBS.                   |
 | **skyward-boardcore/** | Provides the build system (SBS) and common drivers. |
diff --git a/sbs.conf b/sbs.conf
index 4a12eb14aef7ed57c43ed586e72d94d29df479aa..0a5e9741f7ab262acb906fb20131d82fffdf3c87 100644
--- a/sbs.conf
+++ b/sbs.conf
@@ -91,7 +91,7 @@ PROJECT_LIBS:
 
 [deathstack]
 Type:       srcfiles
-Files:      src/boards/DeathStack/LogProxy/LogProxy.cpp
+Files:      src/boards/DeathStack/LoggerService/LoggerService.cpp
             src/boards/DeathStack/EventFunctions.cpp
             src/boards/DeathStack/FlightModeManager/FlightModeManager.cpp
             src/boards/DeathStack/SensorManager/SensorManager.cpp
@@ -99,12 +99,12 @@ Files:      src/boards/DeathStack/LogProxy/LogProxy.cpp
             src/boards/DeathStack/DeploymentController/Motor/MotorDriver.cpp
             src/boards/DeathStack/PinObserver/PinObserverWrapper.cpp
             src/boards/DeathStack/TMTCManager/TMTCManager.cpp
-            src/boards/DeathStack/LogProxy/Telemetries.cpp
+            src/boards/DeathStack/LoggerService/TmRepository.cpp
             src/boards/DeathStack/ADA/ADA.cpp
             src/boards/DeathStack/ADA/RogalloDTS/generated/elevation_map_data.cpp
             src/boards/DeathStack/ADA/RogalloDTS/ElevationMap.cpp
             src/boards/DeathStack/ADA/RogalloDTS/RogalloDTS.cpp
-            src/boards/DeathStack/LogProxy/FlightStats.cpp
+            src/boards/DeathStack/LoggerService/FlightStatsRecorder.cpp
             src/boards/DeathStack/TMTCManager/XbeeInterrupt.cpp
 
 [ada]
@@ -136,14 +136,14 @@ Files:      src/boards/DeathStack/TMTCManager/TMTCManager.cpp
 Type:       srcfiles
 Files:      src/boards/Ignition/IgnitionManager.cpp
 
-[logproxy]
+[logservice]
 Type:       srcfiles
-Files:      src/boards/DeathStack/LogProxy/LogProxy.cpp
-            src/boards/DeathStack/LogProxy/Telemetries.cpp
+Files:      src/boards/DeathStack/LoggerService/LoggerService.cpp
+            src/boards/DeathStack/LoggerService/TmRepository.cpp
 
 [logger-hermes]
 Type:       srcfiles
-Files:      src/boards/DeathStack/LogProxy/FlightStats.cpp
+Files:      src/boards/DeathStack/LoggerService/FlightStatsRecorder.cpp
 
 [ada-test-sources]
 Type:       srcfiles
@@ -247,7 +247,7 @@ Main:       drivers/test-cutter
 Type:       test
 BoardId:    stm32f429zi_skyward_death_stack
 BinName:    test-mavlink
-Include:    %shared %tmtc %logger %logger-hermes %xbee %logproxy
+Include:    %shared %tmtc %logger %logger-hermes %xbee %logservice
 Defines:    -DDEBUG -DTRACE_EVENTS
 Main:       drivers/test-mavlink
 
@@ -255,7 +255,7 @@ Main:       drivers/test-mavlink
 Type:       test
 BoardId:    stm32f429zi_skyward_death_stack
 BinName:    test-mavchannel
-Include:    %shared %tmtc %logger %logger-hermes %xbee %logproxy
+Include:    %shared %tmtc %logger %logger-hermes %xbee %logservice
 Defines:    -DDEBUG -DTRACE_EVENTS
 Main:       drivers/test-mavchannel
 
@@ -330,7 +330,7 @@ Main:       drivers/test-power-board
 Type:       test
 BoardId:    stm32f429zi_skyward_death_stack
 BinName:    test-logproxy
-Include:    %shared %logger %logger-hermes %logproxy
+Include:    %shared %logger %logger-hermes %logservice
 Defines:    -DDEBUG
 Main:       test-logproxy
 
@@ -338,7 +338,7 @@ Main:       test-logproxy
 Type:       test
 BoardId:    stm32f429zi_skyward_death_stack
 BinName:    test-sensormanager
-Include:    %shared %sensors %logger %logger-hermes %ada %piksi %logproxy %ada-test-sources
+Include:    %shared %sensors %logger %logger-hermes %ada %piksi %logservice %ada-test-sources
 Defines:    -DDEBUG -USE_MOCK_SENSORS
 Main:       test-sensormanager
 
@@ -355,7 +355,7 @@ Main:       test-sensormanager
 Type:       test
 BoardId:    stm32f429zi_skyward_death_stack
 BinName:    test-dpl
-Include:    %deployment %shared %pwm %logger %logger-hermes %logproxy %evt-functions %servo
+Include:    %deployment %shared %pwm %logger %logger-hermes %logservice %evt-functions %servo
 Defines:    -DDEBUG
 Main:       test-dpl
 
@@ -363,7 +363,7 @@ Main:       test-dpl
 Type:       test
 BoardId:    stm32f429zi_skyward_death_stack
 BinName:    test-fmm
-Include:    %deployment %shared %logger %logger-hermes %logproxy %evt-functions %fmm %pwm %servo
+Include:    %deployment %shared %logger %logger-hermes %logservice %evt-functions %fmm %pwm %servo
 Defines:    -DDEBUG
 Main:       test-fmm
 
diff --git a/src/boards/DeathStack/ADA/ADA.h b/src/boards/DeathStack/ADA/ADA.h
index b6b1e07562c2819faecc189eba9588eae3c5c793..f503a8b0fd3e15b5fc3552d43f56bdd998d24b79 100644
--- a/src/boards/DeathStack/ADA/ADA.h
+++ b/src/boards/DeathStack/ADA/ADA.h
@@ -28,7 +28,7 @@
 #include <DeathStack/Events.h>
 #include <DeathStack/configs/ADA_config.h>
 #include <kalman/Kalman.h>
-#include "DeathStack/LogProxy/LogProxy.h"
+#include "DeathStack/LoggerService/LoggerService.h"
 #include "RogalloDTS/RogalloDTS.h"
 
 #include <miosix.h>
@@ -180,7 +180,7 @@ private:
     RogalloDTS rogallo_dts;
 
     // Logger
-    LoggerProxy& logger = *(LoggerProxy::getInstance());
+    LoggerService& logger = *(LoggerService::getInstance());
 };
 
 }  // namespace DeathStackBoard
\ No newline at end of file
diff --git a/src/boards/DeathStack/Canbus/CanProxy.cpp b/src/boards/DeathStack/Canbus/CanProxy.cpp
index 8c2640bbe450d20cecb782900edbc8b1ce505b0d..8dcc9ed699fda10e8280d6fbd88bc30a4d7c679a 100644
--- a/src/boards/DeathStack/Canbus/CanProxy.cpp
+++ b/src/boards/DeathStack/Canbus/CanProxy.cpp
@@ -51,7 +51,7 @@ static void canRcv(const CanMsg& message, const CanStatus& status)
     memcpy(ev.payload, message.Data, CAN_MAX_PAYLOAD);
 
     /* Log stats */
-    LoggerProxy::getInstance()->log(status);
+    LoggerService::getInstance()->log(status);
 
     /* Post event */
     sEventBroker->post(ev, TOPIC_CAN);
@@ -87,7 +87,7 @@ bool CanProxy::send(uint16_t id, const uint8_t* message, uint8_t len)
 
     // Log stats
     CanStatus status = bus->getStatus();
-    LoggerProxy::getInstance()->log(status);
+    LoggerService::getInstance()->log(status);
 
     return ok;
 }
diff --git a/src/boards/DeathStack/Canbus/CanProxy.h b/src/boards/DeathStack/Canbus/CanProxy.h
index e8ead1bc10f7c3bfcb34c49f950d0891c00a5f85..2762fe5e865d3996cc901b26fe46de2807e3028c 100644
--- a/src/boards/DeathStack/Canbus/CanProxy.h
+++ b/src/boards/DeathStack/Canbus/CanProxy.h
@@ -25,7 +25,7 @@
 #include <Common.h>
 #include <drivers/canbus/CanManager.h>
 #include <drivers/canbus/CanUtils.h>
-#include <DeathStack/LogProxy/LogProxy.h>
+#include <DeathStack/LoggerService/LoggerService.h>
 
 namespace DeathStackBoard
 {
diff --git a/src/boards/DeathStack/DeathStack.h b/src/boards/DeathStack/DeathStack.h
index 3cc0ceade673ffaf6b186f43d586385047373564..2a41169bd8245aaf921eeb16e467b2152f6b4c35 100644
--- a/src/boards/DeathStack/DeathStack.h
+++ b/src/boards/DeathStack/DeathStack.h
@@ -32,11 +32,11 @@
 #include <utils/EventSniffer.h>
 
 #include "DeathStack/Events.h"
-#include "DeathStack/LogProxy/Telemetries.h"
+#include "DeathStack/LoggerService/TmRepository.h"
 #include "DeathStack/Topics.h"
 #include "DeathStackStatus.h"
 
-#include "DeathStack/LogProxy/LogProxy.h"
+#include "DeathStack/LoggerService/LoggerService.h"
 #include "DeathStack/PinObserver/PinObserverWrapper.h"
 
 #include "DeathStack/ADA/ADA.h"
@@ -66,7 +66,7 @@ class DeathStack : public Singleton<DeathStack>
 public:
     // Shared Components
     EventBroker* broker;
-    LoggerProxy* logger;
+    LoggerService* logger;
     PinObserverWrapper* pin_observer;
     EventSniffer* sniffer;
 
@@ -87,7 +87,7 @@ private:
 
         /* Shared components */
         broker       = sEventBroker;
-        logger       = Singleton<LoggerProxy>::getInstance();
+        logger       = Singleton<LoggerService>::getInstance();
         pin_observer = new PinObserverWrapper();
 
         // Bind the logEvent function to the event sniffer in order to log every
diff --git a/src/boards/DeathStack/DeploymentController/Deployment.h b/src/boards/DeathStack/DeploymentController/Deployment.h
index e1099f50ecebd2d6fac42dd0c7dd989072b05190..7d7d3515ab6aa6611ad8e55de6cc52699a695bc2 100644
--- a/src/boards/DeathStack/DeploymentController/Deployment.h
+++ b/src/boards/DeathStack/DeploymentController/Deployment.h
@@ -24,7 +24,7 @@
 #pragma once
 
 #include <drivers/servo/servo.h>
-#include "DeathStack/LogProxy/LogProxy.h"
+#include "DeathStack/LoggerService/LoggerService.h"
 #include "DeathStack/System/StackLogger.h"
 #include "DeathStack/configs/DeploymentConfig.h"
 #include "DeploymentData.h"
@@ -100,7 +100,7 @@ private:
     DeploymentStatus status;
     MotorDriver motor;
 
-    LoggerProxy &logger = *(LoggerProxy::getInstance());
+    LoggerService &logger = *(LoggerService::getInstance());
 
     CircularBuffer<Event, DEFERRED_EVENTS_QUEUE_SIZE> deferred_events;
 
diff --git a/src/boards/DeathStack/FlightModeManager/FlightModeManager.cpp b/src/boards/DeathStack/FlightModeManager/FlightModeManager.cpp
index 7c7554716610c81f99212a02339a560006e81b7f..1d2d9b2d25a4e6f9af841256d7d5304c48444d5a 100644
--- a/src/boards/DeathStack/FlightModeManager/FlightModeManager.cpp
+++ b/src/boards/DeathStack/FlightModeManager/FlightModeManager.cpp
@@ -35,7 +35,7 @@ namespace DeathStackBoard
 
 FlightModeManager::FlightModeManager()
     : HSM(&FlightModeManager::state_initialization, 4096, 2),
-      logger(*(LoggerProxy::getInstance()))
+      logger(*(LoggerService::getInstance()))
 {
     sEventBroker->subscribe(this, TOPIC_ADA);
     sEventBroker->subscribe(this, TOPIC_TC);
diff --git a/src/boards/DeathStack/FlightModeManager/FlightModeManager.h b/src/boards/DeathStack/FlightModeManager/FlightModeManager.h
index 44d4eee3899c8aee6539004039b42f0ca2a9d767..8061ae28691bbe7860030a7a332eb5c863bbe17c 100644
--- a/src/boards/DeathStack/FlightModeManager/FlightModeManager.h
+++ b/src/boards/DeathStack/FlightModeManager/FlightModeManager.h
@@ -27,7 +27,7 @@
 #include "FMMStatus.h"
 #include "events/Event.h"
 #include "events/HSM.h"
-#include "DeathStack/LogProxy/LogProxy.h"
+#include "DeathStack/LoggerService/LoggerService.h"
 
 #include <miosix.h>
 
@@ -98,7 +98,7 @@ public:
 private:
     void logState(FMMState current_state);
 
-    LoggerProxy& logger;
+    LoggerService& logger;
 
     FMMStatus status;
 
diff --git a/src/boards/DeathStack/IgnitionController/IgnitionController.h b/src/boards/DeathStack/IgnitionController/IgnitionController.h
index 3433c1e74f731e30d30f5a33a2b976ea74417c3f..2a885e2ee11cfd714d5ffa091efb531306273a1d 100644
--- a/src/boards/DeathStack/IgnitionController/IgnitionController.h
+++ b/src/boards/DeathStack/IgnitionController/IgnitionController.h
@@ -25,7 +25,7 @@
 #include "IgnitionStatus.h"
 
 #include <events/FSM.h>
-#include <DeathStack/LogProxy/LogProxy.h>
+#include <DeathStack/LoggerService/LoggerService.h>
 #include <DeathStack/Canbus/CanProxy.h>
 
 namespace DeathStackBoard
@@ -70,7 +70,7 @@ private:
     IgnBoardLoggableStatus loggable_board_status;
 
     CanProxy* canbus;
-    LoggerProxy& logger = *(LoggerProxy::getInstance());
+    LoggerService& logger = *(LoggerService::getInstance());
 
     // Id of the IGN_OFFLINE delayed event posted in the Event Broker
     // NOTE: this is needed to cancel the delayed event
diff --git a/src/boards/DeathStack/LogProxy/FlightStatsData.h b/src/boards/DeathStack/LoggerService/FlightStatsData.h
similarity index 100%
rename from src/boards/DeathStack/LogProxy/FlightStatsData.h
rename to src/boards/DeathStack/LoggerService/FlightStatsData.h
diff --git a/src/boards/DeathStack/LogProxy/FlightStats.cpp b/src/boards/DeathStack/LoggerService/FlightStatsRecorder.cpp
similarity index 87%
rename from src/boards/DeathStack/LogProxy/FlightStats.cpp
rename to src/boards/DeathStack/LoggerService/FlightStatsRecorder.cpp
index d30e46f0a849967c85d8eb0ad53f8cf357354348..8a06ca1ccc4759373524cb96d1477435c0523a67 100644
--- a/src/boards/DeathStack/LogProxy/FlightStats.cpp
+++ b/src/boards/DeathStack/LoggerService/FlightStatsRecorder.cpp
@@ -21,26 +21,27 @@
  * THE SOFTWARE.
  */
 
-#include "FlightStats.h"
 #include <cmath>
+#include "FlightStatsRecorder.h"
+
 #include "DeathStack/Events.h"
 #include "DeathStack/System/StackLogger.h"
-#include "LogProxy.h"
+#include "LoggerService.h"
 #include "events/EventBroker.h"
 
 namespace DeathStackBoard
 {
 
-FlightStats::FlightStats() : FSM(&FlightStats::state_idle)
+FlightStatsRecorder::FlightStatsRecorder() : FSM(&FlightStatsRecorder::state_idle)
 {
     sEventBroker->subscribe(this, TOPIC_FLIGHT_EVENTS);
     sEventBroker->subscribe(this, TOPIC_DEPLOYMENT);
     sEventBroker->subscribe(this, TOPIC_STATS);
 }
 
-FlightStats::~FlightStats() { sEventBroker->unsubscribe(this); }
+FlightStatsRecorder::~FlightStatsRecorder() { sEventBroker->unsubscribe(this); }
 
-void FlightStats::update(const KalmanState& t)
+void FlightStatsRecorder::update(const KalmanState& t)
 {
     switch (state)
     {
@@ -71,7 +72,7 @@ void FlightStats::update(const KalmanState& t)
         }
     }
 }
-void FlightStats::update(const KalmanAltitude& t)
+void FlightStatsRecorder::update(const KalmanAltitude& t)
 {
     switch (state)
     {
@@ -114,7 +115,7 @@ void FlightStats::update(const KalmanAltitude& t)
         }
     }
 }
-void FlightStats::update(const AD7994WrapperData& t)
+void FlightStatsRecorder::update(const AD7994WrapperData& t)
 {
     switch (state)
     {
@@ -151,7 +152,7 @@ void FlightStats::update(const AD7994WrapperData& t)
         }
     }
 }
-void FlightStats::update(const MPU9250Data& t)
+void FlightStatsRecorder::update(const MPU9250Data& t)
 {
     switch (state)
     {
@@ -194,7 +195,7 @@ void FlightStats::update(const MPU9250Data& t)
     }
 }
 
-void FlightStats::update(const PiksiData& t)
+void FlightStatsRecorder::update(const PiksiData& t)
 {
     switch (state)
     {
@@ -229,7 +230,7 @@ void FlightStats::update(const PiksiData& t)
     }
 }
 
-void FlightStats::state_idle(const Event& ev)
+void FlightStatsRecorder::state_idle(const Event& ev)
 {
     switch (ev.sig)
     {
@@ -249,12 +250,12 @@ void FlightStats::state_idle(const Event& ev)
         }
         case EV_LIFTOFF:
         {
-            transition(&FlightStats::state_liftOff);
+            transition(&FlightStatsRecorder::state_liftOff);
             break;
         }
         case EV_DPL_ALTITUDE:
         {
-            transition(&FlightStats::state_mainDeployment);
+            transition(&FlightStatsRecorder::state_mainDeployment);
             break;
         }
         default:
@@ -263,7 +264,7 @@ void FlightStats::state_idle(const Event& ev)
         }
     }
 }
-void FlightStats::state_liftOff(const Event& ev)
+void FlightStatsRecorder::state_liftOff(const Event& ev)
 {
     switch (ev.sig)
     {
@@ -287,14 +288,14 @@ void FlightStats::state_liftOff(const Event& ev)
         {
             TRACE("[FlightStats] Exiting LIFTOFF state\n");
 
-            LoggerProxy::getInstance()->log(liftoff_stats);
+            LoggerService::getInstance()->log(liftoff_stats);
 
             sEventBroker->removeDelayed(ev_timeout_id);
             break;
         }
         case EV_FLIGHTSTATS_TIMEOUT:
         {
-            transition(&FlightStats::state_ascending);
+            transition(&FlightStatsRecorder::state_ascending);
             break;
         }
         default:
@@ -303,7 +304,7 @@ void FlightStats::state_liftOff(const Event& ev)
         }
     }
 }
-void FlightStats::state_ascending(const Event& ev)
+void FlightStatsRecorder::state_ascending(const Event& ev)
 {
     switch (ev.sig)
     {
@@ -319,7 +320,7 @@ void FlightStats::state_ascending(const Event& ev)
         {
             TRACE("[FlightStats] Exiting ASCENDING state\n");
 
-            LoggerProxy::getInstance()->log(apogee_stats);
+            LoggerService::getInstance()->log(apogee_stats);
 
             sEventBroker->removeDelayed(ev_timeout_id);
             break;
@@ -339,7 +340,7 @@ void FlightStats::state_ascending(const Event& ev)
         case EV_FLIGHTSTATS_TIMEOUT:
         {
             // Drogue deployment occurs just after apogee
-            transition(&FlightStats::state_drogueDeployment);
+            transition(&FlightStatsRecorder::state_drogueDeployment);
             break;
         }
         default:
@@ -349,7 +350,7 @@ void FlightStats::state_ascending(const Event& ev)
     }
 }
 
-void FlightStats::state_drogueDeployment(const Event& ev)
+void FlightStatsRecorder::state_drogueDeployment(const Event& ev)
 {
     switch (ev.sig)
     {
@@ -371,14 +372,14 @@ void FlightStats::state_drogueDeployment(const Event& ev)
         {
             TRACE("[FlightStats] Entering EXITING state\n");
 
-            LoggerProxy::getInstance()->log(drogue_dpl_stats);
+            LoggerService::getInstance()->log(drogue_dpl_stats);
 
             sEventBroker->removeDelayed(ev_timeout_id);
             break;
         }
         case EV_FLIGHTSTATS_TIMEOUT:
         {
-            transition(&FlightStats::state_idle);
+            transition(&FlightStatsRecorder::state_idle);
             break;
         }
         default:
@@ -388,7 +389,7 @@ void FlightStats::state_drogueDeployment(const Event& ev)
     }
 }
 
-void FlightStats::state_mainDeployment(const Event& ev)
+void FlightStatsRecorder::state_mainDeployment(const Event& ev)
 {
     switch (ev.sig)
     {
@@ -413,14 +414,14 @@ void FlightStats::state_mainDeployment(const Event& ev)
         {
             TRACE("[FlightStats] Exiting MAIN DPL state\n");
 
-            LoggerProxy::getInstance()->log(main_dpl_stats);
+            LoggerService::getInstance()->log(main_dpl_stats);
 
             sEventBroker->removeDelayed(ev_timeout_id);
             break;
         }
         case EV_FLIGHTSTATS_TIMEOUT:
         {
-            transition(&FlightStats::state_idle);
+            transition(&FlightStatsRecorder::state_idle);
             break;
         }
         default:
diff --git a/src/boards/DeathStack/LogProxy/FlightStats.h b/src/boards/DeathStack/LoggerService/FlightStatsRecorder.h
similarity index 92%
rename from src/boards/DeathStack/LogProxy/FlightStats.h
rename to src/boards/DeathStack/LoggerService/FlightStatsRecorder.h
index 9740589f256aba44b83372ba501856006632a5ef..5ecb57af8dc1f7b3723afa3ef7274c91ef0e18ec 100644
--- a/src/boards/DeathStack/LogProxy/FlightStats.h
+++ b/src/boards/DeathStack/LoggerService/FlightStatsRecorder.h
@@ -25,7 +25,7 @@
 
 #include <events/FSM.h>
 
-#include "Telemetries.h"
+#include "TmRepository.h"
 
 #include "DeathStack/ADA/ADAStatus.h"
 #include "DeathStack/SensorManager/Sensors/AD7994WrapperData.h"
@@ -38,16 +38,16 @@ namespace DeathStackBoard
 {
 
 /**
- * Records statistics about the flight such as maximum acceleration during
+ * @brief Records statistics about the flight such as maximum acceleration during
  * liftoff, maximum altitude, maximum speed etc. In order to do so, we need to
  * know in which stage of the flight we are in, and we do so using a state
  * machine and receiving events from the topic FLIGHT_EVENTS
  */
-class FlightStats : public FSM<FlightStats>
+class FlightStatsRecorder : public FSM<FlightStatsRecorder>
 {
 public:
-    FlightStats();
-    ~FlightStats();
+    FlightStatsRecorder();
+    ~FlightStatsRecorder();
 
     void update(const KalmanState& t);
     void update(const KalmanAltitude& t);
diff --git a/src/boards/DeathStack/LogProxy/LogProxy.cpp b/src/boards/DeathStack/LoggerService/LoggerService.cpp
similarity index 90%
rename from src/boards/DeathStack/LogProxy/LogProxy.cpp
rename to src/boards/DeathStack/LoggerService/LoggerService.cpp
index 9321946a3842b19e9bf46d9cf4eb558eeaf2ee56..32c5798a4d3a16d0c5a547a8aa92bbf63d5cbe52 100644
--- a/src/boards/DeathStack/LogProxy/LogProxy.cpp
+++ b/src/boards/DeathStack/LoggerService/LoggerService.cpp
@@ -19,9 +19,9 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
-#include "LogProxy.h"
-#include "FlightStats.h"
-#include "Telemetries.h"
+#include "LoggerService.h"
+#include "FlightStatsRecorder.h"
+#include "TmRepository.h"
 
 #include "DeathStack/ADA/ADAStatus.h"
 #include "DeathStack/DeathStackStatus.h"
@@ -43,7 +43,7 @@
 namespace DeathStackBoard
 {
 /**
- * Each function here is an implementation of the log() method for a
+ * @brief Each function here is an implementation of the log() method for a
  * specific status struct or class.
  * The rationale is that, whenever a status struct is logged, the corresponding
  * telemetry struct is updated synchronously in the telemetry repo.
@@ -52,7 +52,7 @@ namespace DeathStackBoard
  */
 
 template <>
-LogResult LoggerProxy::log<DeathStackStatus>(const DeathStackStatus& t)
+LogResult LoggerService::log<DeathStackStatus>(const DeathStackStatus& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -73,7 +73,7 @@ LogResult LoggerProxy::log<DeathStackStatus>(const DeathStackStatus& t)
 
 /* Flight Mode Manager */
 template <>
-LogResult LoggerProxy::log<FMMStatus>(const FMMStatus& t)
+LogResult LoggerService::log<FMMStatus>(const FMMStatus& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -89,7 +89,7 @@ LogResult LoggerProxy::log<FMMStatus>(const FMMStatus& t)
 
 /* Launch and Nosecone detachment pins */
 template <>
-LogResult LoggerProxy::log<PinStatus>(const PinStatus& t)
+LogResult LoggerService::log<PinStatus>(const PinStatus& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -139,7 +139,7 @@ LogResult LoggerProxy::log<PinStatus>(const PinStatus& t)
 
 /* Ignition Board */
 template <>
-LogResult LoggerProxy::log<IgnBoardLoggableStatus>(
+LogResult LoggerService::log<IgnBoardLoggableStatus>(
     const IgnBoardLoggableStatus& t)
 {
     {
@@ -157,7 +157,7 @@ LogResult LoggerProxy::log<IgnBoardLoggableStatus>(
 
 /* Ignition Controller */
 template <>
-LogResult LoggerProxy::log<IgnCtrlStatus>(const IgnCtrlStatus& t)
+LogResult LoggerService::log<IgnCtrlStatus>(const IgnCtrlStatus& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -179,7 +179,7 @@ LogResult LoggerProxy::log<IgnCtrlStatus>(const IgnCtrlStatus& t)
 
 /* Logger */
 template <>
-LogResult LoggerProxy::log<LogStats>(const LogStats& t)
+LogResult LoggerService::log<LogStats>(const LogStats& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -200,7 +200,7 @@ LogResult LoggerProxy::log<LogStats>(const LogStats& t)
 
 /* TMTCManager (Mavlink) */
 template <>
-LogResult LoggerProxy::log<MavStatus>(
+LogResult LoggerService::log<MavStatus>(
     const MavStatus& t)  // da controllare l'enum nella MavStatus logger
 {
     {
@@ -228,7 +228,7 @@ LogResult LoggerProxy::log<MavStatus>(
 
 /* Sensor Manager */
 template <>
-LogResult LoggerProxy::log<SensorManagerStatus>(const SensorManagerStatus& t)
+LogResult LoggerService::log<SensorManagerStatus>(const SensorManagerStatus& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -240,7 +240,7 @@ LogResult LoggerProxy::log<SensorManagerStatus>(const SensorManagerStatus& t)
 }
 /* Deployment Controller */
 template <>
-LogResult LoggerProxy::log<DeploymentStatus>(const DeploymentStatus& t)
+LogResult LoggerService::log<DeploymentStatus>(const DeploymentStatus& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -260,7 +260,7 @@ LogResult LoggerProxy::log<DeploymentStatus>(const DeploymentStatus& t)
 
 /* ADA state machine */
 template <>
-LogResult LoggerProxy::log<ADAStatus>(const ADAStatus& t)
+LogResult LoggerService::log<ADAStatus>(const ADAStatus& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -272,7 +272,7 @@ LogResult LoggerProxy::log<ADAStatus>(const ADAStatus& t)
 
 /* ADA target dpl pressure */
 template <>
-LogResult LoggerProxy::log<TargetDeploymentAltitude>(
+LogResult LoggerService::log<TargetDeploymentAltitude>(
     const TargetDeploymentAltitude& t)
 {
     {
@@ -285,7 +285,7 @@ LogResult LoggerProxy::log<TargetDeploymentAltitude>(
 
 /* ADA kalman filter values */
 template <>
-LogResult LoggerProxy::log<KalmanState>(const KalmanState& t)
+LogResult LoggerService::log<KalmanState>(const KalmanState& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -302,7 +302,7 @@ LogResult LoggerProxy::log<KalmanState>(const KalmanState& t)
 
 /* ADA kalman altitude values */
 template <>
-LogResult LoggerProxy::log<KalmanAltitude>(const KalmanAltitude& t)
+LogResult LoggerService::log<KalmanAltitude>(const KalmanAltitude& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -316,7 +316,7 @@ LogResult LoggerProxy::log<KalmanAltitude>(const KalmanAltitude& t)
 }
 
 template <>
-LogResult LoggerProxy::log<ReferenceValues>(const ReferenceValues& t)
+LogResult LoggerService::log<ReferenceValues>(const ReferenceValues& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -332,7 +332,7 @@ LogResult LoggerProxy::log<ReferenceValues>(const ReferenceValues& t)
 }
 
 template <>
-LogResult LoggerProxy::log<ADACalibrationData>(const ADACalibrationData& t)
+LogResult LoggerService::log<ADACalibrationData>(const ADACalibrationData& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -346,7 +346,7 @@ LogResult LoggerProxy::log<ADACalibrationData>(const ADACalibrationData& t)
 
 /* Canbus stats */
 template <>
-LogResult LoggerProxy::log<CanStatus>(const CanStatus& t)
+LogResult LoggerService::log<CanStatus>(const CanStatus& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -363,7 +363,7 @@ LogResult LoggerProxy::log<CanStatus>(const CanStatus& t)
 
 /* Main Barometer */
 template <>
-LogResult LoggerProxy::log<AD7994WrapperData>(const AD7994WrapperData& t)
+LogResult LoggerService::log<AD7994WrapperData>(const AD7994WrapperData& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -390,7 +390,7 @@ LogResult LoggerProxy::log<AD7994WrapperData>(const AD7994WrapperData& t)
 
 /* Battery status, sampled by internal ADC */
 template <>
-LogResult LoggerProxy::log<BatteryVoltageData>(const BatteryVoltageData& t)
+LogResult LoggerService::log<BatteryVoltageData>(const BatteryVoltageData& t)
 {
     tm_repository.adc_tm.battery_voltage = t.volt;
     tm_repository.test_tm.battery_volt   = t.volt;
@@ -400,7 +400,7 @@ LogResult LoggerProxy::log<BatteryVoltageData>(const BatteryVoltageData& t)
 
 /* Motor current sense, sampled by internal ADC */
 template <>
-LogResult LoggerProxy::log<CurrentSenseData>(const CurrentSenseData& t)
+LogResult LoggerService::log<CurrentSenseData>(const CurrentSenseData& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -416,7 +416,7 @@ LogResult LoggerProxy::log<CurrentSenseData>(const CurrentSenseData& t)
 
 /* ADIS imu */
 template <>
-LogResult LoggerProxy::log<ADIS16405Data>(const ADIS16405Data& t)
+LogResult LoggerService::log<ADIS16405Data>(const ADIS16405Data& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -443,7 +443,7 @@ LogResult LoggerProxy::log<ADIS16405Data>(const ADIS16405Data& t)
 
 /* MPU imu */
 template <>
-LogResult LoggerProxy::log<MPU9250Data>(const MPU9250Data& t)
+LogResult LoggerService::log<MPU9250Data>(const MPU9250Data& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -474,7 +474,7 @@ LogResult LoggerProxy::log<MPU9250Data>(const MPU9250Data& t)
 
 /* LM75b temperature */
 template <>
-LogResult LoggerProxy::log<LM75BData>(const LM75BData& t)
+LogResult LoggerService::log<LM75BData>(const LM75BData& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -500,7 +500,7 @@ LogResult LoggerProxy::log<LM75BData>(const LM75BData& t)
 
 /* GPS */
 template <>
-LogResult LoggerProxy::log<PiksiData>(const PiksiData& t)
+LogResult LoggerService::log<PiksiData>(const PiksiData& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -538,7 +538,7 @@ LogResult LoggerProxy::log<PiksiData>(const PiksiData& t)
 }
 
 template <>
-LogResult LoggerProxy::log<TaskStatResult>(const TaskStatResult& t)
+LogResult LoggerService::log<TaskStatResult>(const TaskStatResult& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -571,7 +571,7 @@ LogResult LoggerProxy::log<TaskStatResult>(const TaskStatResult& t)
 }
 
 template <>
-LogResult LoggerProxy::log<LiftOffStats>(const LiftOffStats& t)
+LogResult LoggerService::log<LiftOffStats>(const LiftOffStats& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -590,7 +590,7 @@ LogResult LoggerProxy::log<LiftOffStats>(const LiftOffStats& t)
 }
 
 template <>
-LogResult LoggerProxy::log<ApogeeStats>(const ApogeeStats& t)
+LogResult LoggerService::log<ApogeeStats>(const ApogeeStats& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -610,7 +610,7 @@ LogResult LoggerProxy::log<ApogeeStats>(const ApogeeStats& t)
 }
 
 template <>
-LogResult LoggerProxy::log<DrogueDPLStats>(const DrogueDPLStats& t)
+LogResult LoggerService::log<DrogueDPLStats>(const DrogueDPLStats& t)
 {
     {
         miosix::PauseKernelLock kLock;
@@ -623,7 +623,7 @@ LogResult LoggerProxy::log<DrogueDPLStats>(const DrogueDPLStats& t)
 }
 
 template <>
-LogResult LoggerProxy::log<MainDPLStats>(const MainDPLStats& t)
+LogResult LoggerService::log<MainDPLStats>(const MainDPLStats& t)
 {
     {
         miosix::PauseKernelLock kLock;
diff --git a/src/boards/DeathStack/LogProxy/LogProxy.h b/src/boards/DeathStack/LoggerService/LoggerService.h
similarity index 64%
rename from src/boards/DeathStack/LogProxy/LogProxy.h
rename to src/boards/DeathStack/LoggerService/LoggerService.h
index 6b315c696597f8f35ee9d0added9b67946e93ae5..b10037fa77d4eefd1a3248cb1c8d1ff2823ff6e1 100644
--- a/src/boards/DeathStack/LogProxy/LogProxy.h
+++ b/src/boards/DeathStack/LoggerService/LoggerService.h
@@ -22,12 +22,11 @@
 
 #pragma once
 
-#include "FlightStats.h"
 #include "Singleton.h"
 #include "logger/Logger.h"
 
-#include "FlightStats.h"
-#include "Telemetries.h"
+#include "FlightStatsRecorder.h"
+#include "TmRepository.h"
 
 #include "DeathStack/ADA/ADAStatus.h"
 #include "DeathStack/DeathStackStatus.h"
@@ -51,22 +50,22 @@ namespace DeathStackBoard
 
 /**
  * @brief This class is interposed between the OBSW and the Logger driver.
- * Status repository updating is done here: everytime a component
- * logs its status, the corresponding tm structs are updated before logging
- * on SD card.
+ * Every time a component logs its status, the log function for that specific
+ * struct is called. In this way, the Logger updates the Tm Repository before
+ * logging on SD card.
  */
-class LoggerProxy : public Singleton<LoggerProxy>
+class LoggerService : public Singleton<LoggerService>
 {
-    friend class Singleton<LoggerProxy>;
+    friend class Singleton<LoggerService>;
 
 public:
-    LoggerProxy() : logger(Logger::instance())
+    LoggerService() : logger(Logger::instance())
     {
         initTelemetries();
         flight_stats.start();
     }
 
-    ~LoggerProxy() {}
+    ~LoggerService() {}
 
     /* Generic log function, to be implemented for each loggable struct */
     template <typename T>
@@ -99,113 +98,113 @@ public:
 
 private:
     Logger& logger;  // SD logger
-    FlightStats flight_stats{};
+    FlightStatsRecorder flight_stats{};
 };
 
 template <>
-LogResult LoggerProxy::log<DeathStackStatus>(const DeathStackStatus& t);
+LogResult LoggerService::log<DeathStackStatus>(const DeathStackStatus& t);
 
 /* Flight Mode Manager */
 template <>
-LogResult LoggerProxy::log<FMMStatus>(const FMMStatus& t);
+LogResult LoggerService::log<FMMStatus>(const FMMStatus& t);
 
 /* Launch and Nosecone detachment pins */
 template <>
-LogResult LoggerProxy::log<PinStatus>(const PinStatus& t);
+LogResult LoggerService::log<PinStatus>(const PinStatus& t);
 
 /* Ignition Board */
 template <>
-LogResult LoggerProxy::log<IgnBoardLoggableStatus>(
+LogResult LoggerService::log<IgnBoardLoggableStatus>(
     const IgnBoardLoggableStatus& t);
 
 /* Ignition Controller */
 template <>
-LogResult LoggerProxy::log<IgnCtrlStatus>(const IgnCtrlStatus& t);
+LogResult LoggerService::log<IgnCtrlStatus>(const IgnCtrlStatus& t);
 
 /* Logger */
 template <>
-LogResult LoggerProxy::log<LogStats>(const LogStats& t);
+LogResult LoggerService::log<LogStats>(const LogStats& t);
 
 /* TMTCManager (Mavlink) */
 template <>
-LogResult LoggerProxy::log<MavStatus>(const MavStatus& t);
+LogResult LoggerService::log<MavStatus>(const MavStatus& t);
 
 /* Sensor Manager */
 template <>
-LogResult LoggerProxy::log<SensorManagerStatus>(const SensorManagerStatus& t);
+LogResult LoggerService::log<SensorManagerStatus>(const SensorManagerStatus& t);
 
 /* Deployment Controller */
 template <>
-LogResult LoggerProxy::log<DeploymentStatus>(const DeploymentStatus& t);
+LogResult LoggerService::log<DeploymentStatus>(const DeploymentStatus& t);
 
 /* ADA state machine */
 template <>
-LogResult LoggerProxy::log<ADAStatus>(const ADAStatus& t);
+LogResult LoggerService::log<ADAStatus>(const ADAStatus& t);
 
 /* ADA target dpl pressure */
 template <>
-LogResult LoggerProxy::log<TargetDeploymentAltitude>(
+LogResult LoggerService::log<TargetDeploymentAltitude>(
     const TargetDeploymentAltitude& t);
 
 /* ADA kalman filter values */
 template <>
-LogResult LoggerProxy::log<KalmanState>(const KalmanState& t);
+LogResult LoggerService::log<KalmanState>(const KalmanState& t);
 
 /* ADA kalman altitude values */
 template <>
-LogResult LoggerProxy::log<KalmanAltitude>(const KalmanAltitude& t);
+LogResult LoggerService::log<KalmanAltitude>(const KalmanAltitude& t);
 
 template <>
-LogResult LoggerProxy::log<ReferenceValues>(const ReferenceValues& t);
+LogResult LoggerService::log<ReferenceValues>(const ReferenceValues& t);
 
 template <>
-LogResult LoggerProxy::log<ADACalibrationData>(const ADACalibrationData& t);
+LogResult LoggerService::log<ADACalibrationData>(const ADACalibrationData& t);
 
 /* Canbus stats */
 template <>
-LogResult LoggerProxy::log<CanStatus>(const CanStatus& t);
+LogResult LoggerService::log<CanStatus>(const CanStatus& t);
 
 /* Main Barometer */
 template <>
-LogResult LoggerProxy::log<AD7994WrapperData>(const AD7994WrapperData& t);
+LogResult LoggerService::log<AD7994WrapperData>(const AD7994WrapperData& t);
 
 /* Battery status, sampled by internal ADC */
 template <>
-LogResult LoggerProxy::log<BatteryVoltageData>(const BatteryVoltageData& t);
+LogResult LoggerService::log<BatteryVoltageData>(const BatteryVoltageData& t);
 
 /* Motor current sense, sampled by internal ADC */
 template <>
-LogResult LoggerProxy::log<CurrentSenseData>(const CurrentSenseData& t);
+LogResult LoggerService::log<CurrentSenseData>(const CurrentSenseData& t);
 
 /* ADIS imu */
 template <>
-LogResult LoggerProxy::log<ADIS16405Data>(const ADIS16405Data& t);
+LogResult LoggerService::log<ADIS16405Data>(const ADIS16405Data& t);
 
 /* MPU imu */
 template <>
-LogResult LoggerProxy::log<MPU9250Data>(const MPU9250Data& t);
+LogResult LoggerService::log<MPU9250Data>(const MPU9250Data& t);
 
 /* GPS */
 template <>
-LogResult LoggerProxy::log<PiksiData>(const PiksiData& t);
+LogResult LoggerService::log<PiksiData>(const PiksiData& t);
 
 /* LM75b temperature */
 template <>
-LogResult LoggerProxy::log<LM75BData>(const LM75BData& t);
+LogResult LoggerService::log<LM75BData>(const LM75BData& t);
 
 template <>
-LogResult LoggerProxy::log<TaskStatResult>(const TaskStatResult& t);
+LogResult LoggerService::log<TaskStatResult>(const TaskStatResult& t);
 
 template <>
-LogResult LoggerProxy::log<LiftOffStats>(const LiftOffStats& t);
+LogResult LoggerService::log<LiftOffStats>(const LiftOffStats& t);
 
 template <>
-LogResult LoggerProxy::log<ApogeeStats>(const ApogeeStats& t);
+LogResult LoggerService::log<ApogeeStats>(const ApogeeStats& t);
 
 template <>
-LogResult LoggerProxy::log<DrogueDPLStats>(const DrogueDPLStats& t);
+LogResult LoggerService::log<DrogueDPLStats>(const DrogueDPLStats& t);
 
 template <>
-LogResult LoggerProxy::log<MainDPLStats>(const MainDPLStats& t);
+LogResult LoggerService::log<MainDPLStats>(const MainDPLStats& t);
 
 }  // namespace DeathStackBoard
\ No newline at end of file
diff --git a/src/boards/DeathStack/LogProxy/Telemetries.cpp b/src/boards/DeathStack/LoggerService/TmRepository.cpp
similarity index 50%
rename from src/boards/DeathStack/LogProxy/Telemetries.cpp
rename to src/boards/DeathStack/LoggerService/TmRepository.cpp
index d11f3a28053ace364f79fc645fa574bb242d2871..c23f3eb501d1fe1f3f520ea7e777843f406e3c08 100644
--- a/src/boards/DeathStack/LogProxy/Telemetries.cpp
+++ b/src/boards/DeathStack/LoggerService/TmRepository.cpp
@@ -1,9 +1,10 @@
-#include "Telemetries.h"
+#include "TmRepository.h"
 
 namespace DeathStackBoard
 {
 
-Telemetries tm_repository;
+/* Global struct containing all telemetry packets. */
+TmRepository_t tm_repository;
 
 void initTelemetries()
 {
diff --git a/src/boards/DeathStack/LogProxy/Telemetries.h b/src/boards/DeathStack/LoggerService/TmRepository.h
similarity index 75%
rename from src/boards/DeathStack/LogProxy/Telemetries.h
rename to src/boards/DeathStack/LoggerService/TmRepository.h
index 9757470bde5ab397cf79e8f4fc4128dd50fa2615..fe09dfc8545ca8daea6ed03ef67d80a6cfa341c4 100644
--- a/src/boards/DeathStack/LogProxy/Telemetries.h
+++ b/src/boards/DeathStack/LoggerService/TmRepository.h
@@ -25,37 +25,19 @@
 
 #include <mavlink_skyward_lib/mavlink_lib/hermes/mavlink.h>
 
+
+/**
+ * @brief This file contains all telemetry packets in the form of mavlink structs.
+ * These packets are updated by the LoggerService and read by the TMTCManager.
+ * 
+ * Notice that, if the LoggerService is not active, the value inside tm packets WILL
+ * NOT BE UPDATED.
+ */
 namespace DeathStackBoard
 {
-/* Enumeration of all possible TMs
-enum MavTMList: uint8_t
-{
-    MAV_HM1_TM_ID,
-    MAV_IGN_TM_ID,
-    MAV_HR_TM_ID,
-    MAV_LR_TM_ID,
-    MAV_LOGGER_TM_ID,
-    MAV_TMTC_TM_ID,
-    MAV_SM_TM_ID,
-    MAV_IGN_CTRL_TM_ID,
-    MAV_DPL_CTRL_TM_ID,
-    MAV_ADA_TM_ID,
-    MAV_CAN_TM_ID,
-    MAV_AD7994_TM_ID,
-    MAV_ADC_TM_ID,
-    MAV_ADIS_TM_ID,
-    MAV_MPU_TM_ID,
-    MAV_GPS_TM_ID,
-    MAV_POS_TM_ID,
-    MAV_SM_TASK1_TM_ID,
-    MAV_SM_TASK2_TM_ID,
-    MAV_SM_TASK3_TM_ID,
-    MAV_SM_TASK4_TM_ID,
-    MAV_SM_TASK5_TM_ID,
-}; */
 
 /* Struct containing all tms in the form of mavlink structs */
-struct Telemetries
+struct TmRepository_t
 {
     mavlink_sys_tm_t sys_tm;
     mavlink_fmm_tm_t fmm_tm;
@@ -80,8 +62,12 @@ struct Telemetries
     mavlink_test_tm_t test_tm;
 };
 
-extern Telemetries tm_repository;
+/* Forward declaration of the global struct. */
+extern TmRepository_t tm_repository;
 
+/**
+ * @brief This function initializes all the packets with 0s.
+ */
 void initTelemetries();
 
-}  // namespace Status
\ No newline at end of file
+}  // namespace DeathStackBoard
\ No newline at end of file
diff --git a/src/boards/DeathStack/PinObserver/PinObserverWrapper.cpp b/src/boards/DeathStack/PinObserver/PinObserverWrapper.cpp
index f64dee65cb33c82c6d220ca08e3677de02bd58b9..3866db779f3b070ed50db52c5c5064f3223b9ad0 100644
--- a/src/boards/DeathStack/PinObserver/PinObserverWrapper.cpp
+++ b/src/boards/DeathStack/PinObserver/PinObserverWrapper.cpp
@@ -25,7 +25,7 @@
 #include <events/EventBroker.h>
 #include <functional>
 #include "DeathStack/Events.h"
-#include "DeathStack/LogProxy/LogProxy.h"
+#include "DeathStack/LoggerService/LoggerService.h"
 
 using std::bind;
 
@@ -33,7 +33,7 @@ namespace DeathStackBoard
 {
 
 PinObserverWrapper::PinObserverWrapper()
-    : pin_obs(PIN_POLL_INTERVAL), logger(LoggerProxy::getInstance())
+    : pin_obs(PIN_POLL_INTERVAL), logger(LoggerService::getInstance())
 {
     // Used for _1, _2. See std::bind cpp reference
     using namespace std::placeholders;
diff --git a/src/boards/DeathStack/PinObserver/PinObserverWrapper.h b/src/boards/DeathStack/PinObserver/PinObserverWrapper.h
index ab2a71b30379bda43d4fdb2579f94d982170a8a7..9783734f235ede42e0588f6172b7d313385e7f52 100644
--- a/src/boards/DeathStack/PinObserver/PinObserverWrapper.h
+++ b/src/boards/DeathStack/PinObserver/PinObserverWrapper.h
@@ -31,7 +31,7 @@ namespace DeathStackBoard
 {
 
 //Forward dec
-class LoggerProxy;
+class LoggerService;
 
 class PinObserverWrapper
 {
@@ -85,7 +85,7 @@ private:
 
     PinObserver pin_obs;
 
-    LoggerProxy* logger;
+    LoggerService* logger;
 };
 
 }  // namespace DeathStackBoard
\ No newline at end of file
diff --git a/src/boards/DeathStack/SensorManager/SensorManager.cpp b/src/boards/DeathStack/SensorManager/SensorManager.cpp
index a02646b0a6af7490f9276df30f9edf53973a1a68..616a8fb2c1e9b64b4820f452abf86016b114eccf 100644
--- a/src/boards/DeathStack/SensorManager/SensorManager.cpp
+++ b/src/boards/DeathStack/SensorManager/SensorManager.cpp
@@ -63,7 +63,7 @@ namespace DeathStackBoard
 
 SensorManager::SensorManager(ADA* ada)
     : FSM(&SensorManager::stateIdle), scheduler(),
-      logger(*LoggerProxy::getInstance()), ada(ada)
+      logger(*LoggerService::getInstance()), ada(ada)
 {
     sEventBroker->subscribe(this, TOPIC_FLIGHT_EVENTS);
     sEventBroker->subscribe(this, TOPIC_TC);
diff --git a/src/boards/DeathStack/SensorManager/SensorManager.h b/src/boards/DeathStack/SensorManager/SensorManager.h
index 059e22b246a43cae4a7c216afab5b49fcbaaf6f7..34eb3376e5b66a4f36c4328254396b687f23c17f 100644
--- a/src/boards/DeathStack/SensorManager/SensorManager.h
+++ b/src/boards/DeathStack/SensorManager/SensorManager.h
@@ -29,7 +29,7 @@
 #include <scheduler/TaskScheduler.h>
 #include <sensors/SensorSampling.h>
 
-#include "DeathStack/LogProxy/LogProxy.h"
+#include "DeathStack/LoggerService/LoggerService.h"
 #include "DeathStack/configs/SensorManagerConfig.h"
 #include "events/FSM.h"
 
@@ -142,7 +142,7 @@ private:
 
     TaskScheduler scheduler;
     // Logger ref
-    LoggerProxy& logger;
+    LoggerService& logger;
 
     bool enable_sensor_logging = false;
 
diff --git a/src/boards/DeathStack/TMTCManager/TCHandler.h b/src/boards/DeathStack/TMTCManager/TCHandler.h
index 2d828afbd69fc36c9dd1826d246109ac443490c7..7c00e1b9c9846d732dc1b38287f3fb1246d54735 100644
--- a/src/boards/DeathStack/TMTCManager/TCHandler.h
+++ b/src/boards/DeathStack/TMTCManager/TCHandler.h
@@ -24,7 +24,7 @@
 
 #include <Common.h>
 
-#include <DeathStack/LogProxy/LogProxy.h>
+#include <DeathStack/LoggerService/LoggerService.h>
 #include <DeathStack/configs/TMTCConfig.h>
 #include "DeathStack/DeathStack.h"
 #include "DeathStack/Events.h"
@@ -95,7 +95,7 @@ static void handleMavlinkMessage(MavChannel* channel,
 
     /* Log Status */
     MavStatus status = channel->getStatus();
-    LoggerProxy::getInstance()->log(status);
+    LoggerService::getInstance()->log(status);
 
     /* Send acknowledge */
     sendAck(channel, msg);
diff --git a/src/boards/DeathStack/TMTCManager/TMBuilder.h b/src/boards/DeathStack/TMTCManager/TMBuilder.h
index 1dabb40da9c495e6f2ab9b5199171a956ff3b064..4a991e458109cfcde6eff94f0778a43cbeab2f4e 100644
--- a/src/boards/DeathStack/TMTCManager/TMBuilder.h
+++ b/src/boards/DeathStack/TMTCManager/TMBuilder.h
@@ -23,7 +23,7 @@
 #pragma once
 
 #include <Common.h>
-#include <DeathStack/LogProxy/Telemetries.h>
+#include <DeathStack/LoggerService/TmRepository.h>
 #include <DeathStack/configs/TMTCConfig.h>
 
 namespace DeathStackBoard
diff --git a/src/boards/DeathStack/TMTCManager/TMTCManager.h b/src/boards/DeathStack/TMTCManager/TMTCManager.h
index b85227fe305c4fe824fcc0f739dab424e689545f..8fb3b9d891303055195a4194e290bf7354973cff 100644
--- a/src/boards/DeathStack/TMTCManager/TMTCManager.h
+++ b/src/boards/DeathStack/TMTCManager/TMTCManager.h
@@ -27,7 +27,7 @@
 #include "events/FSM.h"
 
 #include <drivers/mavlink/MavChannel.h>
-#include <DeathStack/LogProxy/LogProxy.h>
+#include <DeathStack/LoggerService/LoggerService.h>
 #include <interfaces-impl/hwmapping.h>
 
 namespace DeathStackBoard
@@ -68,7 +68,7 @@ private:
     Xbee_t* device;
     MavChannel* channel;
 
-    LoggerProxy& logger = *(LoggerProxy::getInstance());
+    LoggerService& logger = *(LoggerService::getInstance());
 
     /* State handlers */
     void stateIdle(const Event& ev);
diff --git a/src/entrypoints/death-stack-testsuite.cpp b/src/entrypoints/death-stack-testsuite.cpp
index a3cdf9d1fb87c49ac44f083e939c8e70aac45a34..a2ea19d530f6e80169783102524443dfa67bb9ff 100644
--- a/src/entrypoints/death-stack-testsuite.cpp
+++ b/src/entrypoints/death-stack-testsuite.cpp
@@ -37,7 +37,7 @@
 
 #include "Common.h"
 #include "DeathStack/ADA/ADA.h"
-#include "DeathStack/LogProxy/LogProxy.h"
+#include "DeathStack/LoggerService/LoggerService.h"
 #include "DeathStack/SensorManager/SensorManager.h"
 #include "diagnostic/CpuMeter.h"
 #include "events/EventBroker.h"
diff --git a/src/entrypoints/deserializer/LogTypes.h b/src/entrypoints/deserializer/LogTypes.h
index a259bc308d550f0ed073087e22bceb8751769059..53d498ec95358c254effec1c05b2f88412ddf31f 100644
--- a/src/entrypoints/deserializer/LogTypes.h
+++ b/src/entrypoints/deserializer/LogTypes.h
@@ -31,7 +31,7 @@
 #include "DeathStack/DeathStackStatus.h"
 #include "DeathStack/DeploymentController/DeploymentData.h"
 #include "DeathStack/FlightModeManager/FMMStatus.h"
-#include "DeathStack/LogProxy/FlightStatsData.h"
+#include "DeathStack/LoggerService/FlightStatsData.h"
 #include "DeathStack/PinObserver/PinObserverData.h"
 #include "DeathStack/SensorManager/SensorManagerData.h"
 #include "DeathStack/SensorManager/Sensors/AD7994WrapperData.h"
diff --git a/src/tests/test-logproxy.cpp b/src/tests/test-logproxy.cpp
index 732b08fe4100888a0ef331bf319a1bb5dc3cd1d1..2a5030d23d4a4b77c67f80614780e4b9cc8e51ab 100644
--- a/src/tests/test-logproxy.cpp
+++ b/src/tests/test-logproxy.cpp
@@ -20,14 +20,14 @@
  * THE SOFTWARE.
  */
 #include <Common.h>
-#include <boards/DeathStack/LogProxy/LogProxy.h>
+#include <boards/DeathStack/LoggerService/LoggerService.h>
 
 using namespace miosix;
 using namespace DeathStackBoard;
 
 int main()
 {
-    LoggerProxy* logger = LoggerProxy::getInstance();
+    LoggerService* logger = LoggerService::getInstance();
 
     UNUSED(logger);
 
diff --git a/src/tests/test-sensormanager.cpp b/src/tests/test-sensormanager.cpp
index 6b15ec013f1a82e405c430bf61f49e2b51d1a8aa..7dc9852a2ced6bec64b9734680d44ebc49f9195d 100644
--- a/src/tests/test-sensormanager.cpp
+++ b/src/tests/test-sensormanager.cpp
@@ -23,7 +23,7 @@
 #include "Common.h"
 #include "DeathStack/ADA/ADA.h"
 #include "DeathStack/Events.h"
-#include "DeathStack/LogProxy/LogProxy.h"
+#include "DeathStack/LoggerService/LoggerService.h"
 #include "DeathStack/SensorManager/SensorManager.h"
 #include "diagnostic/CpuMeter.h"
 #include "events/EventBroker.h"
@@ -39,7 +39,7 @@ int main()
     // ada.start();
     try
     {
-        LoggerProxy::getInstance()->start();
+        LoggerService::getInstance()->start();
     }
     catch (const std::exception& e)
     {
@@ -74,7 +74,7 @@ int main()
 
     printf("CPU: %f%%, min: %f max: %f\n", s.getStats().mean,
            s.getStats().minValue, s.getStats().maxValue);
-    LoggerProxy::getInstance()->stop();
+    LoggerService::getInstance()->stop();
     printf("End\n");
 
     for (;;)
diff --git a/src/tests/test-sm+tmtc.cpp b/src/tests/test-sm+tmtc.cpp
index e27b917ffba85f74f0395ae5c9a293874f3b4c09..69e904b4fdc1e2ef66e07637dc71d7bec9e54bc6 100644
--- a/src/tests/test-sm+tmtc.cpp
+++ b/src/tests/test-sm+tmtc.cpp
@@ -29,7 +29,7 @@
 
 #include "Common.h"
 #include "DeathStack/ADA/ADA.h"
-#include "DeathStack/LogProxy/LogProxy.h"
+#include "DeathStack/LoggerService/LoggerService.h"
 #include "DeathStack/SensorManager/SensorManager.h"
 #include "diagnostic/CpuMeter.h"
 #include "events/EventBroker.h"
@@ -50,7 +50,7 @@ int main()
     // ada.start();
     try
     {
-        LoggerProxy::getInstance()->start();
+        LoggerService::getInstance()->start();
     }
     catch (const std::exception& e)
     {