diff --git a/algo/CMakeLists.txt b/algo/CMakeLists.txt
index e816a0cdd1a81b329d8f819f503f8f0c6ebeaea8..02b3dbfb8ed21d80deca14d8a9892e4ddf873146 100644
--- a/algo/CMakeLists.txt
+++ b/algo/CMakeLists.txt
@@ -38,7 +38,7 @@ set(SRCS
   detectors/rich/RichReadoutConfig.cxx
   detectors/rich/UnpackRich.cxx
   global/Archive.cxx
-  global/RecoIO.cxx
+  global/RecoResults.cxx
   global/Reco.cxx
   qa/DigiEventQa.cxx
   qa/Histo1D.cxx
diff --git a/algo/global/Archive.h b/algo/global/Archive.h
index 1c6289f2d7d9fe2260bef1d848e1081976892026..ffb683dbc28d55760e98aa46684323996af62030 100644
--- a/algo/global/Archive.h
+++ b/algo/global/Archive.h
@@ -13,7 +13,7 @@
 #include <vector>
 
 #include "ArchiveDescriptor.h"
-#include "RecoIO.h"
+#include "RecoResults.h"
 #include "compat/Filesystem.h"
 
 namespace cbm::algo
@@ -38,12 +38,12 @@ namespace cbm::algo
 
     const ArchiveDescriptor& Descriptor() const { return fDescriptor; }
 
-    std::vector<RecoIO>& TimesliceResults() { return fTimesliceResults; }
-    const std::vector<RecoIO>& TimesliceResults() const { return fTimesliceResults; }
+    std::vector<RecoResults>& TimesliceResults() { return fTimesliceResults; }
+    const std::vector<RecoResults>& TimesliceResults() const { return fTimesliceResults; }
 
   private:
     ArchiveDescriptor fDescriptor;
-    std::vector<RecoIO> fTimesliceResults;
+    std::vector<RecoResults> fTimesliceResults;
 
     friend class boost::serialization::access;
     template<class Archive>
diff --git a/algo/global/Reco.cxx b/algo/global/Reco.cxx
index cbae1377c9a5fc409929dda30079541c7f3b7677..c485b03a876a2a7bb3b2f215f4dabaf1ad406b82 100644
--- a/algo/global/Reco.cxx
+++ b/algo/global/Reco.cxx
@@ -75,7 +75,7 @@ void Reco::Init(const Options& opts)
 }
 
 
