diff --git a/Framework/StackInterface/StackIteratorInterface.h b/Framework/StackInterface/StackIteratorInterface.h
index 3955cafd4c2c07cc4abcdc232735769c864eb534..5b1d25757256fbcdafeb616865894d5a41b00750 100644
--- a/Framework/StackInterface/StackIteratorInterface.h
+++ b/Framework/StackInterface/StackIteratorInterface.h
@@ -12,7 +12,7 @@
 
 namespace corsika::history {
   template <typename T>
-  class HSecondaryView; // forward decl. for befriending
+  class HistorySecondaryView; // forward decl. for befriending
 }
 
 namespace corsika::stack {
@@ -80,6 +80,10 @@ namespace corsika::stack {
     friend class ParticleBase<StackIteratorInterface>;   // for access to GetStackData
     friend class SecondaryView<TStackData,
                                TParticleInterface>; // access for SecondaryView
+
+  template <typename T>
+  friend class corsika::history::HistorySecondaryView;
+
   private:
     unsigned int index_ = 0;
     StackType* data_ = 0; // info: Particles and StackIterators become invalid when parent
diff --git a/Setup/SetupStack.h b/Setup/SetupStack.h
index 5c22321b0a365f98648b372b30712b52b9293642..88e9f77114bed928e4174c02d880297063616495 100644
--- a/Setup/SetupStack.h
+++ b/Setup/SetupStack.h
@@ -19,6 +19,9 @@ namespace corsika::setup {
 
   namespace detail {
 
+    // ------------------------------------------
+    // add geometry node tracking data to stack:
+    
     // the GeometryNode stack needs to know the type of geometry-nodes from the
     // environment:
     template <typename TStackIter>
@@ -26,13 +29,6 @@ namespace corsika::setup {
         typename stack::node::MakeGeometryDataInterface<TStackIter,
                                                         setup::SetupEnvironment>::type;
 
-    /*
-    template <typename TStackIter>
-    using SetupGeometryHistoryDataInterface =
-      typename stack::node::MakeHistoryDataInterface<TStackIter,
-                                    ...event... >::type;
-    */
-
     // combine particle data stack with geometry information for tracking
     template <typename TStackIter>
     using StackWithGeometryInterface = corsika::stack::CombinedParticleInterface<
@@ -44,10 +40,27 @@ namespace corsika::setup {
         corsika::stack::node::GeometryData<setup::SetupEnvironment>,
         StackWithGeometryInterface>;
 
+
+    // ------------------------------------------
+    // Add [optional] history data to stack, too:
+
+    // combine dummy stack with geometry information for tracking
+    template <typename TStackIter>
+    using StackWithHistoryInterface = corsika::stack::CombinedParticleInterface<
+      StackWithGeometry::PIType, history::HistoryEventDataInterface,
+      TStackIter>;
+
+    using StackWithHistory = corsika::stack::CombinedStack<
+    typename StackWithGeometry::StackImpl,
+    history::HistoryEventData, StackWithHistoryInterface>;
+    
   } // namespace detail
 
+  
+  // ---------------------------------------
   // this is the FINAL stack we use in C8:
-  using Stack = detail::StackWithGeometry;
+  //using Stack = detail::StackWithGeometry;
+  using Stack = detail::StackWithHistory;
 
   /*
     See Issue 161
diff --git a/Stack/History/HistoryStackExtension.h b/Stack/History/HistoryStackExtension.h
index 294a53780a036930135378a4617c0caf3886dc2f..a6c24ca1ef42d914244fc2bd37db83de28bb6df1 100644
--- a/Stack/History/HistoryStackExtension.h
+++ b/Stack/History/HistoryStackExtension.h
@@ -9,7 +9,6 @@
 #pragma once
 
 #include <corsika/stack/Stack.h>
-#include <corsika/history/Event.hpp>
 
 #include <memory>
 #include <tuple>
@@ -88,4 +87,20 @@ namespace corsika::history {
     typedef HistoryDataInterface<T, TEvent> type;
   };
 
+} // namespace corsika::history
+
+  
+  // for user-friendlyness we create the HistoryDataInterface type
+  // with the histoy::Event data content right here: 
+
+#include <corsika/history/Event.hpp>
+
+namespace corsika::history {
+
+  template <typename TStackIter>
+  using HistoryEventDataInterface =
+  typename history::MakeHistoryDataInterface<TStackIter, history::Event>::type;  
+
+  using HistoryEventData = history::HistoryData<history::Event>;
+  
 } // namespace corsika::history
diff --git a/Stack/History/testHistoryView.cc b/Stack/History/testHistoryView.cc
index 1eb9efe141d26dfeb7bcf0d068cd80ce9763099a..9ef0a2f48dc30f4d93a0ed90afbf55a29c2b8ea1 100644
--- a/Stack/History/testHistoryView.cc
+++ b/Stack/History/testHistoryView.cc
@@ -28,20 +28,15 @@ using namespace corsika::units::si;
    way, but with real particle data
  */
 
-// the GeometryNode stack needs to know the type of geometry-nodes from the DummyEnv:
-template <typename TStackIter>
-using HistoryDataInterface =
-    typename history::MakeHistoryDataInterface<TStackIter, history::Event>::type;
-
 // combine dummy stack with geometry information for tracking
 template <typename TStackIter>
 using StackWithHistoryInterface = corsika::stack::CombinedParticleInterface<
-    stack::nuclear_extension::ParticleDataStack::PIType, HistoryDataInterface,
+  stack::nuclear_extension::ParticleDataStack::PIType, history::HistoryEventDataInterface,
     TStackIter>;
 
 using TestStack = corsika::stack::CombinedStack<
     typename stack::nuclear_extension::ParticleDataStack::StackImpl,
-    history::HistoryData<history::Event>, StackWithHistoryInterface>;
+    history::HistoryEventData, StackWithHistoryInterface>;
 
 /*
     See Issue 161