diff --git a/dumux/io/loadsolution.hh b/dumux/io/loadsolution.hh
index d05edad0903a284e3d22e39e96fd95736286fe42..b5dfdbb590c9a2e2b05763e412419a4ca5fc1f60 100644
--- a/dumux/io/loadsolution.hh
+++ b/dumux/io/loadsolution.hh
@@ -140,7 +140,10 @@ template<class ModelTraits>
 std::string primaryVariableName(int pvIdx)
 {
     if (haveParam("LoadSolution.PrimaryVariableNames"))
-        DUNE_THROW(Dune::NotImplemented, "reading PrimaryVariableNames from input file");
+    {
+        static auto pvNames = getParam<std::vector<std::string>>("LoadSolution.PrimaryVariableNames");
+        return pvNames[pvIdx];
+    }
     else
         return ModelTraits::primaryVariableName(pvIdx);
 }
@@ -151,9 +154,9 @@ std::string primaryVariableName(int pvIdx)
  * \brief load a solution vector from file
  * \note Supports the following file extensions: *.vtu
  */
-template <class FVGridGeometry, class SolutionVector, class PvNamesFunc>
+template <class SolutionVector, class PvNamesFunc>
 void loadSolution(const std::string& fileName,
-                  const FVGridGeometry& fvGridGeometry,
+                  DiscretizationMethod discMethod,
                   PvNamesFunc&& pvNamesFunc,
                   SolutionVector& sol)
 {
@@ -161,7 +164,7 @@ void loadSolution(const std::string& fileName,
 
     if (extension == "vtu")
     {
-        const auto dataType = FVGridGeometry::discMethod == DiscretizationMethod::box
+        const auto dataType = discMethod == DiscretizationMethod::box
                               ? VTUReader::DataType::pointData : VTUReader::DataType::cellData;
         loadSolutionFromVtuFile(fileName, dataType, pvNamesFunc, sol);
     }
diff --git a/dumux/io/restart.hh b/dumux/io/restart.hh
index b78ceed772b61d0fc18d3c2af0317ded770e908b..58267a1b60e29d3e5ebd9a5cd9e911c43e6eb115 100644
--- a/dumux/io/restart.hh
+++ b/dumux/io/restart.hh
@@ -36,7 +36,6 @@
 #include <sstream>
 
 namespace Dumux {
-
 /*!
  * \ingroup InputOutput
  * \brief Load or save a state of a model to/from the harddisk.
@@ -288,6 +287,8 @@ public:
                    "Restart::restartFileList()");
     }
 
+
+private:
     std::string fileName_;
     std::ifstream inStream_;
     std::ofstream outStream_;
diff --git a/test/porousmediumflow/2p/implicit/incompressible/test_2p_fv.cc b/test/porousmediumflow/2p/implicit/incompressible/test_2p_fv.cc
index 634dbe3b821f511570a116d146617edec2d06c1d..6098c4a07e8a59791cb69922ee268f26f7175418 100644
--- a/test/porousmediumflow/2p/implicit/incompressible/test_2p_fv.cc
+++ b/test/porousmediumflow/2p/implicit/incompressible/test_2p_fv.cc
@@ -138,7 +138,7 @@ int main(int argc, char** argv) try
     {
         using ModelTraits = typename GET_PROP_TYPE(TypeTag, ModelTraits);
         auto fileName = getParam<std::string>("Restart.File");
-        loadSolution(fileName, *fvGridGeometry, primaryVariableName<ModelTraits>, x);
+        loadSolution(fileName, FVGridGeometry::discMethod, primaryVariableName<ModelTraits>, x);
     }
     else
         problem->applyInitialSolution(x);
diff --git a/test/porousmediumflow/2p2c/implicit/test_2p2c_fv.cc b/test/porousmediumflow/2p2c/implicit/test_2p2c_fv.cc
index f55102ebfd39a11cbbb74e96151e9323c4aef41a..3ef717512c4658b943d2521d791ebc64d7051c34 100644
--- a/test/porousmediumflow/2p2c/implicit/test_2p2c_fv.cc
+++ b/test/porousmediumflow/2p2c/implicit/test_2p2c_fv.cc
@@ -107,7 +107,7 @@ int main(int argc, char** argv) try
         using ModelTraits = typename GET_PROP_TYPE(TypeTag, ModelTraits);
         using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
         auto fileName = getParam<std::string>("Restart.File");
-        loadSolution(fileName, *fvGridGeometry, primaryVariableName<ModelTraits, FluidSystem>, x);
+        loadSolution(fileName, FVGridGeometry::discMethod, primaryVariableName<ModelTraits, FluidSystem>, x);
     }
     else
         problem->applyInitialSolution(x);