-RecoIO Reco::Run(const fles::Timeslice& ts)
+RecoResults Reco::Run(const fles::Timeslice& ts)
 {
   if (!fInitialized) { throw std::runtime_error("Chain not initialized"); }
 
@@ -111,7 +111,7 @@ RecoIO Reco::Run(const fles::Timeslice& ts)
 
   PrintTimings(ts_times);
 
-  RecoIO results(RecoResultsDescriptor(Opts(), Params()));
+  RecoResults results(RecoResultsDescriptor(Opts(), Params()));
   CbmDigiEvent ev;
   ev.fData = std::move(digiTs.fData);
   results.Events().emplace_back(std::move(ev));
diff --git a/algo/global/Reco.h b/algo/global/Reco.h
index 3dd0e5cfb4cab3ce2e77cdf3bdcc8772f33e4085..ff2eae07287b7270c39d38f99e2a7ff5eaf74c83 100644
--- a/algo/global/Reco.h
+++ b/algo/global/Reco.h
@@ -6,7 +6,7 @@
 
 #include <xpu/host.h>
 
-#include "RecoIO.h"
+#include "RecoResults.h"
 #include "SubChain.h"
 #include "UnpackChain.h"
 #include "sts/StsHitfinderChain.h"
@@ -31,7 +31,7 @@ namespace cbm::algo
     Reco& operator=(Reco&&) = delete;
 
     void Init(const Options&);
-    RecoIO Run(const fles::Timeslice&);
+    RecoResults Run(const fles::Timeslice&);
     void Finalize();
     void PrintTimings(xpu::timings&);
 
diff --git a/algo/global/RecoIO.cxx b/algo/global/RecoResults.cxx
similarity index 56%
rename from algo/global/RecoIO.cxx
rename to algo/global/RecoResults.cxx
index 10599bae7cf6dec1bd1e796f20fbf1c53d302f13..f2d8d1de1f488972b45b78294b047dc9c52497c9 100644
--- a/algo/global/RecoIO.cxx
+++ b/algo/global/RecoResults.cxx
@@ -1,12 +1,12 @@
 /* Copyright (C) 2023 FIAS Frankfurt Institute for Advanced Studies, Frankfurt / Main
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Felix Weiglhofer [committer] */
-#include "RecoIO.h"
+#include "RecoResults.h"
 
 #include "CbmDigiEvent.h"
 
 using namespace cbm::algo;
 
-RecoIO::RecoIO(RecoResultsDescriptor descriptor) : fDescriptor(descriptor) {}
-RecoIO::RecoIO() {}
-RecoIO::~RecoIO() {}
+RecoResults::RecoResults(RecoResultsDescriptor descriptor) : fDescriptor(descriptor) {}
+RecoResults::RecoResults() {}
+RecoResults::~RecoResults() {}
diff --git a/algo/global/RecoIO.h b/algo/global/RecoResults.h
similarity index 84%
rename from algo/global/RecoIO.h
rename to algo/global/RecoResults.h
index 9d6630e9ea3df305c635579452e82fac0ecb5af5..95e6c0677218ccf8f55ec0dba2f7e20e666bd3ed 100644
--- a/algo/global/RecoIO.h
+++ b/algo/global/RecoResults.h
@@ -1,8 +1,8 @@
 /* Copyright (C) 2023 FIAS Frankfurt Institute for Advanced Studies, Frankfurt / Main
    SPDX-License-Identifier: GPL-3.0-only
    Authors: Felix Weiglhofer [committer] */
-#ifndef CBM_ALGO_GLOBAL_RECOIO_H
-#define CBM_ALGO_GLOBAL_RECOIO_H
+#ifndef CBM_ALGO_GLOBAL_RECO_RESULTS_H
+#define CBM_ALGO_GLOBAL_RECO_RESULTS_H
 
 #include <boost/serialization/access.hpp>
 
@@ -19,12 +19,12 @@ namespace cbm::algo::sts
 
 namespace cbm::algo
 {
-  class RecoIO {
+  class RecoResults {
 
   public:
     // Place ctor / dtor in cxx, so that we can forward-declare the data classes and keep this header small.
-    RecoIO(RecoResultsDescriptor descriptor);
-    ~RecoIO();
+    RecoResults(RecoResultsDescriptor descriptor);
+    ~RecoResults();
 
     const RecoResultsDescriptor& Descriptor() const { return fDescriptor; }
     const std::vector<CbmDigiEvent>& Events() const { return fEvents; }
@@ -36,7 +36,7 @@ namespace cbm::algo
 
     friend class boost::serialization::access;
 
-    RecoIO();
+    RecoResults();
 
     template<class Archive>
     void serialize(Archive& ar, const unsigned int /*version*/)
diff --git a/algo/global/RecoResultsDescriptor.h b/algo/global/RecoResultsDescriptor.h
index 39bba9a972f042c1e45647b158f41cab9dfbf5d2..715b7f56537fb9cc58789a42a7d4c1c142aedbd6 100644
--- a/algo/global/RecoResultsDescriptor.h
+++ b/algo/global/RecoResultsDescriptor.h
@@ -13,7 +13,7 @@
 
 namespace cbm::algo
 {
-  class RecoIO;
+  class RecoResults;
 }
 
 namespace cbm::algo
@@ -31,7 +31,7 @@ namespace cbm::algo
 
   private:  // serialization
     friend class boost::serialization::access;
-    friend class RecoIO;
+    friend class RecoResults;
 
     RecoResultsDescriptor() = default;