diff --git a/Processes/TrackWriter/TrackWriter.cc b/Processes/TrackWriter/TrackWriter.cc
index 530b4778c622f4877e4ddc9732e49b1f4963732c..8c4506120a98297582ee5d1a09154b084450fa87 100644
--- a/Processes/TrackWriter/TrackWriter.cc
+++ b/Processes/TrackWriter/TrackWriter.cc
@@ -22,7 +22,9 @@ using Track = Trajectory;
 
 namespace corsika::process::track_writer {
 
-  void TrackWriter::Init() {
+  TrackWriter::TrackWriter(std::string const& filename)
+      : fFilename(filename) {
+
     using namespace std::string_literals;
 
     fFile.open(fFilename);
diff --git a/Processes/TrackWriter/TrackWriter.h b/Processes/TrackWriter/TrackWriter.h
index 8387d4a9fc91fc41569999d1575cdabb59e95ed0..f253c6d42fcd4af6893ae02df84361d26a445abc 100644
--- a/Processes/TrackWriter/TrackWriter.h
+++ b/Processes/TrackWriter/TrackWriter.h
@@ -19,10 +19,7 @@ namespace corsika::process::track_writer {
   class TrackWriter : public corsika::process::ContinuousProcess<TrackWriter> {
 
   public:
-    TrackWriter(std::string const& filename)
-        : fFilename(filename) {}
-
-    void Init();
+    TrackWriter(std::string const& filename);
 
     template <typename Particle, typename Track>
     corsika::process::EProcessReturn DoContinuous(Particle&, Track&);