diff --git a/corsika/detail/modules/ObservationPlane.inl b/corsika/detail/modules/ObservationPlane.inl
index 99d416bc3ff7f566e9ed98ebd194e2d15c431bde..a8882c7d38d2addf91684563651d0890c000f4f8 100644
--- a/corsika/detail/modules/ObservationPlane.inl
+++ b/corsika/detail/modules/ObservationPlane.inl
@@ -9,15 +9,18 @@
 namespace corsika {
 
   template <typename TOutput>
+  template <typename... TArgs>
   ObservationPlane<TOutput>::ObservationPlane(Plane const& obsPlane,
                                               DirectionVector const& x_axis,
-                                              bool const deleteOnHit)
+                                              bool const deleteOnHit,
+                                              TArgs&&... args)
       : plane_(obsPlane)
       , deleteOnHit_(deleteOnHit)
       , energy_ground_(0_GeV)
       , count_ground_(0)
       , xAxis_(x_axis.normalized())
-      , yAxis_(obsPlane.getNormal().cross(xAxis_)) {}
+      , yAxis_(obsPlane.getNormal().cross(xAxis_))
+      , TOutput(std::forward<TArgs>(args)...) {}
 
   template <typename TTracking, typename TOutput>
   template <typename TParticle, typename TTrajectory>
diff --git a/corsika/modules/ObservationPlane.hpp b/corsika/modules/ObservationPlane.hpp
index b2c276ee64abcf89a58d84be2b7a184a178b7930..cb84db4be4adbbce215d1d5cc8afcec2018ad833 100644
--- a/corsika/modules/ObservationPlane.hpp
+++ b/corsika/modules/ObservationPlane.hpp
@@ -36,7 +36,9 @@ namespace corsika {
         public TOutputWriter {
 
   public:
-    ObservationPlane(Plane const&, DirectionVector const&, bool const = true);
+    template <typename... TArgs>
+    ObservationPlane(Plane const&, DirectionVector const&, bool const = true,
+                     TArgs&&... args);
 
     ~ObservationPlane() {}