diff --git a/src/entrypoints/anakin-accel.cpp b/src/entrypoints/anakin-accel.cpp
index 9b4ab885402b613c9b6ff330830b3bf2a1cd71cd..4324845748f30f240afc58d940d26a30be38a3dc 100644
--- a/src/entrypoints/anakin-accel.cpp
+++ b/src/entrypoints/anakin-accel.cpp
@@ -21,7 +21,7 @@
  */
 
 #include <Common.h>
-#include <BusTemplate.h>
+#include <drivers/BusTemplate.h>
 #include <sensors/MAX21105.h>
 #include <sensors/MPU9250.h>
 #include <sensors/iNemo.h>
diff --git a/src/entrypoints/anakin-demo-board.cpp b/src/entrypoints/anakin-demo-board.cpp
index a49c8e5a0306d871bd9d1ec30faa8f041d2890d5..53ffa8b513f8bd5dee185d2987b626d23f3aaa5b 100644
--- a/src/entrypoints/anakin-demo-board.cpp
+++ b/src/entrypoints/anakin-demo-board.cpp
@@ -21,7 +21,7 @@
  */
 
 #include <Common.h>
-#include <BusTemplate.h>
+#include <drivers/BusTemplate.h>
 #include <Leds.h>
 #include <sensors/FXAS21002.h>
 #include <sensors/LPS331AP.h>
diff --git a/src/entrypoints/anakin-test-canbus.cpp b/src/entrypoints/anakin-test-canbus.cpp
index 2ef66cd103f76d9a1911cb91f5626afe11ce5be4..40be8b5076197e5361b07448d16ad039925b9ba4 100644
--- a/src/entrypoints/anakin-test-canbus.cpp
+++ b/src/entrypoints/anakin-test-canbus.cpp
@@ -23,7 +23,7 @@
  */
 
 #include <Common.h>
-#include <BusTemplate.h>
+#include <drivers/BusTemplate.h>
 #include <drivers/canbus/CanManager.h>
 #include <drivers/canbus/CanSocket.h>
 #include <drivers/canbus/CanUtils.h>
diff --git a/src/entrypoints/anakin-test-suite.cpp b/src/entrypoints/anakin-test-suite.cpp
index 1c076777f06f8c173848cd71bbb162396c9580db..a2a8b0f0bdf0aca52be537153da884fb9e00901e 100644
--- a/src/entrypoints/anakin-test-suite.cpp
+++ b/src/entrypoints/anakin-test-suite.cpp
@@ -21,7 +21,7 @@
  */
 
 #include <Common.h>
-#include <BusTemplate.h>
+#include <drivers/BusTemplate.h>
 #include <sensors/FXAS21002.h>
 #include <sensors/MAX21105.h>
 #include <sensors/MPU9250.h>
diff --git a/src/entrypoints/test-scheduler.cpp b/src/entrypoints/test-scheduler.cpp
index a628d9561b7f31d5ccf58e3744e73bf9f87db6ff..ac5c1972f56ab4432cbbfb56c9c07b3fbef1ad78 100644
--- a/src/entrypoints/test-scheduler.cpp
+++ b/src/entrypoints/test-scheduler.cpp
@@ -21,7 +21,7 @@
  */
 
 #include <Common.h>
-#include <BusTemplate.h>
+#include <drivers/BusTemplate.h>
 #include "drivers/stm32f2_f4_i2c.h"
 #include <events/Scheduler.h>
 
diff --git a/src/entrypoints/test_i2c.cpp b/src/entrypoints/test_i2c.cpp
index 464602e75e146c21da8ea9d5a00490a06e11e145..66f558eda1c2d8e673d0ef3b91bdf8b46454ae70 100644
--- a/src/entrypoints/test_i2c.cpp
+++ b/src/entrypoints/test_i2c.cpp
@@ -21,7 +21,7 @@
  */
  
 #include <Common.h>
-#include <BusTemplate.h>
+#include <drivers/BusTemplate.h>
 #include <sensors/MPL3115.h>
 #include <Leds.h>
 #include <drivers/stm32f2_f4_i2c.h>
diff --git a/src/shared/boards/Board.h b/src/shared/boards/Board.h
index 89020e9a0533466ffa1cf1342f8a1f9634979035..1b42f133787494d38f50c5613791c3cd9f5a0e65 100644
--- a/src/shared/boards/Board.h
+++ b/src/shared/boards/Board.h
@@ -24,7 +24,7 @@
 #define BOARD_H
 
 #include <Common.h>
-#include <BusTemplate.h>
+#include <drivers/BusTemplate.h>
 #include <Singleton.h>
 #include <sensors/Sensor.h>
 #include <diagnostic/Log.h>
diff --git a/src/shared/BusTemplate.h b/src/shared/drivers/BusTemplate.h
similarity index 100%
rename from src/shared/BusTemplate.h
rename to src/shared/drivers/BusTemplate.h
diff --git a/src/shared/sensors/FXAS21002.h b/src/shared/sensors/FXAS21002.h
index 3e2d1d32d34fbcc14a9d869d6942ac55fb44d862..46608ceef5a1962f4c2531d0f47172c976a7e538 100644
--- a/src/shared/sensors/FXAS21002.h
+++ b/src/shared/sensors/FXAS21002.h
@@ -26,7 +26,7 @@
 #define FXAS21002_H 
 
 #include "Sensor.h"
