diff --git a/Applications/ApplicationsLib/ProjectData.cpp b/Applications/ApplicationsLib/ProjectData.cpp
index 6c3104115ef0dc06c578d26d870db690eda14642..8e8d16614e7ba01a5f14ef03f64084349a5d72dd 100644
--- a/Applications/ApplicationsLib/ProjectData.cpp
+++ b/Applications/ApplicationsLib/ProjectData.cpp
@@ -353,7 +353,7 @@ ProjectData::ProjectData(BaseLib::ConfigTree const& project_config,
 
     //! \ogs_file_param{prj__time_loop}
     parseTimeLoop(project_config.getConfigSubtree("time_loop"),
-                  output_directory, std::move(chemical_solver_interface));
+                  output_directory);
 }
 
 void ProjectData::parseProcessVariables(
@@ -1036,17 +1036,13 @@ void ProjectData::parseProcesses(
     }
 }
 
-void ProjectData::parseTimeLoop(
-    BaseLib::ConfigTree const& config,
-    std::string const& output_directory,
-    std::unique_ptr<ChemistryLib::ChemicalSolverInterface>&&
-        chemical_solver_interface)
+void ProjectData::parseTimeLoop(BaseLib::ConfigTree const& config,
+                                std::string const& output_directory)
 {
     DBUG("Reading time loop configuration.");
 
     _time_loop = ProcessLib::createTimeLoop(
-        config, output_directory, _processes, _nonlinear_solvers, _mesh_vec,
-        std::move(chemical_solver_interface));
+        config, output_directory, _processes, _nonlinear_solvers, _mesh_vec);
 
     if (!_time_loop)
     {
diff --git a/Applications/ApplicationsLib/ProjectData.h b/Applications/ApplicationsLib/ProjectData.h
index a12704bee5515d79605f501063554d734e2c8516..6b02facc8ed2cbeb5af285080447321036df50a6 100644
--- a/Applications/ApplicationsLib/ProjectData.h
+++ b/Applications/ApplicationsLib/ProjectData.h
@@ -107,9 +107,7 @@ private:
 
     /// Parses the time loop configuration.
     void parseTimeLoop(BaseLib::ConfigTree const& config,
-                       const std::string& output_directory,
-                       std::unique_ptr<ChemistryLib::ChemicalSolverInterface>&&
-                           chemical_solver_interface);
+                       const std::string& output_directory);
 
     void parseLinearSolvers(BaseLib::ConfigTree const& config);
 
diff --git a/ProcessLib/CreateTimeLoop.cpp b/ProcessLib/CreateTimeLoop.cpp
index 6a422d6e86fa5a8c5c6cb27fe8fcb01e9374606a..925151cf38db1c73540222878917fe9842ad8810 100644
--- a/ProcessLib/CreateTimeLoop.cpp
+++ b/ProcessLib/CreateTimeLoop.cpp
@@ -24,9 +24,7 @@ std::unique_ptr<TimeLoop> createTimeLoop(
     const std::vector<std::unique_ptr<Process>>& processes,
     const std::map<std::string, std::unique_ptr<NumLib::NonlinearSolverBase>>&
         nonlinear_solvers,
-    std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes,
-    std::unique_ptr<ChemistryLib::ChemicalSolverInterface>&&
-        chemical_solver_interface)
+    std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes)
 {
     auto const& coupling_config
         //! \ogs_file_param{prj__time_loop__global_process_coupling}
@@ -94,7 +92,6 @@ std::unique_ptr<TimeLoop> createTimeLoop(
 
     return std::make_unique<TimeLoop>(
         std::move(output), std::move(per_process_data), max_coupling_iterations,
-        std::move(global_coupling_conv_criteria),
-        std::move(chemical_solver_interface), start_time, end_time);
+        std::move(global_coupling_conv_criteria), start_time, end_time);
 }
 }  // namespace ProcessLib
