diff --git a/ProcessLib/GroundwaterFlow/CreateGroundwaterFlowProcess.cpp b/ProcessLib/GroundwaterFlow/CreateGroundwaterFlowProcess.cpp
index 71728cf8ea658e8bc723cc357faa2e5b1a2dabcf..64b79443c5e386ccdd158186fff3b74492317777 100644
--- a/ProcessLib/GroundwaterFlow/CreateGroundwaterFlowProcess.cpp
+++ b/ProcessLib/GroundwaterFlow/CreateGroundwaterFlowProcess.cpp
@@ -62,10 +62,11 @@ std::unique_ptr<Process> createGroundwaterFlowProcess(
     ProcessOutput process_output{config.getConfigSubtree("output")};
 
     return std::unique_ptr<Process>{new GroundwaterFlowProcess{
-        parameters, mesh, nonlinear_solver, std::move(time_discretization),
-        std::move(convergence_criterion), std::move(process_variables),
-        std::move(process_data), std::move(secondary_variables),
-        std::move(process_output), std::move(named_function_caller)}};
+        mesh, nonlinear_solver, std::move(time_discretization),
+        std::move(convergence_criterion), parameters,
+        std::move(process_variables), std::move(process_data),
+        std::move(secondary_variables), std::move(process_output),
+        std::move(named_function_caller)}};
 }
 
 }  // namespace GroundwaterFlow
