diff --git a/exercises/exercise-grids/main.cc b/exercises/exercise-grids/main.cc
index adf41083d8b9e61a7d43eeb6d2297de820c2a096..ee8c938827550623d8fe1c361ffd5a6014437309 100644
--- a/exercises/exercise-grids/main.cc
+++ b/exercises/exercise-grids/main.cc
@@ -47,8 +47,8 @@
 #include <dumux/io/vtkoutputmodule.hh>
 #include <dumux/io/grid/gridmanager.hh>
 
-// The problem file, where setup-specific boundary and initial conditions are defined.
-#include "problem.hh"
+// The properties file, where the compile time options are defined.
+#include "properties.hh"
 
 ////////////////////////
 // the main function
diff --git a/exercises/exercise-grids/problem.hh b/exercises/exercise-grids/problem.hh
index 97b71b77cf824b6b3824fc15dff29418800ecc68..759d2fa8a315c18799d4ddd5bcd1de11a05d5e2d 100644
--- a/exercises/exercise-grids/problem.hh
+++ b/exercises/exercise-grids/problem.hh
@@ -19,67 +19,17 @@
 /*!
  * \file
  *
- * \brief The two-phase porousmediumflow problem for exercise-runtimeparams
+ * \brief The two-phase porousmediumflow problem for exercise-grids
  */
 
 #ifndef DUMUX_EXGRIDS_INJECTION_PROBLEM_2P_HH
 #define DUMUX_EXGRIDS_INJECTION_PROBLEM_2P_HH
 
-#include <dune/grid/yaspgrid.hh>
-
-#include <dumux/discretization/cctpfa.hh>
-#include <dumux/porousmediumflow/2p/model.hh>
 #include <dumux/porousmediumflow/problem.hh>
-#include <dumux/material/fluidsystems/h2on2.hh>
-
-#include "spatialparams.hh"
+#include <dumux/common/properties.hh>
 
 namespace Dumux {
 
-// forward declare problem
-template <class TypeTag>
-class InjectionProblem2P;
-
-namespace Properties {
-// define the TypeTag for this problem with a cell-centered two-point flux approximation spatial discretization.
-// Create new type tags
-namespace TTag {
-struct Injection2p { using InheritsFrom = std::tuple<TwoP>; };
-struct Injection2pCC { using InheritsFrom = std::tuple<Injection2p, CCTpfaModel>; };
-} // end namespace TTag
-
-// Set the grid type
-template<class TypeTag>
-struct Grid<TypeTag, TTag::Injection2p> { using type = Dune::YaspGrid<2>; };
-// TODO: dumux-course-task 2
-//Replace the above Grid Property definition with a more flexible grid (Use Dune::TensorProductCoordinates)
-
-// TODO: dumux-course-task 4
-// Replace the above Grid Property definition to read in a external structured grid via a .msh file (Use Dune::ALUGrid and Dune:cube)
-
-// TODO: dumux-course-task 5
-// Replace the above Grid Property definition to read in a external unstructured grid via a .msh file (Use Dune::ALUGrid and Dune::simplex)
-
-// Set the problem property
-template<class TypeTag>
-struct Problem<TypeTag, TTag::Injection2p> { using type = InjectionProblem2P<TypeTag>; };
-
-// Set the spatial parameters
-template<class TypeTag>
-struct SpatialParams<TypeTag, TTag::Injection2p>
-{
-private:
-    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
-    using Scalar = GetPropType<TypeTag, Properties::Scalar>;
-public:
-    using type = InjectionSpatialParams<FVGridGeometry, Scalar>;
-};
-
-// Set fluid configuration
-template<class TypeTag>
-struct FluidSystem<TypeTag, TTag::Injection2p> { using type = FluidSystems::H2ON2<GetPropType<TypeTag, Properties::Scalar>, FluidSystems::H2ON2DefaultPolicy</*fastButSimplifiedRelations=*/ true>>; };
-} // end namespace Properties
-
 /*!
  * \ingroup TwoPModel
  * \ingroup ImplicitTestProblems
diff --git a/exercises/exercise-grids/properties.hh b/exercises/exercise-grids/properties.hh
new file mode 100644
index 0000000000000000000000000000000000000000..81227d89e2c6c84eb2903033244ac2e2a88cf170
--- /dev/null
+++ b/exercises/exercise-grids/properties.hh
@@ -0,0 +1,80 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+ * \file
+ *
+ * \brief The properties file for exercise-grids
+ */
+
+#ifndef DUMUX_EX_GRIDS_PROPERTIES_HH
+#define DUMUX_EX_GRIDS_PROPERTIES_HH
+
+#include <dune/grid/yaspgrid.hh>
+
+#include <dumux/discretization/cctpfa.hh>
+#include <dumux/porousmediumflow/2p/model.hh>
+#include <dumux/material/fluidsystems/h2on2.hh>
+
+#include "spatialparams.hh"
+// The problem file, where setup-specific boundary and initial conditions are defined.
+#include "problem.hh"
+
+namespace Dumux::Properties {
+
+// define the TypeTag for this problem with a cell-centered two-point flux approximation spatial discretization.
+// Create new type tags
+namespace TTag {
+struct Injection2p { using InheritsFrom = std::tuple<TwoP>; };
+struct Injection2pCC { using InheritsFrom = std::tuple<Injection2p, CCTpfaModel>; };
+} // end namespace TTag
+
+// Set the grid type
+template<class TypeTag>
+struct Grid<TypeTag, TTag::Injection2p> { using type = Dune::YaspGrid<2>; };
+// TODO: dumux-course-task 2
+//Replace the above Grid Property definition with a more flexible grid (Use Dune::TensorProductCoordinates)
+
+// TODO: dumux-course-task 4
+// Replace the above Grid Property definition to read in a external structured grid via a .msh file (Use Dune::ALUGrid and Dune:cube)
+
+// TODO: dumux-course-task 5
+// Replace the above Grid Property definition to read in a external unstructured grid via a .msh file (Use Dune::ALUGrid and Dune::simplex)
+
+// Set the problem property
+template<class TypeTag>
+struct Problem<TypeTag, TTag::Injection2p> { using type = InjectionProblem2P<TypeTag>; };
+
+// Set the spatial parameters
+template<class TypeTag>
+struct SpatialParams<TypeTag, TTag::Injection2p>
+{
+private:
+    using FVGridGeometry = GetPropType<TypeTag, Properties::GridGeometry>;
+    using Scalar = GetPropType<TypeTag, Properties::Scalar>;
+public:
+    using type = InjectionSpatialParams<FVGridGeometry, Scalar>;
+};
+
+// Set fluid configuration
+template<class TypeTag>
+struct FluidSystem<TypeTag, TTag::Injection2p> { using type = FluidSystems::H2ON2<GetPropType<TypeTag, Properties::Scalar>, FluidSystems::H2ON2DefaultPolicy</*fastButSimplifiedRelations=*/ true>>; };
+
+} // end namespace Dumux::Properties
+
+#endif