diff --git a/Documentation/Examples/staticsequence_example.cc b/Documentation/Examples/staticsequence_example.cc
index 9acbc412a01b34c43a490a9b958c609e5666f8ac..92813f2e368d6db9c2016446ca069e8d890b5034 100644
--- a/Documentation/Examples/staticsequence_example.cc
+++ b/Documentation/Examples/staticsequence_example.cc
@@ -11,7 +11,7 @@ class Process1 : public BaseProcess<Process1> {
 public:
   Process1() {}
   template <typename D, typename T, typename S>
-  EProcessReturn DoContinuous(D& d, T& t, S& s) const {
+  EProcessReturn DoContinuous(D& d, T&, S&) const {
     for (int i = 0; i < 10; ++i) d.p[i] += 1;
     return EProcessReturn::eOk;
   }
@@ -22,7 +22,7 @@ public:
   Process2() {}
 
   template <typename D, typename T, typename S>
-  inline EProcessReturn DoContinuous(D& d, T& t, S& s) const {
+  inline EProcessReturn DoContinuous(D&, T&, S&) const {
     // for (int i=0; i<10; ++i) d.p[i] *= 2;
     return EProcessReturn::eOk;
   }
@@ -34,7 +34,7 @@ public:
   Process3() {}
 
   template <typename D, typename T, typename S>
-  inline EProcessReturn DoContinuous(D& d, T& t, S& s) const {
+  inline EProcessReturn DoContinuous(D& /*d*/, T& /*t*/, S& /*s*/) const {
     // for (int i=0; i<10; ++i) d.p[i] += fV;
     return EProcessReturn::eOk;
   }
@@ -48,7 +48,7 @@ public:
   // Process4(const int v) : fV(v) {}
   Process4() {}
   template <typename D, typename T, typename S>
-  inline EProcessReturn DoContinuous(D& d, T& t, S& s) const {
+  inline EProcessReturn DoContinuous(D& /*d*/, T& /*t*/, S& /*s*/) const {
     // for (int i=0; i<10; ++i) d.p[i] /= fV;
     return EProcessReturn::eOk;
   }
diff --git a/Framework/Cascade/testCascade.cc b/Framework/Cascade/testCascade.cc
index 3279c42452c678019f1435511b00c1aea6803500..9d30afcefa12ac8b9a6f5b2798045cd6b1a61ccc 100644
--- a/Framework/Cascade/testCascade.cc
+++ b/Framework/Cascade/testCascade.cc
@@ -1,6 +1,7 @@
 #include <corsika/cascade/Cascade.h>
 #include <corsika/geometry/LineTrajectory.h>
 #include <corsika/process/ProcessSequence.h>
+#include <corsika/process/stack_inspector/StackInspector.h>
 #include <corsika/stack/super_stupid/SuperStupidStack.h>
 
 #define CATCH_CONFIG_MAIN // This tells Catch to provide a main() - only do this in one
diff --git a/Framework/Logging/BufferedSink.h b/Framework/Logging/BufferedSink.h
index 7ad36927fec13087d8875af96279013a82003a4e..33cb1afa7b7ae0d65e0b8c173248294c008d8b26 100644
--- a/Framework/Logging/BufferedSink.h
+++ b/Framework/Logging/BufferedSink.h
@@ -32,7 +32,7 @@ namespace corsika::logging {
       inline void Add(const std::string& s) { fBuffer << s; }
 
     private:
-      int fSize;
+      unsigned int fSize;
       std::ostringstream fBuffer;
     };
 
diff --git a/Framework/Logging/MessageOff.h b/Framework/Logging/MessageOff.h
index d60070002cbcb25e76eb641b19597bc6c2fac752..d22d131eb5ddaf012a61341033ce8ee10e3e8e5d 100644
--- a/Framework/Logging/MessageOff.h
+++ b/Framework/Logging/MessageOff.h
@@ -10,7 +10,7 @@ namespace corsika::logging {
   class MessageOff {
   protected:
     template <typename First, typename... Strings>
-    std::string Message(const First& arg, const Strings&... rest) {
+    std::string Message(const First&, const Strings&...) {
       return "";
     }
   };
diff --git a/Framework/ProcessSequence/testProcessSequence.cc b/Framework/ProcessSequence/testProcessSequence.cc
index eb8a8cbb9d83dc9e208b8d68273229f03efe0a52..a83d23b3cb290ba715e726ce952f0ea85149095a 100644
--- a/Framework/ProcessSequence/testProcessSequence.cc
+++ b/Framework/ProcessSequence/testProcessSequence.cc
@@ -16,7 +16,7 @@ public:
   Process1() {}
   void Init() {} // cout << "Process1::Init" << endl; }
   template <typename D, typename T, typename S>
-  inline EProcessReturn DoContinuous(D& d, T& t, S& s) const {
+  inline EProcessReturn DoContinuous(D& d, T&, S&) const {
     for (int i = 0; i < 10; ++i) d.p[i] += 1 + i;
     return EProcessReturn::eOk;
   }
@@ -27,7 +27,7 @@ public:
   Process2() {}
   void Init() {} // cout << "Process2::Init" << endl; }
   template <typename D, typename T, typename S>
-  inline EProcessReturn DoContinuous(D& d, T& t, S& s) const {
+  inline EProcessReturn DoContinuous(D& d, T&, S&) const {
     for (int i = 0; i < 10; ++i) d.p[i] *= 0.7;
     return EProcessReturn::eOk;
   }
@@ -38,7 +38,7 @@ public:
   Process3() {}
   void Init() {} // cout << "Process3::Init" << endl; }
   template <typename D, typename T, typename S>
-  inline EProcessReturn DoContinuous(D& d, T& t, S& s) const {
+  inline EProcessReturn DoContinuous(D& d, T&, S&) const {
     for (int i = 0; i < 10; ++i) d.p[i] += 0.933;
     return EProcessReturn::eOk;
   }
@@ -49,7 +49,7 @@ public:
   Process4() {}
   void Init() {} // cout << "Process4::Init" << endl; }
   template <typename D, typename T, typename S>
-  inline EProcessReturn DoContinuous(D& d, T& t, S& s) const {
+  inline EProcessReturn DoContinuous(D& d, T&, S&) const {
     for (int i = 0; i < 10; ++i) d.p[i] /= 1.2;
     return EProcessReturn::eOk;
   }
diff --git a/Framework/Random/RNGManager.cc b/Framework/Random/RNGManager.cc
index 01bc247b40232137fca29578125fb31b777f63c9..e28d9d57b5b02fbd698bbba5c3673573ae5cd8a4 100644
--- a/Framework/Random/RNGManager.cc
+++ b/Framework/Random/RNGManager.cc
@@ -10,7 +10,8 @@ void corsika::random::RNGManager::RegisterRandomStream(std::string const& pStrea
   rngs[pStreamName] = std::move(rng);
 }
 
-corsika::random::RNG& corsika::random::RNGManager::GetRandomStream(std::string const& pStreamName) {
+corsika::random::RNG& corsika::random::RNGManager::GetRandomStream(
+    std::string const& pStreamName) {
   return rngs.at(pStreamName);
 }
 
@@ -22,3 +23,9 @@ std::stringstream corsika::random::RNGManager::dumpState() const {
 
   return buffer;
 }
+/*
+void corsika::random::RNGManager::SetSeedSeq(std::string const& pStreamName,
+                                             std::seed_seq const& pSeedSeq) {
+  seeds[pStreamName] = pSeedSeq;
+}
+*/
diff --git a/Framework/Random/RNGManager.h b/Framework/Random/RNGManager.h
index 52e53cd7570b3d7318aa1424c04cbe0c3b2c30c7..9c38400e3a30aa2dedabcba43dfabb82a1c789c9 100644
--- a/Framework/Random/RNGManager.h
+++ b/Framework/Random/RNGManager.h
@@ -38,7 +38,12 @@ namespace corsika::random {
      * into a std::stringstream.
      */
     std::stringstream dumpState() const;
+
+    /**
+     * set seed_seq of \a pStreamName to \a pSeedSeq
+     */
+    // void SetSeedSeq(std::string const& pStreamName, std::seed_seq& const pSeedSeq);
   };
 
-} // namespace Random
+} // namespace corsika::random
 #endif
diff --git a/Framework/Random/testRandom.cc b/Framework/Random/testRandom.cc
index f2d6fcdcad92c34bfb65f18e5701fe93ff1616f9..222a25549c6b3a8a01ba3f7298ec4024e2211c67 100644
--- a/Framework/Random/testRandom.cc
+++ b/Framework/Random/testRandom.cc
@@ -21,6 +21,8 @@ SCENARIO("random-number streams can be registered and retrieved") {
       THEN("an unknown sequence cannot be retrieved") {
         REQUIRE_THROWS(rngManager.GetRandomStream("stream_UNKNOWN"));
       }
+
+      // seeding not covered yet
     }
   }
 }
diff --git a/Framework/StackInterface/StackIterator.h b/Framework/StackInterface/StackIterator.h
index 2045f785de5c9ea18bd87d3202d9743e975b20f1..bcbb8340d6aaa02b317dbeb123a1c99bcc650a31 100644
--- a/Framework/StackInterface/StackIterator.h
+++ b/Framework/StackInterface/StackIterator.h
@@ -56,18 +56,18 @@ namespace corsika::stack {
   public:
     // StackIterator() : fData(0), fIndex(0) { }
     StackIteratorInterface(StackType& data, const int index)
-        : fData(&data)
-        , fIndex(index) {}
+        : fIndex(index)
+        , fData(&data) {}
 
   private:
     StackIteratorInterface(const StackIteratorInterface& mit)
-        : fData(mit.fData)
-        , fIndex(mit.fIndex) {}
+        : fIndex(mit.fIndex)
+        , fData(mit.fData) {}
 
   public:
     StackIteratorInterface& operator=(const StackIteratorInterface& mit) {
-      fData = mit.fData;
       fIndex = mit.fIndex;
+      fData = mit.fData;
       return *this;
     }
 
diff --git a/Framework/Units/testUnits.cc b/Framework/Units/testUnits.cc
index 6e77e4a01e62d2e5cd63e6ad286982fca6ef1766..7fc0b00a6e3959d1cce05e31ed3239a7a82105df 100644
--- a/Framework/Units/testUnits.cc
+++ b/Framework/Units/testUnits.cc
@@ -20,6 +20,7 @@ TEST_CASE("PhysicalUnits", "[Units]") {
     REQUIRE(E1 == 10_GeV);
 
     LengthType l1 = 10_nm;
+    l1 = l1;
 
     LengthType arr0[5];
     arr0[0] = 5_m;
diff --git a/Processes/CMakeLists.txt b/Processes/CMakeLists.txt
index 9b81c6d9857687cb808691565a1b5c9b6b413cfd..fe594f3afa5c20989b0dfc58a32a94f986b5fe7c 100644
--- a/Processes/CMakeLists.txt
+++ b/Processes/CMakeLists.txt
@@ -1,2 +1,3 @@
 add_subdirectory (NullModel)
 add_subdirectory (Sibyll)
+add_subdirectory (StackInspector)
diff --git a/Processes/StackInspector/CMakeLists.txt b/Processes/StackInspector/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..90b92bca58b8f9967591197bdbe0b64e01981f6f
--- /dev/null
+++ b/Processes/StackInspector/CMakeLists.txt
@@ -0,0 +1,61 @@
+
+set (
+  MODEL_SOURCES
+  StackInspector.cc
+  )
+
+set (
+  MODEL_HEADERS
+  StackInspector.h
+  )
+
+set (
+  MODEL_NAMESPACE
+  corsika/process/stack_inspector
+  )
+
+add_library (ProcessStackInspector STATIC ${MODEL_SOURCES})
+CORSIKA_COPY_HEADERS_TO_NAMESPACE (ProcessStackInspector ${MODEL_NAMESPACE} ${MODEL_HEADERS})
+
+set_target_properties (
+  ProcessStackInspector
+  PROPERTIES
+  VERSION ${PROJECT_VERSION}
+  SOVERSION 1
+#  PUBLIC_HEADER "${MODEL_HEADERS}"
+  )
+
+# target dependencies on other libraries (also the header onlys)
+target_link_libraries (
+  ProcessStackInspector
+  CORSIKAunits
+  )
+
+target_include_directories (
+  ProcessStackInspector 
+  INTERFACE 
+  $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
+  $<INSTALL_INTERFACE:include/include>
+  )
+
+install (
+  TARGETS ProcessStackInspector
+  LIBRARY DESTINATION lib
+  ARCHIVE DESTINATION lib
+#  PUBLIC_HEADER DESTINATION include/${MODEL_NAMESPACE}
+  )
+
+
+# --------------------
+# code unit testing
+add_executable (testStackInspector testStackInspector.cc)
+
+target_link_libraries (
+  testStackInspector
+  CORSIKAgeometry
+  CORSIKAunits
+  CORSIKAthirdparty # for catch2
+  )
+
+add_test (NAME testStackInspector COMMAND testStackInspector)
+
diff --git a/Processes/StackInspector/StackInspector.cc b/Processes/StackInspector/StackInspector.cc
new file mode 100644
index 0000000000000000000000000000000000000000..b52ab72b4b26e327a4f80bbbe0642ae1227064d5
--- /dev/null
+++ b/Processes/StackInspector/StackInspector.cc
@@ -0,0 +1,13 @@
+#include <corsika/process/stack_inspector/StackInspector.h>
+
+using namespace corsika::process::stack_inspector;
+
+StackInspector::StackInspector() {}
+
+StackInspector::~StackInspector() {}
+
+void StackInspector::init() {}
+
+void StackInspector::run() {}
+
+double StackInspector::GetStepLength() { return 0; }
diff --git a/Processes/StackInspector/StackInspector.h b/Processes/StackInspector/StackInspector.h
new file mode 100644
index 0000000000000000000000000000000000000000..acf22aa7c4f67d455326b5e44abacf3f1ab1478d
--- /dev/null
+++ b/Processes/StackInspector/StackInspector.h
@@ -0,0 +1,23 @@
+#ifndef _Physics_StackInspector_StackInspector_h_
+#define _Physics_StackInspector_StackInspector_h_
+
+namespace corsika::process {
+
+  namespace stack_inspector {
+
+    class StackInspector {
+
+    public:
+      StackInspector();
+      ~StackInspector();
+
+      void init();
+      void run();
+      double GetStepLength();
+    };
+
+  } // namespace stack_inspector
+
+} // namespace corsika::process
+
+#endif
diff --git a/Processes/StackInspector/testStackInspector.cc b/Processes/StackInspector/testStackInspector.cc
new file mode 100644
index 0000000000000000000000000000000000000000..311c732cec4b3cbdb8bcb4d4886b37df0e940696
--- /dev/null
+++ b/Processes/StackInspector/testStackInspector.cc
@@ -0,0 +1,12 @@
+#define CATCH_CONFIG_MAIN // This tells Catch to provide a main() - only do this in one
+                          // cpp file
+#include <catch2/catch.hpp>
+
+#include <corsika/units/PhysicalUnits.h>
+
+TEST_CASE("NullModel", "[processes]") {
+
+  SECTION("bla") {}
+
+  SECTION("blubb") {}
+}