diff --git a/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.cpp b/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.cpp
index 46af91c86c16e7a5455a82d397de4604d68a232b..e077af278382462a8f329036176aa8299f5a19d9 100644
--- a/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.cpp
+++ b/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.cpp
@@ -18,20 +18,20 @@ namespace ProcessLib
 namespace GroundwaterFlow
 {
 GroundwaterFlowProcess::GroundwaterFlowProcess(
-    std::vector<std::unique_ptr<ParameterBase>> const& parameters,
     MeshLib::Mesh& mesh,
     Base::NonlinearSolver& nonlinear_solver,
     std::unique_ptr<Base::TimeDiscretization>&& time_discretization,
     std::unique_ptr<NumLib::ConvergenceCriterion>&& convergence_criterion,
+    std::vector<std::unique_ptr<ParameterBase>> const& parameters,
     std::vector<std::reference_wrapper<ProcessVariable>>&& process_variables,
     GroundwaterFlowProcessData&& process_data,
     SecondaryVariableCollection&& secondary_variables,
     ProcessOutput&& process_output,
     NumLib::NamedFunctionCaller&& named_function_caller)
-    : Process(parameters, mesh, nonlinear_solver, std::move(time_discretization),
-              std::move(convergence_criterion), std::move(process_variables),
-              std::move(secondary_variables), std::move(process_output),
-              std::move(named_function_caller)),
+    : Process(mesh, nonlinear_solver, std::move(time_discretization),
+              std::move(convergence_criterion), parameters,
+              std::move(process_variables), std::move(secondary_variables),
+              std::move(process_output), std::move(named_function_caller)),
       _process_data(std::move(process_data))
 {
     if (dynamic_cast<NumLib::ForwardEuler*>(
diff --git a/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.h b/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.h
index b0e2365c3c893d7ec89a7060fe526217a2c86c89..8f043ea6dcde6275957a9bb7be7f4a23be563afd 100644
--- a/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.h
+++ b/ProcessLib/GroundwaterFlow/GroundwaterFlowProcess.h
@@ -26,11 +26,11 @@ class GroundwaterFlowProcess final : public Process
 
 public:
     GroundwaterFlowProcess(
-        std::vector<std::unique_ptr<ParameterBase>> const& parameters,
         MeshLib::Mesh& mesh,
         Base::NonlinearSolver& nonlinear_solver,
         std::unique_ptr<Base::TimeDiscretization>&& time_discretization,
         std::unique_ptr<NumLib::ConvergenceCriterion>&& convergence_criterion,
+        std::vector<std::unique_ptr<ParameterBase>> const& parameters,
         std::vector<std::reference_wrapper<ProcessVariable>>&&
             process_variables,
         GroundwaterFlowProcessData&& process_data,
diff --git a/ProcessLib/Process.cpp b/ProcessLib/Process.cpp
index 8c42836da929cf8a07fa7cc5898f1b09a3a4fca9..d41463c125b189c7a6c03dd663fc2abc449d0cfe 100644
--- a/ProcessLib/Process.cpp
+++ b/ProcessLib/Process.cpp
@@ -19,11 +19,11 @@
 namespace ProcessLib
 {
 Process::Process(
-    std::vector<std::unique_ptr<ParameterBase>> const& parameters,
     MeshLib::Mesh& mesh,
     NonlinearSolver& nonlinear_solver,
     std::unique_ptr<TimeDiscretization>&& time_discretization,
     std::unique_ptr<NumLib::ConvergenceCriterion>&& convergence_criterion,
+    std::vector<std::unique_ptr<ParameterBase>> const& parameters,
     std::vector<std::reference_wrapper<ProcessVariable>>&& process_variables,
     SecondaryVariableCollection&& secondary_variables,
     ProcessOutput&& process_output,
diff --git a/ProcessLib/Process.h b/ProcessLib/Process.h
index 870960a97465c575c7790b481d275248480044ca..650ffb7d6fbb6067f2aaa08f592a0d52981d7cf1 100644
--- a/ProcessLib/Process.h
+++ b/ProcessLib/Process.h
@@ -39,11 +39,11 @@ public:
     using TimeDiscretization = NumLib::TimeDiscretization;
 
     Process(
-        std::vector<std::unique_ptr<ParameterBase>> const& parameters,
         MeshLib::Mesh& mesh,
         NonlinearSolver& nonlinear_solver,
         std::unique_ptr<TimeDiscretization>&& time_discretization,
         std::unique_ptr<NumLib::ConvergenceCriterion>&& convergence_criterion,
+        std::vector<std::unique_ptr<ParameterBase>> const& parameters,
         std::vector<std::reference_wrapper<ProcessVariable>>&&
             process_variables,
         SecondaryVariableCollection&& secondary_variables,
diff --git a/ProcessLib/TES/CreateTESProcess.cpp b/ProcessLib/TES/CreateTESProcess.cpp
index 41748152207489528d9573349544ea59f2b1a4a2..2c5393eb0d673429a42fac73603b236a2b7ca5c1 100644
--- a/ProcessLib/TES/CreateTESProcess.cpp
+++ b/ProcessLib/TES/CreateTESProcess.cpp
@@ -46,10 +46,10 @@ std::unique_ptr<Process> createTESProcess(
     ProcessOutput process_output{config.getConfigSubtree("output")};
 
     return std::unique_ptr<Process>{new TESProcess{
-        parameters, mesh, nonlinear_solver, std::move(time_discretization),
-        std::move(convergence_criterion), std::move(process_variables),
-        std::move(secondary_variables), std::move(process_output),
-        std::move(named_function_caller), config}};
+        mesh, nonlinear_solver, std::move(time_discretization),
+        std::move(convergence_criterion), parameters,
+        std::move(process_variables), std::move(secondary_variables),
+        std::move(process_output), std::move(named_function_caller), config}};
 }
 
 }  // namespace TES
diff --git a/ProcessLib/TES/TESProcess.cpp b/ProcessLib/TES/TESProcess.cpp
index 73affd4a52555b31f6f34307172fa015439617e5..c53b16cebdf74d4f1a0bb12cb7e95d510f03ec6a 100644
--- a/ProcessLib/TES/TESProcess.cpp
+++ b/ProcessLib/TES/TESProcess.cpp
@@ -54,20 +54,20 @@ namespace ProcessLib
 namespace TES
 {
 TESProcess::TESProcess(
-    std::vector<std::unique_ptr<ParameterBase>> const& parameters,
     MeshLib::Mesh& mesh,
     Process::NonlinearSolver& nonlinear_solver,
     std::unique_ptr<Process::TimeDiscretization>&& time_discretization,
     std::unique_ptr<NumLib::ConvergenceCriterion>&& convergence_criterion,
+    std::vector<std::unique_ptr<ParameterBase>> const& parameters,
     std::vector<std::reference_wrapper<ProcessVariable>>&& process_variables,
     SecondaryVariableCollection&& secondary_variables,
     ProcessOutput&& process_output,
     NumLib::NamedFunctionCaller&& named_function_caller,
     const BaseLib::ConfigTree& config)
-    : Process(parameters, mesh, nonlinear_solver, std::move(time_discretization),
-              std::move(convergence_criterion), std::move(process_variables),
-              std::move(secondary_variables), std::move(process_output),
-              std::move(named_function_caller))
+    : Process(mesh, nonlinear_solver, std::move(time_discretization),
+              std::move(convergence_criterion), parameters,
+              std::move(process_variables), std::move(secondary_variables),
+              std::move(process_output), std::move(named_function_caller))
 {
     DBUG("Create TESProcess.");
 
diff --git a/ProcessLib/TES/TESProcess.h b/ProcessLib/TES/TESProcess.h
index 1546937f0b30b3f42feba22df206ce025a18a97f..84dbb50132ee213c17810cb1c3eae68fcfd2f4af 100644
--- a/ProcessLib/TES/TESProcess.h
+++ b/ProcessLib/TES/TESProcess.h
@@ -32,11 +32,11 @@ class TESProcess final : public Process
 {
 public:
     TESProcess(
-        std::vector<std::unique_ptr<ParameterBase>> const& parameters,
         MeshLib::Mesh& mesh,
         Process::NonlinearSolver& nonlinear_solver,
         std::unique_ptr<Process::TimeDiscretization>&& time_discretization,
         std::unique_ptr<NumLib::ConvergenceCriterion>&& convergence_criterion,
+        std::vector<std::unique_ptr<ParameterBase>> const& parameters,
         std::vector<std::reference_wrapper<ProcessVariable>>&&
             process_variables,
         SecondaryVariableCollection&& secondary_variables,