diff --git a/dumux/discretization/box/fvgridgeometry.hh b/dumux/discretization/box/fvgridgeometry.hh
index c895c6b7a2f6477c7983a2619c0f6a435ed5cb4e..2e6cb065bf2857699e3f64e069376f5a5716775f 100644
--- a/dumux/discretization/box/fvgridgeometry.hh
+++ b/dumux/discretization/box/fvgridgeometry.hh
@@ -34,7 +34,7 @@
 #include <dumux/discretization/method.hh>
 #include <dumux/common/indextraits.hh>
 #include <dumux/common/defaultmappertraits.hh>
-#include <dumux/discretization/basefvgridgeometry.hh>
+#include <dumux/discretization/basegridgeometry.hh>
 #include <dumux/discretization/checkoverlapsize.hh>
 #include <dumux/discretization/box/boxgeometryhelper.hh>
 #include <dumux/discretization/box/fvelementgeometry.hh>
@@ -80,10 +80,10 @@ class BoxFVGridGeometry;
  */
 template<class Scalar, class GV, class Traits>
 class BoxFVGridGeometry<Scalar, GV, true, Traits>
-: public BaseFVGridGeometry<BoxFVGridGeometry<Scalar, GV, true, Traits>, GV, Traits>
+: public BaseGridGeometry<GV, Traits>
 {
     using ThisType = BoxFVGridGeometry<Scalar, GV, true, Traits>;
-    using ParentType = BaseFVGridGeometry<ThisType, GV, Traits>;
+    using ParentType = BaseGridGeometry<GV, Traits>;
     using GridIndexType = typename IndexTraits<GV>::GridIndex;
     using LocalIndexType = typename IndexTraits<GV>::LocalIndex;
 
@@ -353,10 +353,10 @@ private:
  */
 template<class Scalar, class GV, class Traits>
 class BoxFVGridGeometry<Scalar, GV, false, Traits>
-: public BaseFVGridGeometry<BoxFVGridGeometry<Scalar, GV, false, Traits>, GV, Traits>
+: public BaseGridGeometry<GV, Traits>
 {
     using ThisType = BoxFVGridGeometry<Scalar, GV, false, Traits>;
-    using ParentType = BaseFVGridGeometry<ThisType, GV, Traits>;
+    using ParentType = BaseGridGeometry<GV, Traits>;
     using GridIndexType = typename IndexTraits<GV>::GridIndex;
 
     static const int dim = GV::dimension;
diff --git a/dumux/discretization/cellcentered/mpfa/fvgridgeometry.hh b/dumux/discretization/cellcentered/mpfa/fvgridgeometry.hh
index fed3b607db43258bfaa04f927664ef09a22093ec..2d94880b23bc1ab01585fb2d916ad77eaae119a9 100644
--- a/dumux/discretization/cellcentered/mpfa/fvgridgeometry.hh
+++ b/dumux/discretization/cellcentered/mpfa/fvgridgeometry.hh
@@ -31,7 +31,7 @@
 #include <dumux/common/parameters.hh>
 #include <dumux/common/indextraits.hh>
 #include <dumux/discretization/method.hh>
-#include <dumux/discretization/basefvgridgeometry.hh>
+#include <dumux/discretization/basegridgeometry.hh>
 #include <dumux/discretization/checkoverlapsize.hh>
 
 namespace Dumux {
@@ -68,10 +68,10 @@ void checkOverlapSizeCCMpfa(const GridView& gridView)
  */
 template<class GV, class Traits>
 class CCMpfaFVGridGeometry<GV, Traits, true>
-: public BaseFVGridGeometry<CCMpfaFVGridGeometry<GV, Traits, true>, GV, Traits>
+: public BaseGridGeometry<GV, Traits>
 {
     using ThisType = CCMpfaFVGridGeometry<GV, Traits, true>;
-    using ParentType = BaseFVGridGeometry<ThisType, GV, Traits>;
+    using ParentType = BaseGridGeometry<GV, Traits>;
 
     static constexpr int dim = GV::dimension;
     static constexpr int dimWorld = GV::dimensionworld;
@@ -438,10 +438,10 @@ private:
  */
 template<class GV, class Traits>
 class CCMpfaFVGridGeometry<GV, Traits, false>
-: public BaseFVGridGeometry<CCMpfaFVGridGeometry<GV, Traits, false>, GV, Traits>
+: public BaseGridGeometry<GV, Traits>
 {
     using ThisType = CCMpfaFVGridGeometry<GV, Traits, false>;
-    using ParentType = BaseFVGridGeometry<ThisType, GV, Traits>;
+    using ParentType = BaseGridGeometry<GV, Traits>;
 
     static constexpr int dim = GV::dimension;
     static constexpr int dimWorld = GV::dimensionworld;
diff --git a/dumux/discretization/cellcentered/tpfa/fvgridgeometry.hh b/dumux/discretization/cellcentered/tpfa/fvgridgeometry.hh
index 3ba2aa91d7023d560cfc7469a483996b1374a181..6e91c8b4f13c1aea2401d082df4506cec2c737d5 100644
--- a/dumux/discretization/cellcentered/tpfa/fvgridgeometry.hh
+++ b/dumux/discretization/cellcentered/tpfa/fvgridgeometry.hh
@@ -32,7 +32,7 @@
 #include <dumux/common/defaultmappertraits.hh>
 
 #include <dumux/discretization/method.hh>
-#include <dumux/discretization/basefvgridgeometry.hh>
+#include <dumux/discretization/basegridgeometry.hh>
 #include <dumux/discretization/checkoverlapsize.hh>
 #include <dumux/discretization/cellcentered/subcontrolvolume.hh>
 #include <dumux/discretization/cellcentered/connectivitymap.hh>
@@ -86,10 +86,10 @@ class CCTpfaFVGridGeometry;
  */
 template<class GV, class Traits>
 class CCTpfaFVGridGeometry<GV, true, Traits>
-: public BaseFVGridGeometry<CCTpfaFVGridGeometry<GV, true, Traits>, GV, Traits>
+: public BaseGridGeometry<GV, Traits>
 {
     using ThisType = CCTpfaFVGridGeometry<GV, true, Traits>;
-    using ParentType = BaseFVGridGeometry<ThisType, GV, Traits>;
+    using ParentType = BaseGridGeometry<GV, Traits>;
     using ConnectivityMap = typename Traits::template ConnectivityMap<ThisType>;
     using GridIndexType = typename IndexTraits<GV>::GridIndex;
     using Element = typename GV::template Codim<0>::Entity;
@@ -362,10 +362,10 @@ private:
  */
 template<class GV, class Traits>
 class CCTpfaFVGridGeometry<GV, false, Traits>
-: public BaseFVGridGeometry<CCTpfaFVGridGeometry<GV, false, Traits>, GV, Traits>
+: public BaseGridGeometry<GV, Traits>
 {
     using ThisType = CCTpfaFVGridGeometry<GV, false, Traits>;
-    using ParentType = BaseFVGridGeometry<ThisType, GV, Traits>;
+    using ParentType = BaseGridGeometry<GV, Traits>;
     using ConnectivityMap = typename Traits::template ConnectivityMap<ThisType>;
 
     using GridIndexType = typename IndexTraits<GV>::GridIndex;
diff --git a/dumux/multidomain/facet/box/fvgridgeometry.hh b/dumux/multidomain/facet/box/fvgridgeometry.hh
index 1c5d3c9415e1915b0fb5f639ab5c124e1379628d..c8385ecabdf709a4a4ee5f763c36abfccf0a79ec 100644
--- a/dumux/multidomain/facet/box/fvgridgeometry.hh
+++ b/dumux/multidomain/facet/box/fvgridgeometry.hh
@@ -35,7 +35,7 @@
 
 #include <dumux/common/indextraits.hh>
 #include <dumux/discretization/method.hh>
-#include <dumux/discretization/basefvgridgeometry.hh>
+#include <dumux/discretization/basegridgeometry.hh>
 #include <dumux/discretization/box/boxgeometryhelper.hh>
 #include <dumux/discretization/box/subcontrolvolume.hh>
 
@@ -92,10 +92,10 @@ class BoxFacetCouplingFVGridGeometry;
  */
 template<class Scalar, class GV, class Traits>
 class BoxFacetCouplingFVGridGeometry<Scalar, GV, true, Traits>
-: public BaseFVGridGeometry<BoxFacetCouplingFVGridGeometry<Scalar, GV, true, Traits>, GV, Traits>
+: public BaseGridGeometry<GV, Traits>
 {
     using ThisType = BoxFacetCouplingFVGridGeometry<Scalar, GV, true, Traits>;
-    using ParentType = BaseFVGridGeometry<ThisType, GV, Traits>;
+    using ParentType = BaseGridGeometry<GV, Traits>;
     using GridIndexType = typename IndexTraits<GV>::GridIndex;
     using LocalIndexType = typename IndexTraits<GV>::LocalIndex;
 
@@ -350,10 +350,10 @@ private:
  */
 template<class Scalar, class GV, class Traits>
 class BoxFacetCouplingFVGridGeometry<Scalar, GV, false, Traits>
-: public BaseFVGridGeometry<BoxFacetCouplingFVGridGeometry<Scalar, GV, false, Traits>, GV, Traits>
+: public BaseGridGeometry<GV, Traits>
 {
     using ThisType = BoxFacetCouplingFVGridGeometry<Scalar, GV, false, Traits>;
-    using ParentType = BaseFVGridGeometry<ThisType, GV, Traits>;
+    using ParentType = BaseGridGeometry<GV, Traits>;
     using GridIndexType = typename IndexTraits<GV>::GridIndex;
     using LocalIndexType = typename IndexTraits<GV>::LocalIndex;
 
diff --git a/dumux/porousmediumflow/boxdfm/fvgridgeometry.hh b/dumux/porousmediumflow/boxdfm/fvgridgeometry.hh
index b37355146c9d0f1fc42d5ba3297ec1023fea61bc..cdebc859d2add9ada681f79e1a1abd5f7d35a2fb 100644
--- a/dumux/porousmediumflow/boxdfm/fvgridgeometry.hh
+++ b/dumux/porousmediumflow/boxdfm/fvgridgeometry.hh
@@ -38,7 +38,7 @@
 
 #include <dumux/discretization/method.hh>
 #include <dumux/common/defaultmappertraits.hh>
-#include <dumux/discretization/basefvgridgeometry.hh>
+#include <dumux/discretization/basegridgeometry.hh>
 #include <dumux/discretization/box/boxgeometryhelper.hh>
 
 #include "fvelementgeometry.hh"
@@ -96,10 +96,10 @@ class BoxDfmFVGridGeometry;
  */
 template<class Scalar, class GV, class Traits>
 class BoxDfmFVGridGeometry<Scalar, GV, true, Traits>
-: public BaseFVGridGeometry<BoxDfmFVGridGeometry<Scalar, GV, true, Traits>, GV, Traits>
+: public BaseGridGeometry<GV, Traits>
 {
     using ThisType = BoxDfmFVGridGeometry<Scalar, GV, true, Traits>;
-    using ParentType = BaseFVGridGeometry<ThisType, GV, Traits>;
+    using ParentType = BaseGridGeometry<GV, Traits>;
     using GridIndexType = typename GV::IndexSet::IndexType;
 
     using Element = typename GV::template Codim<0>::Entity;
@@ -400,10 +400,10 @@ private:
  */
 template<class Scalar, class GV, class Traits>
 class BoxDfmFVGridGeometry<Scalar, GV, false, Traits>
-: public BaseFVGridGeometry<BoxDfmFVGridGeometry<Scalar, GV, false, Traits>, GV, Traits>
+: public BaseGridGeometry<GV, Traits>
 {
     using ThisType = BoxDfmFVGridGeometry<Scalar, GV, false, Traits>;
-    using ParentType = BaseFVGridGeometry<ThisType, GV, Traits>;
+    using ParentType = BaseGridGeometry<GV, Traits>;
     using GridIndexType = typename GV::IndexSet::IndexType;
 
     static const int dim = GV::dimension;