diff --git a/src/Makefile.am b/src/Makefile.am
index 74a9199700f826601283e2202722d61cdcc23b19..4fa02ef8b5e8d1d63aee750ca1220075a72c4b75 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -10,7 +10,7 @@ SOURCES = \
 	state/compute_state_dieterich_euler.cc \
 	state/compute_state_dieterich_common.cc \
 	state/compute_state_ruina.cc \
-	mysolver.cc \
+	solverfactory.cc \
 	one-body-sample.cc \
 	timestepping.cc \
 	vtk.cc
diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index d17cdcef68ae4d6b40af9af91ecaecd604479530..141eb3a2bc724f06673a99995cc8f8870e351dc6 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -76,7 +76,7 @@
 #include <dune/tectonic/globalnonlinearity.hh>
 
 #include "assemblers.hh"
-#include "mysolver.hh"
+#include "solverfactory.hh"
 #include "vtk.hh"
 
 #include "enums.hh"
@@ -354,7 +354,7 @@ int main(int argc, char *argv[]) {
     alpha_initial =
         std::log(parset.get<double>("boundary.friction.initial_state"));
 
-    using LinearFactoryType = MySolver<
+    using LinearFactoryType = SolverFactory<
         dims, BlockNonlinearTNNMGProblem<ConvexProblem<
                   ZeroNonlinearity<SmallVector, SmallMatrix>, MatrixType>>,
         GridType>;
@@ -442,7 +442,7 @@ int main(int argc, char *argv[]) {
 
     // Set up TNNMG solver
     auto const solverTolerance = parset.get<double>("solver.tolerance");
-    using NonlinearFactoryType = MySolver<
+    using NonlinearFactoryType = SolverFactory<
         dims,
         MyBlockProblem<ConvexProblem<
             Dune::GlobalNonlinearity<MatrixType, VectorType>, MatrixType>>,
diff --git a/src/mysolver.cc b/src/solverfactory.cc
similarity index 85%
rename from src/mysolver.cc
rename to src/solverfactory.cc
index 576e312e37249150685f97cddb256388b2413786..aa3ff9df8bd2755dba52104add2151370ecf5d69 100644
--- a/src/mysolver.cc
+++ b/src/solverfactory.cc
@@ -9,10 +9,10 @@
 #include <dune/solvers/common/numproc.hh> // Solver::FULL
 #include <dune/fufem/assemblers/transferoperatorassembler.hh>
 
-#include "mysolver.hh"
+#include "solverfactory.hh"
 
 template <int dim, class BlockProblemType, class GridType>
-MySolver<dim, BlockProblemType, GridType>::MySolver(
+SolverFactory<dim, BlockProblemType, GridType>::SolverFactory(
     Dune::ParameterTree const &parset, int refinements, double solver_tolerance,
     GridType const &grid, Dune::BitSetVector<dim> const &ignoreNodes)
     : baseEnergyNorm(linearBaseSolverStep),
@@ -43,7 +43,7 @@ MySolver<dim, BlockProblemType, GridType>::MySolver(
 }
 
 template <int dim, class BlockProblemType, class GridType>
-MySolver<dim, BlockProblemType, GridType>::~MySolver() {
+SolverFactory<dim, BlockProblemType, GridType>::~SolverFactory() {
   for (auto &x : transferOperators)
     delete x;
 
@@ -51,9 +51,9 @@ MySolver<dim, BlockProblemType, GridType>::~MySolver() {
 }
 
 template <int dim, class BlockProblemType, class GridType>
-typename MySolver<dim, BlockProblemType, GridType>::SolverType *
-MySolver<dim, BlockProblemType, GridType>::getSolver() {
+typename SolverFactory<dim, BlockProblemType, GridType>::SolverType *
+SolverFactory<dim, BlockProblemType, GridType>::getSolver() {
   return multigridStep;
 }
 
-#include "mysolver_tmpl.cc"
+#include "solverfactory_tmpl.cc"
diff --git a/src/mysolver.hh b/src/solverfactory.hh
similarity index 84%
rename from src/mysolver.hh
rename to src/solverfactory.hh
index 51f36bae611fef2c1a78bfc51d38a21672f898d9..431c054cff66701fc0f4092045eea5bc1761f0d7 100644
--- a/src/mysolver.hh
+++ b/src/solverfactory.hh
@@ -1,5 +1,5 @@
-#ifndef MYSOLVER_HH
-#define MYSOLVER_HH
+#ifndef SOLVER_FACTORY_HH
+#define SOLVER_FACTORY_HH
 
 #include <dune/common/bitsetvector.hh>
 #include <dune/common/parametertree.hh>
@@ -13,7 +13,7 @@
 #include <dune/tnnmg/iterationsteps/tnnmgstep.hh>
 
 template <int dim, class BlockProblemTypeTEMPLATE, class GridType>
-class MySolver {
+class SolverFactory {
 public:
   using BlockProblemType = BlockProblemTypeTEMPLATE;
   using ConvexProblemType = typename BlockProblemType::ConvexProblemType;
@@ -26,11 +26,11 @@ class MySolver {
                                                        NonlinearSmootherType>;
 
 public:
-  MySolver(Dune::ParameterTree const &parset, int refinements,
-           double solver_tolerance, GridType const &grid,
-           Dune::BitSetVector<dim> const &ignoreNodes);
+  SolverFactory(Dune::ParameterTree const &parset, int refinements,
+                double solver_tolerance, GridType const &grid,
+                Dune::BitSetVector<dim> const &ignoreNodes);
 
-  ~MySolver();
+  ~SolverFactory();
 
   SolverType *getSolver();
 
diff --git a/src/mysolver_tmpl.cc b/src/solverfactory_tmpl.cc
similarity index 95%
rename from src/mysolver_tmpl.cc
rename to src/solverfactory_tmpl.cc
index 26ef6cc9bfbfc26f9fc732ac616d4be5da269b45..4b30b8a9126d1e5a511b426bba83e2a4150b8c8d 100644
--- a/src/mysolver_tmpl.cc
+++ b/src/solverfactory_tmpl.cc
@@ -27,11 +27,11 @@ using MatrixType = Dune::BCRSMatrix<SmallMatrix>;
 
 using GridType = Dune::ALUGrid<DIM, DIM, Dune::simplex, Dune::nonconforming>;
 
-template class MySolver<
+template class SolverFactory<
     DIM, MyBlockProblem<ConvexProblem<
              Dune::GlobalNonlinearity<MatrixType, VectorType>, MatrixType>>,
     GridType>;
-template class MySolver<
+template class SolverFactory<
     DIM, BlockNonlinearTNNMGProblem<ConvexProblem<
              ZeroNonlinearity<SmallVector, SmallMatrix>, MatrixType>>,
     GridType>;