diff --git a/ProcessLib/Output/Output.cpp b/ProcessLib/Output/Output.cpp
index f48ad5ba139703ec52357dab117e322d61862a20..2378b4257fe2a83118e44ea9b7e9761ea42ffdef 100644
--- a/ProcessLib/Output/Output.cpp
+++ b/ProcessLib/Output/Output.cpp
@@ -108,7 +108,7 @@ Output::Output(std::unique_ptr<OutputFile> output_file,
                OutputDataSpecification const& output_data_specification,
                std::vector<std::string> const& mesh_names_for_output,
                std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes)
-    : output_file(std::move(output_file)),
+    : _output_file(std::move(output_file)),
       _output_nonlinear_iteration_results(output_nonlinear_iteration_results),
       _output_data_specification(std::move(output_data_specification)),
       _mesh_names_for_output(mesh_names_for_output),
@@ -123,7 +123,7 @@ void Output::addProcess(ProcessLib::Process const& process)
     {
         _mesh_names_for_output.push_back(process.getMesh().getName());
     }
-    output_file->addProcess(process, _mesh_names_for_output);
+    _output_file->addProcess(process, _mesh_names_for_output);
 }
 
 void Output::outputMeshes(
@@ -131,9 +131,9 @@ void Output::outputMeshes(
     const double t, const int iteration,
     std::vector<std::reference_wrapper<const MeshLib::Mesh>> const& meshes)
 {
-    output_file->outputMeshes(process, process_id, timestep, t, iteration,
-                              meshes,
-                              _output_data_specification.output_variables);
+    _output_file->outputMeshes(process, process_id, timestep, t, iteration,
+                               meshes,
+                               _output_data_specification.output_variables);
 }
 
 MeshLib::Mesh const& Output::prepareSubmesh(
@@ -236,7 +236,7 @@ void Output::doOutput(Process const& process,
     // Note: last time step may be output twice: here and in
     // doOutputLastTimestep() which throws a warning.
     InSituLib::CoProcess(process.getMesh(), t, timestep, false,
-                         output_file->directory);
+                         _output_file->directory);
 #endif
 }
 
@@ -253,7 +253,7 @@ void Output::doOutputLastTimestep(Process const& process,
     }
 #ifdef OGS_USE_INSITU
     InSituLib::CoProcess(process.getMesh(), t, timestep, true,
-                         output_file->directory);
+                         _output_file->directory);
 #endif
 }
 
@@ -283,19 +283,19 @@ void Output::doOutputNonlinearIteration(Process const& process,
         return;
     }
 
-    std::string const output_file_name = output_file->constructFilename(
+    std::string const output_file_name = _output_file->constructFilename(
         process.getMesh().getName(), timestep, t, iteration);
 
     std::string const output_file_path =
-        BaseLib::joinPaths(output_file->directory, output_file_name);
+        BaseLib::joinPaths(_output_file->directory, output_file_name);
 
     DBUG("output iteration results to {:s}", output_file_path);
 
-    if (dynamic_cast<OutputVTKFormat*>(output_file.get()))
+    if (dynamic_cast<OutputVTKFormat*>(_output_file.get()))
     {
         outputMeshVtk(
-            output_file_path, process.getMesh(), output_file->compression,
-            dynamic_cast<OutputVTKFormat*>(output_file.get())->data_mode);
+            output_file_path, process.getMesh(), _output_file->compression,
+            dynamic_cast<OutputVTKFormat*>(_output_file.get())->data_mode);
     }
     else
     {
diff --git a/ProcessLib/Output/Output.h b/ProcessLib/Output/Output.h
index cd5e08f540b927c88160344ee3f8bd481fc5c720..2c292cb06372ad1758aeef4dbdc9630b566c0187 100644
--- a/ProcessLib/Output/Output.h
+++ b/ProcessLib/Output/Output.h
@@ -91,7 +91,7 @@ private:
         const int process_id, double const t,
         std::vector<GlobalVector*> const& xs) const;
 
-    std::unique_ptr<OutputFile> output_file;
+    std::unique_ptr<OutputFile> _output_file;
 
     bool const _output_nonlinear_iteration_results;
 
diff --git a/ProcessLib/Output/OutputFile.h b/ProcessLib/Output/OutputFile.h
index 572edeb28cc129b858952185fdfabdb278f002b7..f7211d2f2ef44162036f85c48f66223b009322ea 100644
--- a/ProcessLib/Output/OutputFile.h
+++ b/ProcessLib/Output/OutputFile.h
@@ -25,9 +25,9 @@ struct OutputFile
                std::string suffix, bool const compression);
     virtual ~OutputFile() = default;
 
-    OutputFile(OutputFile const& other) = default;
+    OutputFile(OutputFile const& other) = delete;
     OutputFile(OutputFile&& other) = default;
-    OutputFile& operator=(OutputFile& other) = default;
+    OutputFile& operator=(OutputFile& other) = delete;
     OutputFile& operator=(OutputFile&& other) = default;
 
     std::string directory;
diff --git a/ProcessLib/TimeLoop.cpp b/ProcessLib/TimeLoop.cpp
index 284b04dbbc7380def9e1d2b765e8c55e3b5ec256..ffd58fed6902b118c9f598717aae60b7b682d3fb 100644
--- a/ProcessLib/TimeLoop.cpp
+++ b/ProcessLib/TimeLoop.cpp
@@ -18,7 +18,7 @@
 #include "NumLib/ODESolver/PETScNonlinearSolver.h"
 #include "NumLib/ODESolver/TimeDiscretizedODESystem.h"
 #include "ProcessData.h"
-#include "ProcessLib/Output/CreateOutput.h"
+
 namespace
 {
 bool isMonolithicProcess(ProcessLib::ProcessData const& process_data)