-#include "BusTemplate.h"
+#include <drivers/BusTemplate.h>
 
 template <typename Bus>
 class FXAS21002 : public GyroSensor {
diff --git a/src/shared/sensors/LPS331AP.h b/src/shared/sensors/LPS331AP.h
index 5af67789b16baa3dd73893a3c124c888d28824c5..938daf33d1c7ac4eaa50fc195f2a6bb109b5bd49 100644
--- a/src/shared/sensors/LPS331AP.h
+++ b/src/shared/sensors/LPS331AP.h
@@ -26,7 +26,7 @@
 #define LPS331AP_H 
 
 #include "Sensor.h"
-#include <BusTemplate.h>
+#include <drivers/BusTemplate.h>
 
 template <typename Bus>
 class LPS331AP : public PressureSensor, public TemperatureSensor
diff --git a/src/shared/sensors/MAX21105.h b/src/shared/sensors/MAX21105.h
index 0df5c4f16be6f3bba79810220fb6dfbb2a149e00..711fb65b38aa987a2ab4058e73055e94eb23c0fe 100644
--- a/src/shared/sensors/MAX21105.h
+++ b/src/shared/sensors/MAX21105.h
@@ -24,7 +24,7 @@
 
 #include "Sensor.h"
 #include "interfaces/endianness.h"
-#include <BusTemplate.h>
+#include <drivers/BusTemplate.h>
 
 template<class Bus>
 class MAX21105 : public AccelSensor, public GyroSensor, 
diff --git a/src/shared/sensors/MAX31856.h b/src/shared/sensors/MAX31856.h
index 36032eefccc376f687e2e99afcf5435c4a897423..275958b46d4f2930195657c8c3af89d08290a26d 100644
--- a/src/shared/sensors/MAX31856.h
+++ b/src/shared/sensors/MAX31856.h
@@ -25,7 +25,7 @@
 #define MAX31856_H
 
 #include "Sensor.h"
-#include <BusTemplate.h>
+#include <drivers/BusTemplate.h>
 
 /** This is a thermocouple reading chip */
 
diff --git a/src/shared/sensors/MPL3115.h b/src/shared/sensors/MPL3115.h
index 5262c5b420f4757251339709d0eb88ebba89cd57..717dec752a0de4a83f2d510d2105bde77057c3ea 100644
--- a/src/shared/sensors/MPL3115.h
+++ b/src/shared/sensors/MPL3115.h
@@ -26,7 +26,7 @@
 #define MPL3115_H
 
 #include "Sensor.h"
-#include <BusTemplate.h>
+#include <drivers/BusTemplate.h>
 
 template <typename BusType>
 class MPL3115 : public PressureSensor, public TemperatureSensor, 
diff --git a/src/shared/sensors/MPU9250.h b/src/shared/sensors/MPU9250.h
index 076b77cc1fa0a54704357d22aad20cd202852386..a474b56decc9aa444958ed221e90be2670a0a740 100644
--- a/src/shared/sensors/MPU9250.h
+++ b/src/shared/sensors/MPU9250.h
@@ -25,7 +25,7 @@
 #ifndef MAX9250_H
 #define MAX9250_H 
 #include "Sensor.h"
-#include <BusTemplate.h>
+#include <drivers/BusTemplate.h>
 
 // TODO: fix normalizeTemp() (is /512.0f correct?)
 // TODO: Self-Test
diff --git a/src/shared/sensors/MS580301BA07.h b/src/shared/sensors/MS580301BA07.h
index 7dfeafd977238180ad1a8b40e1511ba55b2bc733..b9d89710070c4c7c504891fac6359d26f7d3d4b1 100644
--- a/src/shared/sensors/MS580301BA07.h
+++ b/src/shared/sensors/MS580301BA07.h
@@ -26,7 +26,7 @@
 #define MS580301BA07_H
 
 #include "Sensor.h"
-#include <BusTemplate.h>
+#include <drivers/BusTemplate.h>
 
 // TODO second order temperature compensation 
 template<class Bus>
diff --git a/src/shared/sensors/Si7021.h b/src/shared/sensors/Si7021.h
index 7ea6bc168d341861bc1d56429270fed51b988c79..147f2db0254f47771ab0da44556baf5db45b8724 100644
--- a/src/shared/sensors/Si7021.h
+++ b/src/shared/sensors/Si7021.h
@@ -26,7 +26,7 @@
 #define SI7021_H 
 
 #include "Sensor.h"
-#include <BusTemplate.h>
+#include <drivers/BusTemplate.h>
 
 template <typename BusType>
 class Si7021 : public HumiditySensor, public TemperatureSensor {
diff --git a/src/shared/sensors/iNemo.h b/src/shared/sensors/iNemo.h
index eabf311cffd77e1e7316854511d62292725ef1fc..3dc3dda00d3e008918267382d3bc3eea1d7f0d2f 100644
--- a/src/shared/sensors/iNemo.h
+++ b/src/shared/sensors/iNemo.h
@@ -27,7 +27,7 @@
 #define INEMO_H
 
 #include "Sensor.h"
-#include "BusTemplate.h"
+#include <drivers/BusTemplate.h>
 #include "Common.h"
 
 template <typename BusG,typename BusXM>