diff --git a/algo/CMakeLists.txt b/algo/CMakeLists.txt
index 6a3fef593e8976cd5b4fe579b93d8e10fa67e904..539bbb90cda690fdb579604087e983f512c3bcf8 100644
--- a/algo/CMakeLists.txt
+++ b/algo/CMakeLists.txt
@@ -58,20 +58,14 @@ add_custom_target(generateBuildInfo
 add_library(Algo SHARED ${SRCS})
 
 target_include_directories(Algo
-  PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
-         ${CMAKE_CURRENT_SOURCE_DIR}/data
+  PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/data
          ${CMAKE_CURRENT_SOURCE_DIR}/base
          ${CMAKE_CURRENT_SOURCE_DIR}/evbuild
          ${CMAKE_CURRENT_SOURCE_DIR}/global
          ${CMAKE_CURRENT_SOURCE_DIR}/trigger
          ${CMAKE_CURRENT_SOURCE_DIR}/evselector
          ${CMAKE_CURRENT_SOURCE_DIR}/unpack
-         ${CMAKE_CURRENT_SOURCE_DIR}/detectors/sts
-         ${CMAKE_CURRENT_SOURCE_DIR}/detectors/much
-         ${CMAKE_CURRENT_SOURCE_DIR}/detectors/tof
-         ${CMAKE_CURRENT_SOURCE_DIR}/detectors/bmon
-         ${CMAKE_CURRENT_SOURCE_DIR}/detectors/trd
-         ${CMAKE_CURRENT_SOURCE_DIR}/detectors/trd2d
+         ${CMAKE_CURRENT_SOURCE_DIR}/detectors
  )
 
 target_link_libraries(Algo
diff --git a/algo/evselector/DigiEventSelector.cxx b/algo/evselector/DigiEventSelector.cxx
index 8eb4a8e1c225f1b0798db9283c1f4d34b5f4b316..e47bf8d5169abb1f04602795e82c4e8cc34aaecd 100644
--- a/algo/evselector/DigiEventSelector.cxx
+++ b/algo/evselector/DigiEventSelector.cxx
@@ -6,7 +6,7 @@
 
 #include "CbmStsDigi.h"
 
-#include "TofConfig.h"
+#include "tof/TofConfig.h"
 
 #include <iterator>
 #include <map>
diff --git a/algo/global/Reco.h b/algo/global/Reco.h
index 9303d9c220f78aefe9de388c5fd328beb778fa0e..9d1bf89e73cbbee1ef81da34939572a8518fe1b7 100644
--- a/algo/global/Reco.h
+++ b/algo/global/Reco.h
@@ -6,9 +6,9 @@
 
 #include <xpu/host.h>
 
-#include "StsHitfinderChain.h"
-#include "StsUnpackChain.h"
 #include "SubChain.h"
+#include "sts/StsHitfinderChain.h"
+#include "sts/StsUnpackChain.h"
 
 namespace fles
 {
diff --git a/algo/test/_GTestDigiEventSelector.cxx b/algo/test/_GTestDigiEventSelector.cxx
index 8b528f6a93514ea503347533caac15a1fe2e410f..77952b80805b8bd78f0b3de0675c7fa64b95e9b4 100644
--- a/algo/test/_GTestDigiEventSelector.cxx
+++ b/algo/test/_GTestDigiEventSelector.cxx
@@ -2,7 +2,7 @@
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Dominik Smith [committer] */
 
-#include "TofConfig.h"
+#include "tof/TofConfig.h"
 
 #include <unordered_set>
 
diff --git a/reco/detectors/sts/CbmRecoSts.h b/reco/detectors/sts/CbmRecoSts.h
index 0ba495c7d836dcdabbd02dc7860cc6af79b9f5a7..9cfa4e017840463ff2c0f7a91ce5c815bd97f588 100644
--- a/reco/detectors/sts/CbmRecoSts.h
+++ b/reco/detectors/sts/CbmRecoSts.h
@@ -16,7 +16,7 @@
 #include <TClonesArray.h>
 #include <TStopwatch.h>
 
-#include "StsHitfinderChain.h"
+#include "sts/StsHitfinderChain.h"
 
 class CbmDigiManager;
 class CbmEvent;
diff --git a/reco/mq/CbmDevUnpack.h b/reco/mq/CbmDevUnpack.h
index fb0fb2c0ca767073524984083fe2c94c638b2ce7..2b9375ccf2f32b0ab3e455cdc4df29db41b774ce 100644
--- a/reco/mq/CbmDevUnpack.h
+++ b/reco/mq/CbmDevUnpack.h
@@ -26,10 +26,10 @@
 #include <map>
 #include <vector>
 
-#include "MuchReadoutConfig.h"
-#include "StsReadoutConfigLegacy.h"
-#include "UnpackMuch.h"
-#include "UnpackSts.h"
+#include "much/MuchReadoutConfig.h"
+#include "much/UnpackMuch.h"
+#include "sts/StsReadoutConfigLegacy.h"
+#include "sts/UnpackSts.h"
 
 class TimesliceMetaData;
 class CbmDigiTimeslice;
diff --git a/reco/tasks/CbmTaskTofHitFinder.h b/reco/tasks/CbmTaskTofHitFinder.h
index e192587d494f351552416af7527d772ec7b55f94..77760c973c9dd63553b005e7baef398fbee7c32b 100644
--- a/reco/tasks/CbmTaskTofHitFinder.h
+++ b/reco/tasks/CbmTaskTofHitFinder.h
@@ -23,7 +23,7 @@ class CbmTofCell;
 class CbmDigiManager;
 class CbmEvent;
 
-#include "HitFinderTof.h"
+#include "tof/HitFinderTof.h"
 
 // FAIR classes and includes
 #include "FairTask.h"
diff --git a/reco/tasks/CbmTaskUnpack.h b/reco/tasks/CbmTaskUnpack.h
index d4262eb6bb9411987fa936c55dcdec3f318a51fb..697b517c8c7d9b7930aa4676ce4d04bc10ce3785 100644
--- a/reco/tasks/CbmTaskUnpack.h
+++ b/reco/tasks/CbmTaskUnpack.h
@@ -11,13 +11,24 @@
 
 #include <FairTask.h>
 
-#include "Trd2dReadoutConfig.h"
-#include "TrdReadoutConfig.h"
+#include "tof/TofReadoutConfig.h"
+#include "tof/UnpackTof.h"
+#include "trd/TrdReadoutConfig.h"
+#include "trd/UnpackTrd.h"
+#include "trd2d/Trd2dReadoutConfig.h"
+#include "trd2d/UnpackTrd2d.h"
 
 #include <sstream>
 #include <vector>
 
+#include "EventBuilder.h"
 #include "Unpack.h"
+#include "bmon/BmonReadoutConfig.h"
+#include "bmon/UnpackBmon.h"
+#include "much/MuchReadoutConfig.h"
+#include "much/UnpackMuch.h"
+#include "sts/StsReadoutConfigLegacy.h"
+#include "sts/UnpackSts.h"
 
 class CbmDigiManager;
 class CbmSourceTs;
diff --git a/reco/tasks/CbmTaskUnpackXpu.h b/reco/tasks/CbmTaskUnpackXpu.h
index 95045c7e246a82b3879b7705375c600579a888b6..4a99affee609fb9f2386e04cbd6f79d6b82a2507 100644
--- a/reco/tasks/CbmTaskUnpackXpu.h
+++ b/reco/tasks/CbmTaskUnpackXpu.h
@@ -15,8 +15,8 @@
 #include <vector>
 
 #include "EventBuilder.h"
-#include "StsReadoutConfigLegacy.h"
-#include "UnpackStsXpu.h"
+#include "sts/StsReadoutConfigLegacy.h"
+#include "sts/UnpackStsXpu.h"
 
 
 class CbmDigiManager;