diff --git a/NumLib/DOF/MatrixProviderUser.h b/NumLib/DOF/MatrixProviderUser.h
index cf955affecf2bfe0815db353394a181d7686f217..8fe4430c898d4e9a7d9b808f27cd072e459ce027 100644
--- a/NumLib/DOF/MatrixProviderUser.h
+++ b/NumLib/DOF/MatrixProviderUser.h
@@ -16,15 +16,6 @@
 
 namespace NumLib
 {
-class MatrixSpecificationsProvider
-{
-public:
-    virtual MathLib::MatrixSpecifications getMatrixSpecifications(
-        const int process_id) const = 0;
-
-    virtual ~MatrixSpecificationsProvider() = default;
-};
-
 /*! Manages storage for vectors.
  *
  * This interface provides storage management semantics for vectors, which
diff --git a/NumLib/ODESolver/EquationSystem.h b/NumLib/ODESolver/EquationSystem.h
index c3eb8bbe1daf6f8230b1a4d3a30104584f293302..d152cdaf7b80d152f2394cb696874bc14d6efb6a 100644
--- a/NumLib/ODESolver/EquationSystem.h
+++ b/NumLib/ODESolver/EquationSystem.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include "NumLib/DOF/MatrixProviderUser.h"
+#include "MathLib/LinAlg/MatrixSpecifications.h"
 
 namespace NumLib
 {
@@ -27,7 +27,7 @@ enum class IterationResult : char
 
 /*! Collection of basic methods every equation system must provide.
  */
-class EquationSystem : public NumLib::MatrixSpecificationsProvider
+class EquationSystem
 {
 public:
     /*! Check whether this is actually a linear equation system.
@@ -61,6 +61,11 @@ public:
         (void)x;  // by default do nothing
         return IterationResult::SUCCESS;
     }
+
+    virtual MathLib::MatrixSpecifications getMatrixSpecifications(
+        const int process_id) const = 0;
+
+    virtual ~EquationSystem() = default;
 };
 
 //! @}