diff --git a/MathLib/ODE/ConcreteODESolver.h b/MathLib/ODE/ConcreteODESolver.h
index e404ec166d3bfd1c34c96bc705fe8e905265c3d2..0d90fe34d67e93e7654b0a5cb5172aee8decae34 100644
--- a/MathLib/ODE/ConcreteODESolver.h
+++ b/MathLib/ODE/ConcreteODESolver.h
@@ -45,11 +45,8 @@ class ConcreteODESolver final : public ODESolver<NumEquations>,
                                 private Implementation
 {
 public:
-	using Interface = ODESolver<NumEquations>;
-	using Function = typename Interface::Function;
-	using JacobianFunction = typename Interface::JacobianFunction;
-
-	void setFunction(Function f, JacobianFunction df) override
+	void setFunction(MathLib::Function<NumEquations> f,
+	                 MathLib::JacobianFunction<NumEquations> df) override
 	{
 		Implementation::setFunction(
 		    std::unique_ptr<detail::FunctionHandlesImpl<NumEquations>>{
diff --git a/MathLib/ODE/ODESolver.h b/MathLib/ODE/ODESolver.h
index fdc2b26908f1c628f3edc4879c8e28cd9a29e7e3..3e60dfa38e90fd10ec58fd7bd7c898424f8ac55d 100644
--- a/MathLib/ODE/ODESolver.h
+++ b/MathLib/ODE/ODESolver.h
@@ -27,10 +27,8 @@ template <unsigned NumEquations>
 class ODESolver
 {
 public:
-	using Function = MathLib::Function<NumEquations>;
-	using JacobianFunction = MathLib::JacobianFunction<NumEquations>;
-
-	virtual void setFunction(Function f, JacobianFunction df) = 0;
+	virtual void setFunction(MathLib::Function<NumEquations> f,
+	                         MathLib::JacobianFunction<NumEquations> df) = 0;
 
 	virtual void setTolerance(const std::array<double, NumEquations>& abstol,
 	                          const double reltol) = 0;