diff --git a/src/boards/Groundstation/Nokia/Buses.h b/src/boards/Groundstation/Nokia/Buses.h
index 8a3f17a1865b311d626f89ceb74b858fe26db83a..d167571c6ae835426613c9ec01f1e47c2382fd51 100644
--- a/src/boards/Groundstation/Nokia/Buses.h
+++ b/src/boards/Groundstation/Nokia/Buses.h
@@ -23,15 +23,14 @@
 #pragma once
 
 #include <drivers/spi/SPIBus.h>
-
-#include <utils/ModuleManager/ModuleManager.hpp>
+#include <utils/DependencyManager/DependencyManager.h>
 
 #include "interfaces-impl/hwmapping.h"
 
 namespace GroundstationNokia
 {
 
-class Buses : public Boardcore::Module
+class Buses : public Boardcore::Injectable
 {
 public:
     Boardcore::SPIBus radio_bus;
diff --git a/src/boards/Groundstation/Nokia/Hub.cpp b/src/boards/Groundstation/Nokia/Hub.cpp
index 769a2c8fa6f70e6e067d2be6dbf7439b6f9cee5a..1767efca300eee3581fbc04622c3e9b3e168c427 100644
--- a/src/boards/Groundstation/Nokia/Hub.cpp
+++ b/src/boards/Groundstation/Nokia/Hub.cpp
@@ -32,7 +32,7 @@ using namespace Boardcore;
 
 void Hub::dispatchOutgoingMsg(const mavlink_message_t& msg)
 {
-    Radio* radio = ModuleManager::getInstance().get<Radio>();
+    Radio* radio = getModule<Radio>();
 
     if (!radio->sendMsg(msg))
     {
@@ -42,6 +42,6 @@ void Hub::dispatchOutgoingMsg(const mavlink_message_t& msg)
 
 void Hub::dispatchIncomingMsg(const mavlink_message_t& msg)
 {
-    Serial* serial = ModuleManager::getInstance().get<Serial>();
+    Serial* serial = getModule<Serial>();
     serial->sendMsg(msg);
 }
\ No newline at end of file
diff --git a/src/boards/Groundstation/Nokia/Hub.h b/src/boards/Groundstation/Nokia/Hub.h
index 0351d7ab839d6b4c5e25faa51bfb8eebf0751cbf..920e151cde73e04d4c18317824763431d7f4ed05 100644
--- a/src/boards/Groundstation/Nokia/Hub.h
+++ b/src/boards/Groundstation/Nokia/Hub.h
@@ -23,9 +23,10 @@
 #pragma once
 
 #include <Groundstation/Common/HubBase.h>
+#include <Groundstation/Common/Ports/Serial.h>
+#include <Groundstation/Nokia/Radio/Radio.h>
 #include <common/Mavlink.h>
-
-#include <utils/ModuleManager/ModuleManager.hpp>
+#include <utils/DependencyManager/DependencyManager.h>
 
 namespace GroundstationNokia
 {
@@ -33,7 +34,9 @@ namespace GroundstationNokia
 /**
  * @brief Central hub connecting all outgoing and ingoing modules.
  */
-class Hub : public Groundstation::HubBase
+class Hub : public Boardcore::InjectableWithDeps<
+                Boardcore::InjectableBase<Groundstation::HubBase>, Radio,
+                Groundstation::Serial>
 {
 public:
     Hub() {}
diff --git a/src/boards/Groundstation/Nokia/Radio/Radio.cpp b/src/boards/Groundstation/Nokia/Radio/Radio.cpp
index 8a3911b82039ae4a2114ed7b787b18cdfdb5f0c8..77a4c41bd8d98107597addfee0de8d87f416f777 100644
--- a/src/boards/Groundstation/Nokia/Radio/Radio.cpp
+++ b/src/boards/Groundstation/Nokia/Radio/Radio.cpp
@@ -37,19 +37,24 @@ using namespace miosix;
 #define SX1278_DIO1_IRQ EXTI4_IRQHandlerImpl
 #define SX1278_DIO3_IRQ EXTI11_IRQHandlerImpl
 
+Radio* radioGlobal = nullptr;
+
 void __attribute__((used)) SX1278_DIO0_IRQ()
 {
-    ModuleManager::getInstance().get<Radio>()->handleDioIRQ();
+    if (radioGlobal)
+        radioGlobal->handleDioIRQ();
 }
 
 void __attribute__((used)) SX1278_DIO1_IRQ()
 {
-    ModuleManager::getInstance().get<Radio>()->handleDioIRQ();
+    if (radioGlobal)
+        radioGlobal->handleDioIRQ();
 }
 
 void __attribute__((used)) SX1278_DIO3_IRQ()
 {
-    ModuleManager::getInstance().get<Radio>()->handleDioIRQ();
+    if (radioGlobal)
+        radioGlobal->handleDioIRQ();
 }
 
 bool Radio::start()
@@ -63,9 +68,7 @@ bool Radio::start()
 
     std::unique_ptr<Boardcore::SX1278Fsk> sx1278 =
         std::make_unique<Boardcore::SX1278Fsk>(
-            ModuleManager::getInstance()
-                .get<GroundstationNokia::Buses>()
-                ->radio_bus,
+            getModule<GroundstationNokia::Buses>()->radio_bus,
             peripherals::ra01::pc13::cs::getPin(),
             peripherals::ra01::pc13::dio0::getPin(),
             peripherals::ra01::pc13::dio1::getPin(),
diff --git a/src/boards/Groundstation/Nokia/Radio/Radio.h b/src/boards/Groundstation/Nokia/Radio/Radio.h
index 950b8243a3ccbded6daa6e9e9d58bcc18ff6f2f7..746310fa71a61aefaa7055d4ed0a44e27ac7036a 100644
--- a/src/boards/Groundstation/Nokia/Radio/Radio.h
+++ b/src/boards/Groundstation/Nokia/Radio/Radio.h
@@ -23,11 +23,14 @@
 #pragma once
 
 #include <Groundstation/Common/Radio/RadioBase.h>
+#include <Groundstation/Nokia/Buses.h>
 
 namespace GroundstationNokia
 {
 
-class Radio : public Groundstation::RadioBase, public Boardcore::Module
+class Radio : public Boardcore::InjectableWithDeps<
+                  Boardcore::InjectableBase<Groundstation::RadioBase>,
+                  GroundstationNokia::Buses>
 {
 public:
     [[nodiscard]] bool start();
diff --git a/src/entrypoints/Groundstation/nokia-groundstation-entry.cpp b/src/entrypoints/Groundstation/nokia-groundstation-entry.cpp
index da685704b93e00882cb953e9e0a398d95714abd6..93d0f1e22be1bc2d51c1e7c501fb52361b598cee 100644
--- a/src/entrypoints/Groundstation/nokia-groundstation-entry.cpp
+++ b/src/entrypoints/Groundstation/nokia-groundstation-entry.cpp
@@ -25,6 +25,7 @@
 #include <Groundstation/Nokia/Hub.h>
 #include <Groundstation/Nokia/Radio/Radio.h>
 #include <miosix.h>
+#include <utils/DependencyManager/DependencyManager.h>
 
 using namespace Groundstation;
 using namespace GroundstationNokia;
@@ -48,14 +49,14 @@ int main()
     Radio *radio   = new Radio();
     Serial *serial = new Serial();
 
-    ModuleManager &modules = ModuleManager::getInstance();
+    DependencyManager manager;
 
     bool ok = true;
 
-    ok &= modules.insert<HubBase>(hub);
-    ok &= modules.insert(buses);
-    ok &= modules.insert(serial);
-    ok &= modules.insert(radio);
+    ok &= manager.insert<HubBase>(hub);
+    ok &= manager.insert(buses);
+    ok &= manager.insert(serial);
+    ok &= manager.insert(radio);
 
     // If insertion failed, stop right here
     if (!ok)
@@ -64,6 +65,12 @@ int main()
         idleLoop();
     }
 
+    if (!manager.inject())
+    {
+        printf("[error] Failed to inject the dependencies!\n");
+        idleLoop();
+    }
+
     // Ok now start them
 
     ok &= serial->start();