diff --git a/ProcessLib/CreateTimeLoop.h b/ProcessLib/CreateTimeLoop.h
index c005c61c32ecc219a4dd7e22e6f477dabc0d2356..322380cf7a0c83ffe902df32f591b8f6f60f4a78 100644
--- a/ProcessLib/CreateTimeLoop.h
+++ b/ProcessLib/CreateTimeLoop.h
@@ -30,11 +30,6 @@ namespace NumLib
 class NonlinearSolverBase;
 }
 
-namespace ChemistryLib
-{
-class ChemicalSolverInterface;
-}
-
 namespace ProcessLib
 {
 class TimeLoop;
@@ -49,8 +44,6 @@ std::unique_ptr<TimeLoop> createTimeLoop(
     std::vector<std::unique_ptr<Process>> const& processes,
     std::map<std::string, std::unique_ptr<NumLib::NonlinearSolverBase>> const&
         nonlinear_solvers,
-    std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes,
-    std::unique_ptr<ChemistryLib::ChemicalSolverInterface>&&
-        chemical_solver_interface);
+    std::vector<std::unique_ptr<MeshLib::Mesh>> const& meshes);
 
 }  // namespace ProcessLib
diff --git a/ProcessLib/TimeLoop.cpp b/ProcessLib/TimeLoop.cpp
index b4e981105b8ee646164f80556f6ab198ebf7aa61..80b37eef7a28d5a25cdd5dcecd2f0705ae3de463 100644
--- a/ProcessLib/TimeLoop.cpp
+++ b/ProcessLib/TimeLoop.cpp
@@ -12,7 +12,6 @@
 
 #include "BaseLib/Error.h"
 #include "BaseLib/RunTime.h"
-#include "ChemistryLib/ChemicalSolverInterface.h"
 #include "CoupledSolutionsForStaggeredScheme.h"
 #include "MathLib/LinAlg/LinAlg.h"
 #include "NumLib/ODESolver/ConvergenceCriterionPerComponent.h"
@@ -323,16 +322,13 @@ TimeLoop::TimeLoop(std::unique_ptr<Output>&& output,
                    const int global_coupling_max_iterations,
                    std::vector<std::unique_ptr<NumLib::ConvergenceCriterion>>&&
                        global_coupling_conv_crit,
-                   std::unique_ptr<ChemistryLib::ChemicalSolverInterface>&&
-                       chemical_solver_interface,
                    const double start_time, const double end_time)
     : _output(std::move(output)),
       _per_process_data(std::move(per_process_data)),
       _start_time(start_time),
       _end_time(end_time),
       _global_coupling_max_iterations(global_coupling_max_iterations),
-      _global_coupling_conv_crit(std::move(global_coupling_conv_crit)),
-      _chemical_solver_interface(std::move(chemical_solver_interface))
+      _global_coupling_conv_crit(std::move(global_coupling_conv_crit))
 {
 }
 
diff --git a/ProcessLib/TimeLoop.h b/ProcessLib/TimeLoop.h
index 7e2e5f5b20d8919888940e977f956d385263fbc9..1094269aa64f022eda1bb58750b9cf4bc642c5a9 100644
--- a/ProcessLib/TimeLoop.h
+++ b/ProcessLib/TimeLoop.h
@@ -43,8 +43,6 @@ public:
              const int global_coupling_max_iterations,
              std::vector<std::unique_ptr<NumLib::ConvergenceCriterion>>&&
                  global_coupling_conv_crit,
-             std::unique_ptr<ChemistryLib::ChemicalSolverInterface>&&
-                 chemical_system,
              const double start_time, const double end_time);
 
     void initialize();
@@ -125,9 +123,6 @@ private:
     std::vector<std::unique_ptr<NumLib::ConvergenceCriterion>>
         _global_coupling_conv_crit;
 
-    std::unique_ptr<ChemistryLib::ChemicalSolverInterface>
-        _chemical_solver_interface;
-
     /// Solutions of the previous coupling iteration for the convergence
     /// criteria of the coupling iteration.
     std::vector<GlobalVector*> _solutions_of_last_cpl_iteration;