diff --git a/NumLib/TimeStepping/Algorithms/EvolutionaryPIDcontroller.cpp b/NumLib/TimeStepping/Algorithms/EvolutionaryPIDcontroller.cpp
index b356039b420ebf38d025251a2c758e46480f8c78..b9ec34a2b6622d3b5fe9d6524464dbd989cb6316 100644
--- a/NumLib/TimeStepping/Algorithms/EvolutionaryPIDcontroller.cpp
+++ b/NumLib/TimeStepping/Algorithms/EvolutionaryPIDcontroller.cpp
@@ -20,6 +20,26 @@
 
 namespace NumLib
 {
+EvolutionaryPIDcontroller::EvolutionaryPIDcontroller(
+    const double t0, const double t_end, const double h0, const double h_min,
+    const double h_max, const double rel_h_min, const double rel_h_max,
+    std::vector<double>&& fixed_output_times, const double tol)
+    : TimeStepAlgorithm(t0, t_end),
+      _h0(h0),
+      _h_min(h_min),
+      _h_max(h_max),
+      _rel_h_min(rel_h_min),
+      _rel_h_max(rel_h_max),
+      _fixed_output_times(std::move(fixed_output_times)),
+      _tol(tol),
+      _e_n_minus1(0.),
+      _e_n_minus2(0.),
+      _is_accepted(true)
+{
+    // Remove possible duplicated elements. Result will be sorted.
+    BaseLib::makeVectorUnique(_fixed_output_times);
+}
+
 bool EvolutionaryPIDcontroller::next(double const solution_error,
                                      int const /*number_iterations*/)
 {
diff --git a/NumLib/TimeStepping/Algorithms/EvolutionaryPIDcontroller.h b/NumLib/TimeStepping/Algorithms/EvolutionaryPIDcontroller.h
index ad2d397e91fbeca234d992e82dba9ca7027dedbb..069daca9aab88a8c5416ad041d521bd8d02f4af7 100644
--- a/NumLib/TimeStepping/Algorithms/EvolutionaryPIDcontroller.h
+++ b/NumLib/TimeStepping/Algorithms/EvolutionaryPIDcontroller.h
@@ -15,7 +15,6 @@
 #include <vector>
 
 #include "TimeStepAlgorithm.h"
-#include "BaseLib/Algorithm.h"
 
 namespace BaseLib
 {
@@ -57,22 +56,7 @@ public:
                               const double h_max, const double rel_h_min,
                               const double rel_h_max,
                               std::vector<double>&& fixed_output_times,
-                              const double tol)
-        : TimeStepAlgorithm(t0, t_end),
-          _h0(h0),
-          _h_min(h_min),
-          _h_max(h_max),
-          _rel_h_min(rel_h_min),
-          _rel_h_max(rel_h_max),
-          _fixed_output_times(std::move(fixed_output_times)),
-          _tol(tol),
-          _e_n_minus1(0.),
-          _e_n_minus2(0.),
-          _is_accepted(true)
-    {
-        // Remove possible duplicated elements. Result will be sorted.
-        BaseLib::makeVectorUnique(_fixed_output_times);
-    }
+                              const double tol);
 
     bool next(double solution_error, int number_iterations) override;