diff --git a/corsika/detail/modules/TrackWriter.inl b/corsika/detail/modules/TrackWriter.inl
index 811b27ae19cb1b05ae6134b82fddaa41727def81..e44119069d5b7a141a97d7851c5f7ecdb2068837 100644
--- a/corsika/detail/modules/TrackWriter.inl
+++ b/corsika/detail/modules/TrackWriter.inl
@@ -15,9 +15,9 @@
 
 namespace corsika {
 
+
   template <typename TOutput>
-  inline TrackWriter<TOutput>::TrackWriter(TOutput& output)
-      : output_(output) {}
+  inline TrackWriter<TOutput>::TrackWriter() {}
 
   template <typename TOutput>
   template <typename TParticle, typename TTrack>
@@ -49,7 +49,8 @@ namespace corsika {
 
     // add default units for values
     node["type"] = "TrackWriter";
-    node["units"] = "GeV | m | s";
+    node["units"]["energy"] = "GeV";
+    node["units"]["length"] = "m";
 
     return node;
   }
diff --git a/corsika/modules/TrackWriter.hpp b/corsika/modules/TrackWriter.hpp
index cf21939d820e17881fa2b9d6664a10f20950d0b8..4d1a956bb364f08dc6e0099c5073c3412562f216 100644
--- a/corsika/modules/TrackWriter.hpp
+++ b/corsika/modules/TrackWriter.hpp
@@ -9,16 +9,16 @@
 #pragma once
 
 #include <corsika/framework/process/ContinuousProcess.hpp>
-#include <corsika/modules/writers/TrackWriterOff.hpp>
 #include <corsika/modules/writers/TrackWriterParquet.hpp>
 
 namespace corsika {
 
-  template <typename TOutput = TrackWriterOff>
-  class TrackWriter : public ContinuousProcess<TrackWriter<TOutput>> {
+  template <typename TOutput = WriterOff>
+  class TrackWriter : public ContinuousProcess<TrackWriter<TOutput>>,
+                      public TOutput {
 
   public:
-    TrackWriter(TOutput& output);
+    TrackWriter();
 
     template <typename TParticle, typename TTrack>
     ProcessReturn doContinuous(TParticle const&, TTrack const&, bool const limitFlag);
@@ -29,7 +29,7 @@ namespace corsika {
     YAML::Node getConfig() const;
 
   private:
-    TOutput& output_;
+
   };
 
 } // namespace corsika