diff --git a/Setup/SetupStack.h b/Setup/SetupStack.h
index 2d68a982ab5cf00674129d6d1ff7627ea80aee18..fce58ce07a686ea6d316d2f1b0f3d915619345c3 100644
--- a/Setup/SetupStack.h
+++ b/Setup/SetupStack.h
@@ -58,28 +58,43 @@ namespace corsika::setup {
 
   // ---------------------------------------
   // this is the FINAL stack we use in C8:
+  
+  // the version without history
   // using Stack = detail::StackWithGeometry;
+
+  // the version with history
   using Stack = detail::StackWithHistory;
 
-  /*
-    See Issue 161
-
-    unfortunately clang does not support this in the same way (yet) as
-    gcc, so we have to distinguish here. If clang cataches up, we
-    could remove the clang branch here and also in
-    corsika::Cascade. The gcc code is much more generic and
-    universal. If we could do the gcc version, we won't had to define
-    StackView globally, we could do it with MakeView whereever it is
-    actually needed. Keep an eye on this!
-  */
+  namespace detail {
+    /*
+      See Issue 161
+      
+      unfortunately clang does not support this in the same way (yet) as
+      gcc, so we have to distinguish here. If clang cataches up, we
+      could remove the clang branch here and also in
+      corsika::Cascade. The gcc code is much more generic and
+      universal. If we could do the gcc version, we won't had to define
+      StackView globally, we could do it with MakeView whereever it is
+      actually needed. Keep an eye on this!
+    */
 #if defined(__clang__)
-  using StackView = corsika::stack::SecondaryView<
+    using TheStackView = corsika::stack::SecondaryView<
       typename corsika::setup::Stack::StackImpl,
       // CHECK with CLANG: corsika::setup::Stack::PIType>;
       // corsika::setup::detail::StackWithGeometryInterface>;
       corsika::setup::detail::StackWithHistoryInterface>;
 #elif defined(__GNUC__) || defined(__GNUG__)
-  using StackView = corsika::history::HistorySecondaryView<corsika::stack::MakeView<corsika::setup::Stack>::type>;
+    using TheStackView = corsika::stack::MakeView<corsika::setup::Stack>::type;
 #endif
+  }
+
+  // ---------------------------------------
+  // this is the FINAL stackitertor (particle type) we use in C8:
+
+  // the version without history
+  //using StackView = detail::StackView;
+
+  // the one with history
+  using StackView = corsika::history::HistorySecondaryView<detail::TheStackView>;
 
 } // namespace corsika::setup
diff --git a/Stack/History/HistorySecondaryView.hpp b/Stack/History/HistorySecondaryView.hpp
index 235566b5e19ced2ac6f6f035e3942768afc40997..e4a36cc1ce7a285e7a1881977de5333eb5c95367 100644
--- a/Stack/History/HistorySecondaryView.hpp
+++ b/Stack/History/HistorySecondaryView.hpp
@@ -24,6 +24,7 @@ namespace corsika::history {
 
     EventPtr event_;
 
+  public:
     using StackIteratorValue = typename TView::StackIteratorValue;
     using StackIterator = typename TView::StackIterator;
 
diff --git a/Stack/History/HistoryStackExtension.h b/Stack/History/HistoryStackExtension.h
index 92b3fd025c5d9dccb5b3f417058bde1d1c94f756..798eb1004e6433c2dc884366df3e1f365cb8873e 100644
--- a/Stack/History/HistoryStackExtension.h
+++ b/Stack/History/HistoryStackExtension.h
@@ -90,13 +90,6 @@ namespace corsika::history {
     void SetParticleData(HistoryDataInterface& /*parent*/) {
             C8LOG_TRACE("HistoyDatatInterface::SetParticleData(parnt)");
 	    SetParticleData();
-
-
-      // store particles at production time in Event here
-      auto const sec_index = event_->addSecondary(
-          stack_sec.GetEnergy(), stack_sec.GetMomentum(), stack_sec.GetPID());
-      stack_sec.SetParentEventIndex(sec_index);
-      stack_sec.SetEvent(event_);
     }
 
     void SetEvent(const std::shared_ptr<TEvent>& v) {