diff --git a/ProcessLib/Process.cpp b/ProcessLib/Process.cpp
index f741a461fd543b142c8cd87c0038087f79aff8dd..ba05df875ccd53ffe993ec59545e46e37d35ab27 100644
--- a/ProcessLib/Process.cpp
+++ b/ProcessLib/Process.cpp
@@ -13,6 +13,7 @@
 #include "NumLib/DOF/ComputeSparsityPattern.h"
 #include "NumLib/Extrapolation/LocalLinearLeastSquaresExtrapolator.h"
 #include "NumLib/ODESolver/ConvergenceCriterionPerComponent.h"
+#include "ParameterLib/Parameter.h"
 #include "ProcessLib/Output/GlobalVectorFromNamedFunction.h"
 
 #include "ProcessVariable.h"
@@ -23,7 +24,7 @@ namespace ProcessLib
 Process::Process(
     MeshLib::Mesh& mesh,
     std::unique_ptr<ProcessLib::AbstractJacobianAssembler>&& jacobian_assembler,
-    std::vector<std::unique_ptr<ParameterBase>> const& parameters,
+    std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
     unsigned const integration_order,
     std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&&
         process_variables,
@@ -122,7 +123,7 @@ void Process::setInitialConditions(const int process_id, double const t,
          variable_id++)
     {
         MathLib::LinAlg::setLocalAccessibleVector(x);
-        SpatialPosition pos;
+        ParameterLib::SpatialPosition pos;
 
         auto const& pv = per_process_variables[variable_id];
         DBUG("Set the initial condition of variable %s of process %d.",
diff --git a/ProcessLib/Process.h b/ProcessLib/Process.h
index 25c70fd6e66867eae2b207ff3f16a7d729146f1d..fdcfdf0fd21bac060f5d23c058941352ece945f6 100644
--- a/ProcessLib/Process.h
+++ b/ProcessLib/Process.h
@@ -15,12 +15,12 @@
 #include "NumLib/ODESolver/NonlinearSolver.h"
 #include "NumLib/ODESolver/ODESystem.h"
 #include "NumLib/ODESolver/TimeDiscretization.h"
+#include "ParameterLib/Parameter.h"
 #include "ProcessLib/BoundaryCondition/BoundaryConditionCollection.h"
 #include "ProcessLib/Output/CachedSecondaryVariable.h"
 #include "ProcessLib/Output/ExtrapolatorData.h"
 #include "ProcessLib/Output/IntegrationPointWriter.h"
 #include "ProcessLib/Output/SecondaryVariable.h"
-#include "ProcessLib/Parameter/Parameter.h"
 #include "ProcessLib/SourceTerms/SourceTermCollection.h"
 
 #include "AbstractJacobianAssembler.h"
@@ -47,7 +47,8 @@ public:
 
     Process(MeshLib::Mesh& mesh,
             std::unique_ptr<AbstractJacobianAssembler>&& jacobian_assembler,
-            std::vector<std::unique_ptr<ParameterBase>> const& parameters,
+            std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const&
+                parameters,
             unsigned const integration_order,
             std::vector<std::vector<std::reference_wrapper<ProcessVariable>>>&&
                 process_variables,
diff --git a/ProcessLib/ProcessVariable.cpp b/ProcessLib/ProcessVariable.cpp
index dac2b422919cbbdc1676e9c505c77f40b2d9ed95..bb1ad5aafe16db70d3407ff775bc7e16b10a9702 100644
--- a/ProcessLib/ProcessVariable.cpp
+++ b/ProcessLib/ProcessVariable.cpp
@@ -10,23 +10,20 @@
 #include "ProcessVariable.h"
 
 #include <algorithm>
-#include <utility>
-
 #include <logog/include/logog.hpp>
+#include <utility>
 
 #include "BaseLib/Algorithm.h"
 #include "BaseLib/TimeInterval.h"
-
 #include "MeshGeoToolsLib/ConstructMeshesFromGeometries.h"
 #include "MeshLib/Mesh.h"
 #include "MeshLib/Node.h"
-
+#include "ParameterLib/Utils.h"
 #include "ProcessLib/BoundaryCondition/BoundaryCondition.h"
 #include "ProcessLib/BoundaryCondition/CreateBoundaryCondition.h"
 #include "ProcessLib/BoundaryCondition/DirichletBoundaryConditionWithinTimeInterval.h"
 #include "ProcessLib/SourceTerms/CreateSourceTerm.h"
 #include "ProcessLib/SourceTerms/SourceTerm.h"
-#include "ProcessLib/Utils/ProcessUtils.h"
 
 namespace
 {
@@ -95,7 +92,7 @@ ProcessVariable::ProcessVariable(
     BaseLib::ConfigTree const& config,
     MeshLib::Mesh& mesh,
     std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes,
-    std::vector<std::unique_ptr<ParameterBase>> const& parameters)
+    std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters)
     :  //! \ogs_file_param{prj__process_variables__process_variable__name}
       _name(config.getConfigParameter<std::string>("name")),
       _mesh(mesh),
@@ -104,7 +101,7 @@ ProcessVariable::ProcessVariable(
       //! \ogs_file_param{prj__process_variables__process_variable__order}
       _shapefunction_order(config.getConfigParameter<unsigned>("order")),
       _deactivated_subdomains(createDeactivatedSubdomains(config, mesh)),
-      _initial_condition(findParameter<double>(
+      _initial_condition(ParameterLib::findParameter<double>(
           //! \ogs_file_param{prj__process_variables__process_variable__initial_condition}
           config.getConfigParameter<std::string>("initial_condition"),
           parameters, _n_components))
@@ -204,7 +201,7 @@ ProcessVariable::createBoundaryConditions(
     const NumLib::LocalToGlobalIndexMap& dof_table,
     const int variable_id,
     unsigned const integration_order,
-    std::vector<std::unique_ptr<ParameterBase>> const& parameters,
+    std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
     Process const& process)
 {
     std::vector<std::unique_ptr<BoundaryCondition>> bcs;
@@ -236,10 +233,10 @@ ProcessVariable::createBoundaryConditions(
 
 void ProcessVariable::createBoundaryConditionsForDeactivatedSubDomains(
     const NumLib::LocalToGlobalIndexMap& dof_table, const int variable_id,
-    std::vector<std::unique_ptr<ParameterBase>> const& parameters,
+    std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters,
     std::vector<std::unique_ptr<BoundaryCondition>>& bcs)
 {
-    auto& parameter = findParameter<double>(
+    auto& parameter = ParameterLib::findParameter<double>(
         DeactivatedSubdomain::zero_parameter_name, parameters, 1);
 
     for (auto const& deactivated_subdomain : _deactivated_subdomains)
@@ -327,7 +324,7 @@ std::vector<std::unique_ptr<SourceTerm>> ProcessVariable::createSourceTerms(
     const NumLib::LocalToGlobalIndexMap& dof_table,
     const int variable_id,
     unsigned const integration_order,
-    std::vector<std::unique_ptr<ParameterBase>> const& parameters)
+    std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const& parameters)
 {
     std::vector<std::unique_ptr<SourceTerm>> source_terms;
 
diff --git a/ProcessLib/ProcessVariable.h b/ProcessLib/ProcessVariable.h
index 55fb76147be6493628657cb4204bbcef3f5495b6..30b374aa60b0152d5c95e30ab4fcaa0c4787ec84 100644
--- a/ProcessLib/ProcessVariable.h
+++ b/ProcessLib/ProcessVariable.h
@@ -11,8 +11,8 @@
 
 #include "MathLib/LinAlg/GlobalMatrixVectorTypes.h"
 
+#include "ParameterLib/Parameter.h"
 #include "ProcessLib/BoundaryCondition/BoundaryConditionConfig.h"
-#include "ProcessLib/Parameter/Parameter.h"
 #include "ProcessLib/SourceTerms/SourceTermConfig.h"
 
 // DeactivatedSubdomain cannot be forwardly declared because that
@@ -48,7 +48,8 @@ public:
     ProcessVariable(
         BaseLib::ConfigTree const& config, MeshLib::Mesh& mesh,
         std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes,
-        std::vector<std::unique_ptr<ParameterBase>> const& parameters);
+        std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const&
+            parameters);
 
     ProcessVariable(ProcessVariable&&);
 
@@ -75,15 +76,17 @@ public:
     std::vector<std::unique_ptr<BoundaryCondition>> createBoundaryConditions(
         const NumLib::LocalToGlobalIndexMap& dof_table, const int variable_id,
         unsigned const integration_order,
-        std::vector<std::unique_ptr<ParameterBase>> const& parameters,
+        std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const&
+            parameters,
         Process const& process);
 
     std::vector<std::unique_ptr<SourceTerm>> createSourceTerms(
         const NumLib::LocalToGlobalIndexMap& dof_table, const int variable_id,
         unsigned const integration_order,
-        std::vector<std::unique_ptr<ParameterBase>> const& parameters);
+        std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const&
+            parameters);
 
-    Parameter<double> const& getInitialCondition() const
+    ParameterLib::Parameter<double> const& getInitialCondition() const
     {
         return _initial_condition;
     }
@@ -117,10 +120,11 @@ private:
 
     void createBoundaryConditionsForDeactivatedSubDomains(
         const NumLib::LocalToGlobalIndexMap& dof_table, const int variable_id,
-        std::vector<std::unique_ptr<ParameterBase>> const& parameters,
+        std::vector<std::unique_ptr<ParameterLib::ParameterBase>> const&
+            parameters,
         std::vector<std::unique_ptr<BoundaryCondition>>& bcs);
 
-    Parameter<double> const& _initial_condition;
+    ParameterLib::Parameter<double> const& _initial_condition;
 
     std::vector<BoundaryConditionConfig> _bc_configs;
     std::vector<SourceTermConfig> _source_term_configs;