diff --git a/reco/base/CbmRecoUnpackAlgo.tmpl b/reco/base/CbmRecoUnpackAlgo.tmpl
index e17f69ce5c6bac53a198aa12b70c141414fa6a23..c3afb0b35b59c740fc6d85cc173e8eafb7530f87 100644
--- a/reco/base/CbmRecoUnpackAlgo.tmpl
+++ b/reco/base/CbmRecoUnpackAlgo.tmpl
@@ -40,7 +40,7 @@
 #include <vector>
 
 
-template<class TOutput, class TOptOutA = std::nullptr_t, class TOptOutB = std::nullptr_t>
+template<typename TOutput, typename TOptOutA = std::nullptr_t, typename TOptOutB = std::nullptr_t>
 class CbmRecoUnpackAlgo {
 
 public:
@@ -203,7 +203,7 @@ protected:
    * @return true 
    * @return false 
   */
-  virtual bool setDerivedTsParameters(size_t itimeslice) = 0;
+  virtual bool setDerivedTsParameters(size_t /*itimeslice*/) { return true; }
 
 
   /**
@@ -303,7 +303,10 @@ public:
    * @return fParContVec
   */
   virtual std::vector<std::pair<std::string, std::shared_ptr<FairParGenericSet>>>*
-  GetParContainerRequest(std::string geoTag, std::uint32_t runId) = 0;
+    GetParContainerRequest(std::string /*geoTag*/, std::uint32_t /*runId*/)
+  {
+    return {};
+  }
 
   /**
    * @brief Intialisation at begin of run.
diff --git a/reco/base/CbmRecoUnpackConfig.tmpl b/reco/base/CbmRecoUnpackConfig.tmpl
index aede09bf687034b1de57435ea95ecf0b53bb6c43..bdbcaf908c09d271f8c127ebd880e356988f32d6 100644
--- a/reco/base/CbmRecoUnpackConfig.tmpl
+++ b/reco/base/CbmRecoUnpackConfig.tmpl
@@ -36,7 +36,7 @@
 #include <memory>
 #include <vector>
 
-template<class TAlgo, class TOutput, class TOptOutA = std::nullptr_t, class TOptOutB = std::nullptr_t>
+template<typename TAlgo, typename TOutput, typename TOptOutA = std::nullptr_t, typename TOptOutB = std::nullptr_t>
 class CbmRecoUnpackConfig {
 
 public:
diff --git a/reco/detectors/trd/CMakeLists.txt b/reco/detectors/trd/CMakeLists.txt
index 2509f10e188fea5a6b2eef463943fca14d333a38..09e02d3b53f3e4504921dedd99d329957a7021aa 100644
--- a/reco/detectors/trd/CMakeLists.txt
+++ b/reco/detectors/trd/CMakeLists.txt
@@ -59,6 +59,9 @@ unpack/CbmTrdUnpackAlgoR.cxx
 unpack/CbmTrdUnpackAlgoLegacy2020R.cxx
 unpack/CbmTrdUnpackMonitor.cxx
 
+unpack/CbmTrdUnpackAlgo2D.cxx
+unpack/CbmTrdUnpackConfig2D.cxx
+
 qa/CbmTrdClusterizerFastQa.cxx
 qa/CbmTrdHitDensityQa.cxx
 qa/CbmTrdHitProducerClusterQa.cxx
diff --git a/reco/detectors/trd/CbmTrdRecoLinkDef.h b/reco/detectors/trd/CbmTrdRecoLinkDef.h
index 7c363fbfa72907dcb7127feeec2cab53dcbad7c7..449f6f2ca051af0c53474317f7437f9d855f0611 100644
--- a/reco/detectors/trd/CbmTrdRecoLinkDef.h
+++ b/reco/detectors/trd/CbmTrdRecoLinkDef.h
@@ -33,6 +33,9 @@
 #pragma link C++ class CbmTrdUnpackConfig + ;
 #pragma link C++ class CbmTrdUnpackMonitor + ;
 
+#pragma link C++ class CbmTrdUnpackAlgo2D + ;
+#pragma link C++ class CbmTrdUnpackConfig2D + ;
+
 #pragma link C++ class CbmTrdElectronsTrainAnn + ;
 #pragma link C++ class CbmTrdSetTracksPidWkn + ;
 #pragma link C++ class CbmTrdSetTracksPidModWkn + ;
diff --git a/reco/detectors/trd/unpack/CbmTrdUnpackAlgoBaseR.h b/reco/detectors/trd/unpack/CbmTrdUnpackAlgoBaseR.h
index f5dfc2e6274e6c65ca23dd9b384c6c66c39ee225..24e7acc474d551358210f81a9fff29ce97070293 100644
--- a/reco/detectors/trd/unpack/CbmTrdUnpackAlgoBaseR.h
+++ b/reco/detectors/trd/unpack/CbmTrdUnpackAlgoBaseR.h
@@ -168,17 +168,6 @@ protected:
   */
   Bool_t initParSet(CbmMcbm2020TrdTshiftPar* parset);
 
-  /**
-   * @brief Pointer to the RawMsg vector connected to the framework, setted from the task/device
-   * @remark This could be templated if we want to use this class as reference for all systems
-  */
-  std::vector<CbmTrdRawMessageSpadic>* fOutRawSpadicVec = nullptr;
-
-  /**
-   * @brief Pointer to the Spadic info message vector connected to the framework, setted from the task/device
-   * @remark This could be templated if we want to use this class as reference for all systems
-  */
-  std::vector<std::pair<size_t, size_t>>* fOutInfoSpadicVec = nullptr;
 
   // Monitoring
   /** @brief Potential (online) monitor for the unpacking process */