diff --git a/python/dune/gdt/discretefunction/discretefunction.cc b/python/dune/gdt/discretefunction/discretefunction.cc
index 270f512714f1e5d9ff155b60eab797f9dccccf8c..101171a0f1ac3463b859a4e555fa2d8bea8f40d4 100644
--- a/python/dune/gdt/discretefunction/discretefunction.cc
+++ b/python/dune/gdt/discretefunction/discretefunction.cc
@@ -11,11 +11,12 @@
 
 #include <dune/xt/grid/grids.hh>
 #include <python/dune/xt/la/traits.hh>
+#include <python/dune/xt/grid/grids.bindings.hh>
 
 #include "discretefunction.hh"
 
 
-template <class V, class VT, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class V, class VT, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct DiscreteFunction_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -57,12 +58,15 @@ PYBIND11_MODULE(_discretefunction_discretefunction, m)
   py::module::import("dune.gdt._spaces_interface");
   py::module::import("dune.gdt._discretefunction_dof_vector");
 
-  DiscreteFunction_for_all_grids<LA::CommonDenseVector<double>, LA::bindings::Common, XT::Grid::AvailableGridTypes>::
-      bind(m);
+  DiscreteFunction_for_all_grids<LA::CommonDenseVector<double>,
+                                 LA::bindings::Common,
+                                 XT::Grid::bindings::AvailableGridTypes>::bind(m);
 #if HAVE_EIGEN
-  DiscreteFunction_for_all_grids<LA::EigenDenseVector<double>, LA::bindings::Eigen, XT::Grid::AvailableGridTypes>::bind(
-      m);
+  DiscreteFunction_for_all_grids<LA::EigenDenseVector<double>,
+                                 LA::bindings::Eigen,
+                                 XT::Grid::bindings::AvailableGridTypes>::bind(m);
 #endif
-  DiscreteFunction_for_all_grids<LA::IstlDenseVector<double>, LA::bindings::Istl, XT::Grid::AvailableGridTypes>::bind(
-      m);
+  DiscreteFunction_for_all_grids<LA::IstlDenseVector<double>,
+                                 LA::bindings::Istl,
+                                 XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/discretefunction/dof-vector.cc b/python/dune/gdt/discretefunction/dof-vector.cc
index a89c8848c559fbb923cfc75011800c7f15905bb9..ce96138e314e7153037f1d055e0c7240097b1fd6 100644
--- a/python/dune/gdt/discretefunction/dof-vector.cc
+++ b/python/dune/gdt/discretefunction/dof-vector.cc
@@ -71,7 +71,7 @@ public:
 } // namespace Dune
 
 
-template <class V, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class V, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct DofVector_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
diff --git a/python/dune/gdt/functionals/interfaces.hh b/python/dune/gdt/functionals/interfaces.hh
index 6c5d3ef845b44efaa7dec035a06c0ade314aaa1e..f0a5529a704648bff68d71042a33d76df4176d42 100644
--- a/python/dune/gdt/functionals/interfaces.hh
+++ b/python/dune/gdt/functionals/interfaces.hh
@@ -89,7 +89,7 @@ public:
 } // namespace Dune
 
 
-template <class V, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class V, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct FunctionalInterface_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
diff --git a/python/dune/gdt/functionals/interfaces_common.cc b/python/dune/gdt/functionals/interfaces_common.cc
index b10030af9b541cc5b515e1eb8e25cec6af23b6d8..19ba0197025402be9ec15a8eba6bae69b44dcc2b 100644
--- a/python/dune/gdt/functionals/interfaces_common.cc
+++ b/python/dune/gdt/functionals/interfaces_common.cc
@@ -10,6 +10,7 @@
 #include "config.h"
 
 #include <dune/xt/grid/grids.hh>
+#include <python/dune/xt/grid/grids.bindings.hh>
 
 #include "interfaces.hh"
 
@@ -28,5 +29,5 @@ PYBIND11_MODULE(_functionals_interfaces_common, /*m*/)
 
   py::module::import("dune.gdt._spaces_interface");
 
-  //  FunctionalInterface_for_all_grids<LA::CommonDenseVector<double>, XT::Grid::AvailableGridTypes>::bind(m);
+  //  FunctionalInterface_for_all_grids<LA::CommonDenseVector<double>, XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/functionals/interfaces_eigen.cc b/python/dune/gdt/functionals/interfaces_eigen.cc
index 90ed84cf2b867b4d73c0c8db2ecbe5366c9c1f64..a619040ee3853a6be07b97d0b123284b740aa4d5 100644
--- a/python/dune/gdt/functionals/interfaces_eigen.cc
+++ b/python/dune/gdt/functionals/interfaces_eigen.cc
@@ -10,6 +10,7 @@
 #include "config.h"
 
 #include <dune/xt/grid/grids.hh>
+#include <python/dune/xt/grid/grids.bindings.hh>
 
 #include "interfaces.hh"
 
@@ -29,6 +30,6 @@ PYBIND11_MODULE(_functionals_interfaces_eigen, /*m*/)
   py::module::import("dune.gdt._spaces_interface");
 
   //#if HAVE_EIGEN
-  //  FunctionalInterface_for_all_grids<LA::EigenDenseVector<double>, XT::Grid::AvailableGridTypes>::bind(m);
+  //  FunctionalInterface_for_all_grids<LA::EigenDenseVector<double>, XT::Grid::bindings::AvailableGridTypes>::bind(m);
   //#endif
 }
diff --git a/python/dune/gdt/functionals/interfaces_istl.cc b/python/dune/gdt/functionals/interfaces_istl.cc
index 50a36f6f1850447a128b2dfb43ad336074bdc329..7fa397ee16b3e12f8e31a624fc6e840151435c35 100644
--- a/python/dune/gdt/functionals/interfaces_istl.cc
+++ b/python/dune/gdt/functionals/interfaces_istl.cc
@@ -10,6 +10,7 @@
 #include "config.h"
 
 #include <dune/xt/grid/grids.hh>
+#include <python/dune/xt/grid/grids.bindings.hh>
 
 #include "interfaces.hh"
 
@@ -28,5 +29,5 @@ PYBIND11_MODULE(_functionals_interfaces_istl, m)
 
   py::module::import("dune.gdt._spaces_interface");
 
-  FunctionalInterface_for_all_grids<LA::IstlDenseVector<double>, XT::Grid::AvailableGridTypes>::bind(m);
+  FunctionalInterface_for_all_grids<LA::IstlDenseVector<double>, XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/functionals/vector-based.cc b/python/dune/gdt/functionals/vector-based.cc
index 307b875798f18af1d6afa0026636260abdf290b3..0ff613989bcfecb50ba6a9e881c67dedd7b1aa27 100644
--- a/python/dune/gdt/functionals/vector-based.cc
+++ b/python/dune/gdt/functionals/vector-based.cc
@@ -206,7 +206,7 @@ public:
 } // namespace Dune
 
 
-template <class V, class VT, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class V, class VT, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct VectorBasedFunctional_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -254,12 +254,12 @@ PYBIND11_MODULE(_functionals_vector_based, m)
 
   //  VectorBasedFunctional_for_all_grids<LA::CommonDenseVector<double>,
   //                               LA::bindings::Common,
-  //                               XT::Grid::AvailableGridTypes>::bind(m, "common_dense");
+  //                               XT::Grid::bindings::AvailableGridTypes>::bind(m, "common_dense");
   //#if HAVE_EIGEN
   //  VectorBasedFunctional_for_all_grids<LA::EigenDenseVector<double>,
   //                               LA::bindings::Eigen,
-  //                               XT::Grid::AvailableGridTypes>::bind(m, "eigen_dense");
+  //                               XT::Grid::bindings::AvailableGridTypes>::bind(m, "eigen_dense");
   //#endif
-  VectorBasedFunctional_for_all_grids<LA::IstlDenseVector<double>, LA::bindings::Istl, XT::Grid::AvailableGridTypes>::
+  VectorBasedFunctional_for_all_grids<LA::IstlDenseVector<double>, LA::bindings::Istl, XT::Grid::bindings::AvailableGridTypes>::
       bind(m, "istl");
 }
diff --git a/python/dune/gdt/interpolations/boundary.cc b/python/dune/gdt/interpolations/boundary.cc
index c530406906fcb3d0e2c23dbf38caaece15bf8c10..85fd8230db86a74a06bde36364da5f5f1b2e850c 100644
--- a/python/dune/gdt/interpolations/boundary.cc
+++ b/python/dune/gdt/interpolations/boundary.cc
@@ -103,7 +103,7 @@ public:
 } // namespace Dune
 
 
-template <class V, class VT, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class V, class VT, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct boundary_interpolation_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -149,12 +149,12 @@ PYBIND11_MODULE(_interpolations_boundary, m)
   // bindings for all but dune-istl disabled for the moment
   boundary_interpolation_for_all_grids<LA::CommonDenseVector<double>,
                                       LA::bindings::Common,
-                                      XT::Grid::AvailableGridTypes>::bind(m);
+                                      XT::Grid::bindings::AvailableGridTypes>::bind(m);
 #  if HAVE_EIGEN
-  boundary_interpolation_for_all_grids<LA::EigenDenseVector<double>, LA::bindings::Eigen, XT::Grid::AvailableGridTypes>::
+  boundary_interpolation_for_all_grids<LA::EigenDenseVector<double>, LA::bindings::Eigen, XT::Grid::bindings::AvailableGridTypes>::
       bind(m);
 #  endif
 #endif // 0
-  boundary_interpolation_for_all_grids<LA::IstlDenseVector<double>, LA::bindings::Istl, XT::Grid::AvailableGridTypes>::
+  boundary_interpolation_for_all_grids<LA::IstlDenseVector<double>, LA::bindings::Istl, XT::Grid::bindings::AvailableGridTypes>::
       bind(m);
 }
diff --git a/python/dune/gdt/interpolations/default.cc b/python/dune/gdt/interpolations/default.cc
index c84ffe0eac593afda3e78ad4f7a6a5ffe5b1ff1a..ef48dbab3470ac70f84c4e26b6f67a551d48207e 100644
--- a/python/dune/gdt/interpolations/default.cc
+++ b/python/dune/gdt/interpolations/default.cc
@@ -85,7 +85,7 @@ public:
 } // namespace Dune
 
 
-template <class V, class VT, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class V, class VT, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct default_interpolation_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -131,12 +131,12 @@ PYBIND11_MODULE(_interpolations_default, m)
   // bindings for all but dune-istl disabled for the moment
   default_interpolation_for_all_grids<LA::CommonDenseVector<double>,
                                       LA::bindings::Common,
-                                      XT::Grid::AvailableGridTypes>::bind(m);
+                                      XT::Grid::bindings::AvailableGridTypes>::bind(m);
 #  if HAVE_EIGEN
-  default_interpolation_for_all_grids<LA::EigenDenseVector<double>, LA::bindings::Eigen, XT::Grid::AvailableGridTypes>::
+  default_interpolation_for_all_grids<LA::EigenDenseVector<double>, LA::bindings::Eigen, XT::Grid::bindings::AvailableGridTypes>::
       bind(m);
 #  endif
 #endif // 0
-  default_interpolation_for_all_grids<LA::IstlDenseVector<double>, LA::bindings::Istl, XT::Grid::AvailableGridTypes>::
+  default_interpolation_for_all_grids<LA::IstlDenseVector<double>, LA::bindings::Istl, XT::Grid::bindings::AvailableGridTypes>::
       bind(m);
 }
diff --git a/python/dune/gdt/interpolations/oswald.cc b/python/dune/gdt/interpolations/oswald.cc
index c0879f880ed218270b6232c8f18f33b96091eaa4..bcdb2cc8ab85a3de804b5f75347f93859c354485 100644
--- a/python/dune/gdt/interpolations/oswald.cc
+++ b/python/dune/gdt/interpolations/oswald.cc
@@ -98,7 +98,7 @@ public:
 } // namespace Dune
 
 
-template <class V, class VT, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class V, class VT, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct oswald_interpolation_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -141,12 +141,12 @@ PYBIND11_MODULE(_interpolations_oswald, m)
   // bindings for all but dune-istl disabled for the moment
   oswald_interpolation_for_all_grids<LA::CommonDenseVector<double>,
                                       LA::bindings::Common,
-                                      XT::Grid::AvailableGridTypes>::bind(m);
+                                      XT::Grid::bindings::AvailableGridTypes>::bind(m);
 #  if HAVE_EIGEN
-  oswald_interpolation_for_all_grids<LA::EigenDenseVector<double>, LA::bindings::Eigen, XT::Grid::AvailableGridTypes>::
+  oswald_interpolation_for_all_grids<LA::EigenDenseVector<double>, LA::bindings::Eigen, XT::Grid::bindings::AvailableGridTypes>::
       bind(m);
 #  endif
 #endif // 0
-  oswald_interpolation_for_all_grids<LA::IstlDenseVector<double>, LA::bindings::Istl, XT::Grid::AvailableGridTypes>::
+  oswald_interpolation_for_all_grids<LA::IstlDenseVector<double>, LA::bindings::Istl, XT::Grid::bindings::AvailableGridTypes>::
       bind(m);
 }
diff --git a/python/dune/gdt/local/bilinear-forms/coupling_intersection_integrals.cc b/python/dune/gdt/local/bilinear-forms/coupling_intersection_integrals.cc
index 41746b218b823ceb9b362543e2ac9c67636a03a2..166326982161f0c5e39b67795eda377a992f4b22 100644
--- a/python/dune/gdt/local/bilinear-forms/coupling_intersection_integrals.cc
+++ b/python/dune/gdt/local/bilinear-forms/coupling_intersection_integrals.cc
@@ -103,7 +103,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalCouplingIntersectionIntegralBilinearForm_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -153,5 +153,5 @@ PYBIND11_MODULE(_local_bilinear_forms_coupling_intersection_integrals, m)
   py::module::import("dune.xt.functions");
   py::module::import("dune.gdt._local_bilinear_forms_coupling_intersection_interface");
 
-  LocalCouplingIntersectionIntegralBilinearForm_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalCouplingIntersectionIntegralBilinearForm_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/bilinear-forms/coupling_intersection_interface.cc b/python/dune/gdt/local/bilinear-forms/coupling_intersection_interface.cc
index aaab0b6c6c4e37cd6a3783d4932038b7965abfa6..a6b5763dd0a87bb66846c08ae5f0953f91a6baba 100644
--- a/python/dune/gdt/local/bilinear-forms/coupling_intersection_interface.cc
+++ b/python/dune/gdt/local/bilinear-forms/coupling_intersection_interface.cc
@@ -98,7 +98,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalCouplingIntersectionBilinearFormInterface_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -147,5 +147,5 @@ PYBIND11_MODULE(_local_bilinear_forms_coupling_intersection_interface, m)
   py::module::import("dune.xt.grid");
   py::module::import("dune.xt.functions");
 
-  LocalCouplingIntersectionBilinearFormInterface_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalCouplingIntersectionBilinearFormInterface_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/bilinear-forms/element_integrals.cc b/python/dune/gdt/local/bilinear-forms/element_integrals.cc
index cc8cd8bc03734911052615c6e5bee4b73869dde0..f49c9e53e4cfbd005dba89348c134e6c6c410cb5 100644
--- a/python/dune/gdt/local/bilinear-forms/element_integrals.cc
+++ b/python/dune/gdt/local/bilinear-forms/element_integrals.cc
@@ -107,7 +107,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalElementIntegralBilinearForm_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -158,5 +158,5 @@ PYBIND11_MODULE(_local_bilinear_forms_element_integrals, m)
   py::module::import("dune.gdt._local_bilinear_forms_element_interface");
   py::module::import("dune.gdt._local_integrands_binary_element_interface");
 
-  LocalElementIntegralBilinearForm_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalElementIntegralBilinearForm_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/bilinear-forms/element_interface.cc b/python/dune/gdt/local/bilinear-forms/element_interface.cc
index 49297a67ba9185943c85fce77b141e3c914dddba..f670d960c0f1cb6101814acde18c357d5d7d750b 100644
--- a/python/dune/gdt/local/bilinear-forms/element_interface.cc
+++ b/python/dune/gdt/local/bilinear-forms/element_interface.cc
@@ -98,7 +98,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalElementBilinearFormInterface_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -147,5 +147,5 @@ PYBIND11_MODULE(_local_bilinear_forms_element_interface, m)
   py::module::import("dune.xt.grid");
   py::module::import("dune.xt.functions");
 
-  LocalElementBilinearFormInterface_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalElementBilinearFormInterface_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/bilinear-forms/intersection_integrals.cc b/python/dune/gdt/local/bilinear-forms/intersection_integrals.cc
index 0d8f624543f85b5700b45dc08d93c3efd1a6e9e9..8f27b6716015f309018ca0ef46c008e5cfe2de96 100644
--- a/python/dune/gdt/local/bilinear-forms/intersection_integrals.cc
+++ b/python/dune/gdt/local/bilinear-forms/intersection_integrals.cc
@@ -103,7 +103,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalIntersectionIntegralBilinearForm_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -153,5 +153,5 @@ PYBIND11_MODULE(_local_bilinear_forms_intersection_integrals, m)
   py::module::import("dune.xt.functions");
   py::module::import("dune.gdt._local_bilinear_forms_intersection_interface");
 
-  LocalIntersectionIntegralBilinearForm_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalIntersectionIntegralBilinearForm_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/bilinear-forms/intersection_interface.cc b/python/dune/gdt/local/bilinear-forms/intersection_interface.cc
index 147e5cc83ce5d854fb9fe436601d1d14fd3cc219..96edef854134698f259090ba4f3ab57ff5e0a5f7 100644
--- a/python/dune/gdt/local/bilinear-forms/intersection_interface.cc
+++ b/python/dune/gdt/local/bilinear-forms/intersection_interface.cc
@@ -98,7 +98,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalIntersectionBilinearFormInterface_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -147,5 +147,5 @@ PYBIND11_MODULE(_local_bilinear_forms_intersection_interface, m)
   py::module::import("dune.xt.grid");
   py::module::import("dune.xt.functions");
 
-  LocalIntersectionBilinearFormInterface_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalIntersectionBilinearFormInterface_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/bilinear-forms/restricted_coupling_intersection_integrals.cc b/python/dune/gdt/local/bilinear-forms/restricted_coupling_intersection_integrals.cc
index 68c9f2cd63d3cc2c6071b7a1f37a9e3284778c92..59d45b6b940c129372c0b2661c1fc2d4be8b150f 100644
--- a/python/dune/gdt/local/bilinear-forms/restricted_coupling_intersection_integrals.cc
+++ b/python/dune/gdt/local/bilinear-forms/restricted_coupling_intersection_integrals.cc
@@ -106,7 +106,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalCouplingIntersectionRestrictedIntegralBilinearForm_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -157,5 +157,5 @@ PYBIND11_MODULE(_local_bilinear_forms_restricted_coupling_intersection_integrals
   py::module::import("dune.xt.functions");
   py::module::import("dune.gdt._local_bilinear_forms_coupling_intersection_interface");
 
-  LocalCouplingIntersectionRestrictedIntegralBilinearForm_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalCouplingIntersectionRestrictedIntegralBilinearForm_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/bilinear-forms/restricted_intersection_integrals.cc b/python/dune/gdt/local/bilinear-forms/restricted_intersection_integrals.cc
index 4670511ad2c68c29426a15c4c8da84d65dc25625..c3986f7d7ab8bd702b3d8e2d8d9941f45ac959e0 100644
--- a/python/dune/gdt/local/bilinear-forms/restricted_intersection_integrals.cc
+++ b/python/dune/gdt/local/bilinear-forms/restricted_intersection_integrals.cc
@@ -106,7 +106,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalIntersectionRestrictedIntegralBilinearForm_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -156,5 +156,5 @@ PYBIND11_MODULE(_local_bilinear_forms_restricted_intersection_integrals, m)
   py::module::import("dune.xt.functions");
   py::module::import("dune.gdt._local_bilinear_forms_intersection_interface");
 
-  LocalIntersectionRestrictedIntegralBilinearForm_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalIntersectionRestrictedIntegralBilinearForm_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/functionals/element_integrals.cc b/python/dune/gdt/local/functionals/element_integrals.cc
index cbda5141a7c6a9b627a76db5fd901b1312c003d2..cdd7f0a55f57861f5095bfbb770bd1179f845cee 100644
--- a/python/dune/gdt/local/functionals/element_integrals.cc
+++ b/python/dune/gdt/local/functionals/element_integrals.cc
@@ -85,7 +85,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalElementIntegralFunctional_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -130,5 +130,5 @@ PYBIND11_MODULE(_local_functionals_element_integrals, m)
 
   py::module::import("dune.gdt._local_functionals_element_interface");
 
-  LocalElementIntegralFunctional_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalElementIntegralFunctional_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/functionals/element_interface.cc b/python/dune/gdt/local/functionals/element_interface.cc
index 7247d36dc41f7f3c4392238158a384bc04df2c2e..c2179487e8aec537363bdd5e87a6a42b1c127881 100644
--- a/python/dune/gdt/local/functionals/element_interface.cc
+++ b/python/dune/gdt/local/functionals/element_interface.cc
@@ -80,7 +80,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalElementFunctionalInterface_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -123,5 +123,5 @@ PYBIND11_MODULE(_local_functionals_element_interface, m)
   py::module::import("dune.xt.grid");
   py::module::import("dune.xt.functions");
 
-  LocalElementFunctionalInterface_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalElementFunctionalInterface_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/functionals/intersection_integrals.cc b/python/dune/gdt/local/functionals/intersection_integrals.cc
index e30be1bc8ba63d4909733a1e3e781f1fc82f6270..d4adeb984f3c7385a9bf099fc09f9875f454315b 100644
--- a/python/dune/gdt/local/functionals/intersection_integrals.cc
+++ b/python/dune/gdt/local/functionals/intersection_integrals.cc
@@ -85,7 +85,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalIntersectionIntegralFunctional_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -130,5 +130,5 @@ PYBIND11_MODULE(_local_functionals_intersection_integrals, m)
 
   py::module::import("dune.gdt._local_functionals_intersection_interface");
 
-  LocalIntersectionIntegralFunctional_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalIntersectionIntegralFunctional_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/functionals/intersection_interface.cc b/python/dune/gdt/local/functionals/intersection_interface.cc
index e77305cc6d05c4fed481dd90feda00321cb7f34f..9841f3359f44e68365fffbc9801b0c913d9a3917 100644
--- a/python/dune/gdt/local/functionals/intersection_interface.cc
+++ b/python/dune/gdt/local/functionals/intersection_interface.cc
@@ -80,7 +80,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalIntersectionFunctionalInterface_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -124,5 +124,5 @@ PYBIND11_MODULE(_local_functionals_intersection_interface, m)
   py::module::import("dune.xt.grid");
   py::module::import("dune.xt.functions");
 
-  LocalIntersectionFunctionalInterface_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalIntersectionFunctionalInterface_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/functionals/restricted_intersection_integrals.cc b/python/dune/gdt/local/functionals/restricted_intersection_integrals.cc
index 60198abc99e17edcee85b347651810f796f25a5d..54cbdc4ef04498d0e93cf5aaf963aa5296aefa26 100644
--- a/python/dune/gdt/local/functionals/restricted_intersection_integrals.cc
+++ b/python/dune/gdt/local/functionals/restricted_intersection_integrals.cc
@@ -88,7 +88,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalIntersectionRestrictedIntegralFunctional_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -134,5 +134,5 @@ PYBIND11_MODULE(_local_functionals_restricted_intersection_integrals, m)
 
   py::module::import("dune.gdt._local_functionals_intersection_interface");
 
-  LocalIntersectionRestrictedIntegralFunctional_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalIntersectionRestrictedIntegralFunctional_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/binary_element_interface.cc b/python/dune/gdt/local/integrands/binary_element_interface.cc
index 6c7fc78e2c0fa98369830a277fc57fbdb0058a61..7b59796274af5d8ba63ba378fa846cd4d5ff42b8 100644
--- a/python/dune/gdt/local/integrands/binary_element_interface.cc
+++ b/python/dune/gdt/local/integrands/binary_element_interface.cc
@@ -25,7 +25,7 @@
 #include "binary_element_interface.hh"
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalBinaryElementIntegrandInterface_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -110,5 +110,5 @@ PYBIND11_MODULE(_local_integrands_binary_element_interface, m)
 
   py::module::import("dune.gdt._local_integrands_unary_element_interface");
 
-  LocalBinaryElementIntegrandInterface_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalBinaryElementIntegrandInterface_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/binary_intersection_interface.cc b/python/dune/gdt/local/integrands/binary_intersection_interface.cc
index 14244038ab320c232944ad8de2b557912f53848e..5f72df21dce1c16d6358e013284fd34ea8b4ed98 100644
--- a/python/dune/gdt/local/integrands/binary_intersection_interface.cc
+++ b/python/dune/gdt/local/integrands/binary_intersection_interface.cc
@@ -25,7 +25,7 @@
 #include "binary_intersection_interface.hh"
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalBinaryIntersectionIntegrandInterface_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -109,5 +109,5 @@ PYBIND11_MODULE(_local_integrands_binary_intersection_interface, m)
 
   py::module::import("dune.gdt._local_integrands_unary_intersection_interface");
 
-  LocalBinaryIntersectionIntegrandInterface_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalBinaryIntersectionIntegrandInterface_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/element_product.cc b/python/dune/gdt/local/integrands/element_product.cc
index 375ccb57160111c0e84f5c6d36e372ea3ede1f33..7fa6ddbddda9e3d0ed864d60365e2d6237052200 100644
--- a/python/dune/gdt/local/integrands/element_product.cc
+++ b/python/dune/gdt/local/integrands/element_product.cc
@@ -80,7 +80,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalElementProductIntegrand_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -122,5 +122,5 @@ PYBIND11_MODULE(_local_integrands_element_product, m)
 
   py::module::import("dune.gdt._local_integrands_binary_element_interface");
 
-  LocalElementProductIntegrand_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalElementProductIntegrand_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/intersection_product.cc b/python/dune/gdt/local/integrands/intersection_product.cc
index b50c990fa90d46808a70e015f7de0dfe64e516cc..833a03cbb2bff27d336a3231abf9084d4b2c43fc 100644
--- a/python/dune/gdt/local/integrands/intersection_product.cc
+++ b/python/dune/gdt/local/integrands/intersection_product.cc
@@ -87,7 +87,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalIntersectionProductIntegrand_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -129,5 +129,5 @@ PYBIND11_MODULE(_local_integrands_intersection_product, m)
 
   py::module::import("dune.gdt._local_integrands_binary_intersection_interface");
 
-  LocalIntersectionProductIntegrand_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalIntersectionProductIntegrand_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/ipdg_boundary_penalty.cc b/python/dune/gdt/local/integrands/ipdg_boundary_penalty.cc
index c1a07ec1d0b1c2551aa43b6943f0afcb26bef0c1..0713e716ba636085a0c08ed476cc4e70ac836332 100644
--- a/python/dune/gdt/local/integrands/ipdg_boundary_penalty.cc
+++ b/python/dune/gdt/local/integrands/ipdg_boundary_penalty.cc
@@ -95,7 +95,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalIPDGBoundaryPenaltyIntegrand_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -131,5 +131,5 @@ PYBIND11_MODULE(_local_integrands_ipdg_boundary_penalty, m)
   py::module::import("dune.xt.functions");
   py::module::import("dune.gdt._local_integrands_binary_intersection_interface");
 
-  LocalIPDGBoundaryPenaltyIntegrand_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalIPDGBoundaryPenaltyIntegrand_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/ipdg_inner_penalty.cc b/python/dune/gdt/local/integrands/ipdg_inner_penalty.cc
index 3dcfe9f2edd682674019b106a978b6ac81a79111..d5c9fd7757e4c6c8eff16fe71c7f89db62a57c69 100644
--- a/python/dune/gdt/local/integrands/ipdg_inner_penalty.cc
+++ b/python/dune/gdt/local/integrands/ipdg_inner_penalty.cc
@@ -95,7 +95,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalIPDGInnerPenaltyIntegrand_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -131,5 +131,5 @@ PYBIND11_MODULE(_local_integrands_ipdg_inner_penalty, m)
   py::module::import("dune.xt.functions");
   py::module::import("dune.gdt._local_integrands_quaternary_intersection_interface");
 
-  LocalIPDGInnerPenaltyIntegrand_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalIPDGInnerPenaltyIntegrand_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/jump_boundary.cc b/python/dune/gdt/local/integrands/jump_boundary.cc
index 804c4b3ac3d83ddb2ca83dea804cd81b53e59816..1d109926e3974321118c80187165c71ea5441d18 100644
--- a/python/dune/gdt/local/integrands/jump_boundary.cc
+++ b/python/dune/gdt/local/integrands/jump_boundary.cc
@@ -109,7 +109,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalBoundaryJumpIntegrand_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -149,5 +149,5 @@ PYBIND11_MODULE(_local_integrands_jump_boundary, m)
   py::module::import("dune.xt.functions");
   py::module::import("dune.gdt._local_integrands_binary_intersection_interface");
 
-  LocalBoundaryJumpIntegrand_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalBoundaryJumpIntegrand_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/jump_inner.cc b/python/dune/gdt/local/integrands/jump_inner.cc
index fd4f32053ccc33a489cca7735d3ee9a68ed402ae..5160e22b95469c06591e1592ab008422f0c1eabb 100644
--- a/python/dune/gdt/local/integrands/jump_inner.cc
+++ b/python/dune/gdt/local/integrands/jump_inner.cc
@@ -69,7 +69,7 @@ public:
     if constexpr (r == 1)
       m.def(
           FactoryName.c_str(),
-          [](const GP& grid,
+          [](const GP& /*grid*/,
              const XT::Grid::bindings::Dimension<r>&,
              const bool weighted_by_intersection_diameter,
              const std::string& logging_prefix) {
@@ -109,7 +109,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalInnerJumpIntegrand_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -149,5 +149,5 @@ PYBIND11_MODULE(_local_integrands_jump_inner, m)
   py::module::import("dune.xt.functions");
   py::module::import("dune.gdt._local_integrands_quaternary_intersection_interface");
 
-  LocalInnerJumpIntegrand_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalInnerJumpIntegrand_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/laplace.cc b/python/dune/gdt/local/integrands/laplace.cc
index 8ae5f01188e52bea29627aa2f5cc2830386aa51b..29c0505276751cc197226561cf66bdad46cc9741 100644
--- a/python/dune/gdt/local/integrands/laplace.cc
+++ b/python/dune/gdt/local/integrands/laplace.cc
@@ -94,7 +94,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalLaplaceIntegrand_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -135,5 +135,5 @@ PYBIND11_MODULE(_local_integrands_laplace, m)
   py::module::import("dune.xt.functions");
   py::module::import("dune.gdt._local_integrands_binary_element_interface");
 
-  LocalLaplaceIntegrand_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalLaplaceIntegrand_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/laplace_ipdg_dirichlet_coupling.cc b/python/dune/gdt/local/integrands/laplace_ipdg_dirichlet_coupling.cc
index 8a3dfcc9033a8dcc9613669c8f53395345ccc3dc..3bef8a567b2ea37974406f47ada8c5ace87f957e 100644
--- a/python/dune/gdt/local/integrands/laplace_ipdg_dirichlet_coupling.cc
+++ b/python/dune/gdt/local/integrands/laplace_ipdg_dirichlet_coupling.cc
@@ -114,7 +114,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalLaplaceIPDGDirichletCouplingIntegrand_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -150,5 +150,5 @@ PYBIND11_MODULE(_local_integrands_laplace_ipdg_dirichlet_coupling, m)
   py::module::import("dune.gdt._local_integrands_unary_intersection_interface");
   py::module::import("dune.gdt._local_integrands_binary_intersection_interface");
 
-  LocalLaplaceIPDGDirichletCouplingIntegrand_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalLaplaceIPDGDirichletCouplingIntegrand_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/laplace_ipdg_inner_coupling.cc b/python/dune/gdt/local/integrands/laplace_ipdg_inner_coupling.cc
index 1273210f1904665eb41793bca5d17e7a1f3955cd..7a09acac0e770bdcaf53d687b43ca82342ec23c0 100644
--- a/python/dune/gdt/local/integrands/laplace_ipdg_inner_coupling.cc
+++ b/python/dune/gdt/local/integrands/laplace_ipdg_inner_coupling.cc
@@ -95,7 +95,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalLaplaceIPDGInnerCouplingIntegrand_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -131,5 +131,5 @@ PYBIND11_MODULE(_local_integrands_laplace_ipdg_inner_coupling, m)
   py::module::import("dune.xt.functions");
   py::module::import("dune.gdt._local_integrands_quaternary_intersection_interface");
 
-  LocalLaplaceIPDGInnerCouplingIntegrand_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalLaplaceIPDGInnerCouplingIntegrand_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/linear_advection.cc b/python/dune/gdt/local/integrands/linear_advection.cc
index 468ec378815952f4f8d8e26847209a5f7e6ea02e..65aa816849283c425c88012a5353243da3ebe5eb 100644
--- a/python/dune/gdt/local/integrands/linear_advection.cc
+++ b/python/dune/gdt/local/integrands/linear_advection.cc
@@ -81,7 +81,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalLinearAdvectionIntegrand_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -119,5 +119,5 @@ PYBIND11_MODULE(_local_integrands_linear_advection, m)
   py::module::import("dune.xt.functions");
   py::module::import("dune.gdt._local_integrands_binary_element_interface");
 
-  LocalLinearAdvectionIntegrand_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalLinearAdvectionIntegrand_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/linear_advection_upwind_dirichlet_coupling.cc b/python/dune/gdt/local/integrands/linear_advection_upwind_dirichlet_coupling.cc
index d1b086259eb17bdb69c6d4d6af3545e1ddeb1404..edd9d7a788c9e99b4b630e38ab686d109bda2279 100644
--- a/python/dune/gdt/local/integrands/linear_advection_upwind_dirichlet_coupling.cc
+++ b/python/dune/gdt/local/integrands/linear_advection_upwind_dirichlet_coupling.cc
@@ -101,7 +101,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalLinearAdvectionUpwindDirichletCouplingIntegrand_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -138,5 +138,5 @@ PYBIND11_MODULE(_local_integrands_linear_advection_upwind_dirichlet_coupling, m)
   py::module::import("dune.gdt._local_integrands_unary_intersection_interface");
   py::module::import("dune.gdt._local_integrands_binary_intersection_interface");
 
-  LocalLinearAdvectionUpwindDirichletCouplingIntegrand_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalLinearAdvectionUpwindDirichletCouplingIntegrand_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/linear_advection_upwind_inner_coupling.cc b/python/dune/gdt/local/integrands/linear_advection_upwind_inner_coupling.cc
index 670121c1f37381b001462fb6dccf9372db4d2a26..10ad0eaa7b5963e65adfea53b119e203fc7fc379 100644
--- a/python/dune/gdt/local/integrands/linear_advection_upwind_inner_coupling.cc
+++ b/python/dune/gdt/local/integrands/linear_advection_upwind_inner_coupling.cc
@@ -84,7 +84,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalLaplaceIPDGInnerCouplingIntegrand_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -122,5 +122,5 @@ PYBIND11_MODULE(_local_integrands_linear_advection_upwind_inner_coupling, m)
   py::module::import("dune.xt.functions");
   py::module::import("dune.gdt._local_integrands_quaternary_intersection_interface");
 
-  LocalLaplaceIPDGInnerCouplingIntegrand_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalLaplaceIPDGInnerCouplingIntegrand_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/quaternary_intersection_interface.cc b/python/dune/gdt/local/integrands/quaternary_intersection_interface.cc
index a959d5fa6213a70923ed9fa766be52d4a4031cc1..b4a7dd18b73c834cf30b36867e0eaed03e4e0d1f 100644
--- a/python/dune/gdt/local/integrands/quaternary_intersection_interface.cc
+++ b/python/dune/gdt/local/integrands/quaternary_intersection_interface.cc
@@ -25,7 +25,7 @@
 #include "quaternary_intersection_interface.hh"
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalQuaternaryIntersectionIntegrandInterface_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -91,5 +91,5 @@ PYBIND11_MODULE(_local_integrands_quaternary_intersection_interface, m)
   py::module::import("dune.xt.grid");
   py::module::import("dune.xt.functions");
 
-  LocalQuaternaryIntersectionIntegrandInterface_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalQuaternaryIntersectionIntegrandInterface_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/unary_element_interface.cc b/python/dune/gdt/local/integrands/unary_element_interface.cc
index 4e4dec5f0c6862907a5c831c371849b008a6bbd7..177e92d376e7b714b040fa30766edfcc84aaa88e 100644
--- a/python/dune/gdt/local/integrands/unary_element_interface.cc
+++ b/python/dune/gdt/local/integrands/unary_element_interface.cc
@@ -25,7 +25,7 @@
 #include "unary_element_interface.hh"
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalUnaryElementIntegrandInterface_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -78,5 +78,5 @@ PYBIND11_MODULE(_local_integrands_unary_element_interface, m)
   py::module::import("dune.xt.grid");
   py::module::import("dune.xt.functions");
 
-  LocalUnaryElementIntegrandInterface_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalUnaryElementIntegrandInterface_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/integrands/unary_intersection_interface.cc b/python/dune/gdt/local/integrands/unary_intersection_interface.cc
index d040e5cc28d89d08c5f0ae69694d1f020cf871ce..1fccb24cad783889572dccf79440886c910ab9d5 100644
--- a/python/dune/gdt/local/integrands/unary_intersection_interface.cc
+++ b/python/dune/gdt/local/integrands/unary_intersection_interface.cc
@@ -25,7 +25,7 @@
 #include "unary_intersection_interface.hh"
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalUnaryIntersectionIntegrandInterface_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -78,5 +78,5 @@ PYBIND11_MODULE(_local_integrands_unary_intersection_interface, m)
   py::module::import("dune.xt.grid");
   py::module::import("dune.xt.functions");
 
-  LocalUnaryIntersectionIntegrandInterface_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  LocalUnaryIntersectionIntegrandInterface_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/local/operators/coupling_intersection_indicator.cc b/python/dune/gdt/local/operators/coupling_intersection_indicator.cc
index 556f054dd1daa8519c44fe74254c9568055c95bc..c570646a7b1087ebcbb720c344035bb175705c23 100644
--- a/python/dune/gdt/local/operators/coupling_intersection_indicator.cc
+++ b/python/dune/gdt/local/operators/coupling_intersection_indicator.cc
@@ -85,7 +85,7 @@ public:
 } // namespace Dune
 
 
-template <class V, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class V, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalCouplingIntersectionBilinearFormIndicatorOperator_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -132,5 +132,5 @@ PYBIND11_MODULE(_local_operators_coupling_intersection_indicator, m)
 
   LocalCouplingIntersectionBilinearFormIndicatorOperator_for_all_grids<
       XT::LA::IstlDenseVector<double>,
-      XT::Grid::AvailableGridTypes>::bind(m, "istl_dense");
+      XT::Grid::bindings::AvailableGridTypes>::bind(m, "istl_dense");
 }
diff --git a/python/dune/gdt/local/operators/element_indicator.cc b/python/dune/gdt/local/operators/element_indicator.cc
index 4ca0659659ee69264f2988ce0d1542aa3c3d1eec..42a8e39da9050307c1dabd3a43cad728e2de2a7d 100644
--- a/python/dune/gdt/local/operators/element_indicator.cc
+++ b/python/dune/gdt/local/operators/element_indicator.cc
@@ -82,7 +82,7 @@ public:
 } // namespace Dune
 
 
-template <class V, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class V, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalElementBilinearFormIndicatorOperator_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -128,5 +128,5 @@ PYBIND11_MODULE(_local_operators_element_indicator, m)
   py::module::import("dune.gdt._local_operators_element_interface");
 
   LocalElementBilinearFormIndicatorOperator_for_all_grids<XT::LA::IstlDenseVector<double>,
-                                                          XT::Grid::AvailableGridTypes>::bind(m, "istl_dense");
+                                                          XT::Grid::bindings::AvailableGridTypes>::bind(m, "istl_dense");
 }
diff --git a/python/dune/gdt/local/operators/element_interface.cc b/python/dune/gdt/local/operators/element_interface.cc
index a8f58943d027d7462c5af54e74539cbf9768074d..d5e34157a9f3fb10383561556ad0dc8fe15a911c 100644
--- a/python/dune/gdt/local/operators/element_interface.cc
+++ b/python/dune/gdt/local/operators/element_interface.cc
@@ -69,7 +69,7 @@ public:
 } // namespace Dune
 
 
-template <class V, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class V, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalElementOperatorInterface_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -112,6 +112,6 @@ PYBIND11_MODULE(_local_operators_element_interface, m)
   py::module::import("dune.xt.grid");
   py::module::import("dune.xt.functions");
 
-  LocalElementOperatorInterface_for_all_grids<XT::LA::IstlDenseVector<double>, XT::Grid::AvailableGridTypes>::bind(
+  LocalElementOperatorInterface_for_all_grids<XT::LA::IstlDenseVector<double>, XT::Grid::bindings::AvailableGridTypes>::bind(
       m, "istl_dense");
 }
diff --git a/python/dune/gdt/local/operators/intersection_indicator.cc b/python/dune/gdt/local/operators/intersection_indicator.cc
index 8e80ce9289b2e2e0566857a94928b4f1bffaa9d1..a48772ddaa3ef64a783b92e3f1d6e0a8c2752777 100644
--- a/python/dune/gdt/local/operators/intersection_indicator.cc
+++ b/python/dune/gdt/local/operators/intersection_indicator.cc
@@ -83,7 +83,7 @@ public:
 } // namespace Dune
 
 
-template <class V, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class V, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalIntersectionBilinearFormIndicatorOperator_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -129,5 +129,5 @@ PYBIND11_MODULE(_local_operators_intersection_indicator, m)
   py::module::import("dune.gdt._local_operators_intersection_interface");
 
   LocalIntersectionBilinearFormIndicatorOperator_for_all_grids<XT::LA::IstlDenseVector<double>,
-                                                               XT::Grid::AvailableGridTypes>::bind(m, "istl_dense");
+                                                               XT::Grid::bindings::AvailableGridTypes>::bind(m, "istl_dense");
 }
diff --git a/python/dune/gdt/local/operators/intersection_interface.cc b/python/dune/gdt/local/operators/intersection_interface.cc
index 5765b80e965ff98730cc65b02fbd015b1080ca58..d5ec5cdd5d419dcddc2d97590ad2b1ddec39dccf 100644
--- a/python/dune/gdt/local/operators/intersection_interface.cc
+++ b/python/dune/gdt/local/operators/intersection_interface.cc
@@ -71,7 +71,7 @@ public:
 } // namespace Dune
 
 
-template <class V, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class V, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LocalIntersectionOperatorInterface_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -114,6 +114,6 @@ PYBIND11_MODULE(_local_operators_intersection_interface, m)
   py::module::import("dune.xt.grid");
   py::module::import("dune.xt.functions");
 
-  LocalIntersectionOperatorInterface_for_all_grids<XT::LA::IstlDenseVector<double>, XT::Grid::AvailableGridTypes>::bind(
+  LocalIntersectionOperatorInterface_for_all_grids<XT::LA::IstlDenseVector<double>, XT::Grid::bindings::AvailableGridTypes>::bind(
       m, "istl_dense");
 }
diff --git a/python/dune/gdt/operators/bilinear-form.cc b/python/dune/gdt/operators/bilinear-form.cc
index caf7f796e4d12a97fa27549c81e910a0303dc900..ea534a61880b67a0f6f9428451eb7288226aeb34 100644
--- a/python/dune/gdt/operators/bilinear-form.cc
+++ b/python/dune/gdt/operators/bilinear-form.cc
@@ -143,7 +143,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct BilinearForm_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -188,5 +188,5 @@ PYBIND11_MODULE(_operators_bilinear_form, m)
 
   py::module::import("dune.gdt._local_bilinear_forms_element_interface");
 
-  BilinearForm_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  BilinearForm_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/operators/interfaces_all_grids.hh b/python/dune/gdt/operators/interfaces_all_grids.hh
index 83d6b45f4abc798c57102f5661b020d5866571d8..6565414f53ad46251cfcaccff267b4d0f9623043 100644
--- a/python/dune/gdt/operators/interfaces_all_grids.hh
+++ b/python/dune/gdt/operators/interfaces_all_grids.hh
@@ -10,6 +10,8 @@
 #ifndef PYTHON_DUNE_GDT_OPERATORS_INTERFACES_BINDINGS_HH
 #define PYTHON_DUNE_GDT_OPERATORS_INTERFACES_BINDINGS_HH
 
+#include <python/dune/xt/grid/grids.bindings.hh>
+
 #include "interfaces.hh"
 #include "lincomb.hh"
 #include "matrix-based.hh"
@@ -18,7 +20,7 @@
 /**
  * We require ConstLincombOperator and LincombOperator for the numeric operators and MatrixOperator for the jacobian.
  */
-template <class M, class MT, class ST, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class M, class MT, class ST, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct OperatorInterface_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
diff --git a/python/dune/gdt/operators/interfaces_common.cc b/python/dune/gdt/operators/interfaces_common.cc
index 417b38bfaa1641c69c50de13294aefe68ec7a3f6..c5281f519b35a93b14470698de0f2f2fac2918cf 100644
--- a/python/dune/gdt/operators/interfaces_common.cc
+++ b/python/dune/gdt/operators/interfaces_common.cc
@@ -11,6 +11,7 @@
 
 #include <dune/xt/grid/grids.hh>
 #include <python/dune/xt/la/traits.hh>
+#include <python/dune/xt/grid/grids.bindings.hh>
 
 #include "interfaces_all_grids.hh"
 
@@ -34,10 +35,10 @@ PYBIND11_MODULE(_operators_interfaces_common, /*m*/)
   //  OperatorInterface_for_all_grids<LA::CommonDenseMatrix<double>,
   //                                  LA::bindings::Common,
   //                                  LA::bindings::Dense,
-  //                                  XT::Grid::AvailableGridTypes>::bind(m, "common_dense");
+  //                                  XT::Grid::bindings::AvailableGridTypes>::bind(m, "common_dense");
   //  // Generic linear solver missing for CommonSparseMatrix!
   //  //  OperatorInterface_for_all_grids<LA::CommonSparseMatrix<double>,
   //  //                                  LA::bindings::Common,
   //  //                                  LA::bindings::Sparse,
-  //  //                                  XT::Grid::AvailableGridTypes>::bind(m, "common_sparse");
+  //  //                                  XT::Grid::bindings::AvailableGridTypes>::bind(m, "common_sparse");
 }
diff --git a/python/dune/gdt/operators/interfaces_eigen.cc b/python/dune/gdt/operators/interfaces_eigen.cc
index 6b9738827fa751588592580bdfa4ce06fea0a893..fc02fda9356f6d4f7e013e13d55dac5ac21549a7 100644
--- a/python/dune/gdt/operators/interfaces_eigen.cc
+++ b/python/dune/gdt/operators/interfaces_eigen.cc
@@ -11,6 +11,7 @@
 
 #include <dune/xt/grid/grids.hh>
 #include <python/dune/xt/la/traits.hh>
+#include <python/dune/xt/grid/grids.bindings.hh>
 
 #include "interfaces_all_grids.hh"
 
@@ -35,10 +36,10 @@ PYBIND11_MODULE(_operators_interfaces_eigen, /*m*/)
   //  OperatorInterface_for_all_grids<LA::EigenDenseMatrix<double>,
   //                                  LA::bindings::Eigen,
   //                                  LA::bindings::Dense,
-  //                                  XT::Grid::AvailableGridTypes>::bind(m, "eigen_dense");
+  //                                  XT::Grid::bindings::AvailableGridTypes>::bind(m, "eigen_dense");
   //  OperatorInterface_for_all_grids<LA::EigenRowMajorSparseMatrix<double>,
   //                                  LA::bindings::Eigen,
   //                                  LA::bindings::Sparse,
-  //                                  XT::Grid::AvailableGridTypes>::bind(m, "eigen_sparse");
+  //                                  XT::Grid::bindings::AvailableGridTypes>::bind(m, "eigen_sparse");
   //#endif
 }
diff --git a/python/dune/gdt/operators/interfaces_istl_1d.cc b/python/dune/gdt/operators/interfaces_istl_1d.cc
index ec5375d237d13b98308db0d15bca56451139b26f..962adf640f88fe177407e62f6c448365dbdd73ea 100644
--- a/python/dune/gdt/operators/interfaces_istl_1d.cc
+++ b/python/dune/gdt/operators/interfaces_istl_1d.cc
@@ -10,6 +10,7 @@
 #include "config.h"
 
 #include <dune/xt/grid/grids.hh>
+#include <python/dune/xt/grid/grids.bindings.hh>
 #include <python/dune/xt/la/traits.hh>
 
 #include "interfaces_all_grids.hh"
@@ -32,5 +33,5 @@ PYBIND11_MODULE(_operators_interfaces_istl_1d, m)
   OperatorInterface_for_all_grids<LA::IstlRowMajorSparseMatrix<double>,
                                   LA::bindings::Istl,
                                   void,
-                                  boost::tuple<ONED_1D>>::bind(m, "istl_sparse");
+                                  XT::Grid::bindings::Available1dGridTypes>::bind(m, "istl_sparse");
 }
diff --git a/python/dune/gdt/operators/interfaces_istl_2d.cc b/python/dune/gdt/operators/interfaces_istl_2d.cc
index 93575ded5816b73682c5447d2c2528925e49d707..1e91830aadd6b6fc914c35e05ee9611bb41db53c 100644
--- a/python/dune/gdt/operators/interfaces_istl_2d.cc
+++ b/python/dune/gdt/operators/interfaces_istl_2d.cc
@@ -32,10 +32,5 @@ PYBIND11_MODULE(_operators_interfaces_istl_2d, m)
   OperatorInterface_for_all_grids<LA::IstlRowMajorSparseMatrix<double>,
                                   LA::bindings::Istl,
                                   void,
-                                  boost::tuple<YASP_2D_EQUIDISTANT_OFFSET
-#if HAVE_DUNE_ALUGRID
-                                               ,
-                                               ALU_2D_SIMPLEX_CONFORMING
-#endif
-                                               >>::bind(m, "istl_sparse");
+                                  XT::Grid::bindings::Available2dGridTypes>::bind(m, "istl_sparse");
 }
diff --git a/python/dune/gdt/operators/interfaces_istl_3d.cc b/python/dune/gdt/operators/interfaces_istl_3d.cc
index 584a3c05155d286904c765387040c1a072d7763e..6724dc6d1dc9482a061358c73a53219ab4643d43 100644
--- a/python/dune/gdt/operators/interfaces_istl_3d.cc
+++ b/python/dune/gdt/operators/interfaces_istl_3d.cc
@@ -32,10 +32,5 @@ PYBIND11_MODULE(_operators_interfaces_istl_3d, m)
   OperatorInterface_for_all_grids<LA::IstlRowMajorSparseMatrix<double>,
                                   LA::bindings::Istl,
                                   void,
-                                  boost::tuple<YASP_3D_EQUIDISTANT_OFFSET
-#if HAVE_DUNE_ALUGRID
-                                               ,
-                                               ALU_3D_SIMPLEX_CONFORMING
-#endif
-                                               >>::bind(m, "istl_sparse");
+                                  XT::Grid::bindings::Available3dGridTypes>::bind(m, "istl_sparse");
 }
diff --git a/python/dune/gdt/operators/laplace_ipdg_flux_reconstruction.cc b/python/dune/gdt/operators/laplace_ipdg_flux_reconstruction.cc
index 165a11bdfe6e0e057791d38600131bdfd50d6eb0..d49bae3ee8cc23f718139e98f73110b14f0f1f71 100644
--- a/python/dune/gdt/operators/laplace_ipdg_flux_reconstruction.cc
+++ b/python/dune/gdt/operators/laplace_ipdg_flux_reconstruction.cc
@@ -175,7 +175,7 @@ public:
 } // namespace Dune
 
 
-template <class M, class MT, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class M, class MT, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct LaplaceIpdgFluxReconstructionOperator_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -222,5 +222,5 @@ PYBIND11_MODULE(_operators_laplace_ipdg_flux_reconstruction, m)
   /// \todo Add other linear algebra backends, if required!
   LaplaceIpdgFluxReconstructionOperator_for_all_grids<LA::IstlRowMajorSparseMatrix<double>,
                                                       LA::bindings::Istl,
-                                                      XT::Grid::AvailableGridTypes>::bind(m, "istl_sparse");
+                                                      XT::Grid::bindings::AvailableGridTypes>::bind(m, "istl_sparse");
 }
diff --git a/python/dune/gdt/operators/matrix-based_factory.cc b/python/dune/gdt/operators/matrix-based_factory.cc
index 2981f74ec5c512bb245e803ba19deac7d2930668..13b16c08bb0f6e138598a300a311a56186bb519a 100644
--- a/python/dune/gdt/operators/matrix-based_factory.cc
+++ b/python/dune/gdt/operators/matrix-based_factory.cc
@@ -9,6 +9,8 @@
 
 #include "config.h"
 
+#include <python/dune/xt/grid/grids.bindings.hh>
+
 #include "matrix-based_factory.hh"
 
 
@@ -35,24 +37,24 @@ PYBIND11_MODULE(_operators_matrix_based_factory, m)
   //  MatrixOperatorFactory_for_all_grids<LA::CommonDenseMatrix<double>,
   //                               LA::bindings::Common,
   //                               LA::bindings::Dense,
-  //                               XT::Grid::AvailableGridTypes>::bind(m, "common_dense");
+  //                               XT::Grid::bindings::AvailableGridTypes>::bind(m, "common_dense");
   //  // Generic linear solver missing for CommonSparseMatrix!
   //  MatrixOperatorFactory_for_all_grids<LA::CommonSparseMatrix<double>,
   //                               LA::bindings::Common,
   //                               LA::bindings::Sparse,
-  //                               XT::Grid::AvailableGridTypes>::bind(m, "common_sparse");
+  //                               XT::Grid::bindings::AvailableGridTypes>::bind(m, "common_sparse");
   //#if HAVE_EIGEN
   //  MatrixOperatorFactory_for_all_grids<LA::EigenDenseMatrix<double>,
   //                               LA::bindings::Eigen,
   //                               LA::bindings::Dense,
-  //                               XT::Grid::AvailableGridTypes>::bind(m, "eigen_dense");
+  //                               XT::Grid::bindings::AvailableGridTypes>::bind(m, "eigen_dense");
   //  MatrixOperatorFactory_for_all_grids<LA::EigenRowMajorSparseMatrix<double>,
   //                               LA::bindings::Eigen,
   //                               LA::bindings::Sparse,
-  //                               XT::Grid::AvailableGridTypes>::bind(m, "eigen_sparse");
+  //                               XT::Grid::bindings::AvailableGridTypes>::bind(m, "eigen_sparse");
   //#endif
   MatrixOperatorFactory_for_all_grids<LA::IstlRowMajorSparseMatrix<double>,
                                       LA::bindings::Istl,
                                       void,
-                                      XT::Grid::AvailableGridTypes>::bind(m, "istl_sparse");
+                                      XT::Grid::bindings::AvailableGridTypes>::bind(m, "istl_sparse");
 }
diff --git a/python/dune/gdt/operators/matrix-based_factory.hh b/python/dune/gdt/operators/matrix-based_factory.hh
index 275bc1741c9b072ac4ae83c0819437d7e69181f6..e63e338c810e349c79e0c1908810ffb55df30bc9 100644
--- a/python/dune/gdt/operators/matrix-based_factory.hh
+++ b/python/dune/gdt/operators/matrix-based_factory.hh
@@ -11,11 +11,12 @@
 #define DUNE_GDT_PYTHON_OPERATORS_MATRIX_BASED_FACTORY_HH
 
 #include <dune/xt/grid/grids.hh>
+#include <python/dune/xt/grid/grids.bindings.hh>
 
 #include "matrix-based.hh"
 
 // The type itself is bound by the OperatorInterface, required as return type for jacobian
-template <class M, class MT, class ST, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class M, class MT, class ST, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct MatrixOperatorFactory_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
diff --git a/python/dune/gdt/operators/operator.cc b/python/dune/gdt/operators/operator.cc
index 3b643eaf0c07a4416b7356a3ebfa0ec2a8602081..9d3a51fbdbcb1f274a99fbabd20389d59c6f2fa4 100644
--- a/python/dune/gdt/operators/operator.cc
+++ b/python/dune/gdt/operators/operator.cc
@@ -169,7 +169,7 @@ public:
 } // namespace Dune
 
 
-template <class M, class MT, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class M, class MT, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct Operator_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -221,6 +221,6 @@ PYBIND11_MODULE(_operators_operator, m)
   py::module::import("dune.gdt._operators_interfaces_istl_3d");
 
   /// \todo Add other la backends if required
-  Operator_for_all_grids<LA::IstlRowMajorSparseMatrix<double>, LA::bindings::Istl, XT::Grid::AvailableGridTypes>::bind(
+  Operator_for_all_grids<LA::IstlRowMajorSparseMatrix<double>, LA::bindings::Istl, XT::Grid::bindings::AvailableGridTypes>::bind(
       m, "istl_sparse");
 }
diff --git a/python/dune/gdt/prolongations.cc b/python/dune/gdt/prolongations.cc
index 56feee350852c66f02db4fb6f274a8b544723524..4fdaf46c5248b4e361acc35d4c5c986639d28ff0 100644
--- a/python/dune/gdt/prolongations.cc
+++ b/python/dune/gdt/prolongations.cc
@@ -83,7 +83,7 @@ public:
 } // namespace Dune
 
 
-template <class V, class VT, class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class V, class VT, class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct prolong_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -129,11 +129,11 @@ PYBIND11_MODULE(_prolongations, m)
   // bindings for all but dune-istl disabled for the moment
   prolong_for_all_grids<LA::CommonDenseVector<double>,
                                       LA::bindings::Common,
-                                      XT::Grid::AvailableGridTypes>::bind(m);
+                                      XT::Grid::bindings::AvailableGridTypes>::bind(m);
 #  if HAVE_EIGEN
-  prolong_for_all_grids<LA::EigenDenseVector<double>, LA::bindings::Eigen, XT::Grid::AvailableGridTypes>::
+  prolong_for_all_grids<LA::EigenDenseVector<double>, LA::bindings::Eigen, XT::Grid::bindings::AvailableGridTypes>::
       bind(m);
 #  endif
 #endif // 0
-  prolong_for_all_grids<LA::IstlDenseVector<double>, LA::bindings::Istl, XT::Grid::AvailableGridTypes>::bind(m);
+  prolong_for_all_grids<LA::IstlDenseVector<double>, LA::bindings::Istl, XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/spaces/h1/continuous-lagrange.cc b/python/dune/gdt/spaces/h1/continuous-lagrange.cc
index 23006601f29cabce4d7da9de3bcf2cbfb74214a7..23ccf333eb99a63e763f6edbec916679d3e945cb 100644
--- a/python/dune/gdt/spaces/h1/continuous-lagrange.cc
+++ b/python/dune/gdt/spaces/h1/continuous-lagrange.cc
@@ -9,10 +9,12 @@
 
 #include "config.h"
 
+#include <python/dune/xt/grid/grids.bindings.hh>
+
 #include "continuous-lagrange.hh"
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct ContinuousLagrangeSpace_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -51,5 +53,5 @@ PYBIND11_MODULE(_spaces_h1_continuous_lagrange, m)
 
   py::module::import("dune.gdt._spaces_interface");
 
-  ContinuousLagrangeSpace_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  ContinuousLagrangeSpace_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/spaces/hdiv/raviart-thomas.cc b/python/dune/gdt/spaces/hdiv/raviart-thomas.cc
index 5dc818141221dc0a11a22bb341266934788f29c6..3e82b0c3234fceca8ba6ad5974aead5c37a21a24 100644
--- a/python/dune/gdt/spaces/hdiv/raviart-thomas.cc
+++ b/python/dune/gdt/spaces/hdiv/raviart-thomas.cc
@@ -86,7 +86,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct RaviartThomasSpace_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -125,5 +125,5 @@ PYBIND11_MODULE(_spaces_hdiv_raviart_thomas, m)
 
   py::module::import("dune.gdt._spaces_interface");
 
-  RaviartThomasSpace_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  RaviartThomasSpace_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/spaces/interface.cc b/python/dune/gdt/spaces/interface.cc
index cfe53a0fe86b7f0751310f31077771a87df8ad20..6966bcb483a2983cb4acc5f3e5eaa0fa7e7c49d3 100644
--- a/python/dune/gdt/spaces/interface.cc
+++ b/python/dune/gdt/spaces/interface.cc
@@ -10,11 +10,12 @@
 #include "config.h"
 
 #include <dune/xt/grid/grids.hh>
+#include <python/dune/xt/grid/grids.bindings.hh>
 
 #include "interface.hh"
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct SpaceInterface_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -54,5 +55,5 @@ PYBIND11_MODULE(_spaces_interface, m)
   py::module::import("dune.xt.grid");
   py::module::import("dune.xt.functions");
 
-  SpaceInterface_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  SpaceInterface_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/spaces/l2/discontinuous-lagrange.cc b/python/dune/gdt/spaces/l2/discontinuous-lagrange.cc
index 4cf3ec392f48adb1891c3891283bd3c2b701df15..5892567c07d95490b4b8b69634c91d0dacb8f6f0 100644
--- a/python/dune/gdt/spaces/l2/discontinuous-lagrange.cc
+++ b/python/dune/gdt/spaces/l2/discontinuous-lagrange.cc
@@ -9,10 +9,12 @@
 
 #include "config.h"
 
+#include <python/dune/xt/grid/grids.bindings.hh>
+
 #include "discontinuous-lagrange.hh"
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct DiscontinuousLagrangeSpace_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -54,5 +56,5 @@ PYBIND11_MODULE(_spaces_l2_discontinuous_lagrange, m)
 
   py::module::import("dune.gdt._spaces_interface");
 
-  DiscontinuousLagrangeSpace_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  DiscontinuousLagrangeSpace_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/spaces/l2/finite-volume.cc b/python/dune/gdt/spaces/l2/finite-volume.cc
index f5e08c2b3bd27392cd8a70559af668e327ed399f..4ab653cd9251abef2cda2922afee208b495cf42b 100644
--- a/python/dune/gdt/spaces/l2/finite-volume.cc
+++ b/python/dune/gdt/spaces/l2/finite-volume.cc
@@ -93,7 +93,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct FiniteVolumeSpace_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -135,5 +135,5 @@ PYBIND11_MODULE(_spaces_l2_finite_volume, m)
 
   py::module::import("dune.gdt._spaces_interface");
 
-  FiniteVolumeSpace_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  FiniteVolumeSpace_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/spaces/skeleton/finite-volume.cc b/python/dune/gdt/spaces/skeleton/finite-volume.cc
index 84dc40513559cf43eb481be00f0253d1799bfa16..5b3245909fe603c0669d31d439755b5e584fc77c 100644
--- a/python/dune/gdt/spaces/skeleton/finite-volume.cc
+++ b/python/dune/gdt/spaces/skeleton/finite-volume.cc
@@ -93,7 +93,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct FiniteVolumeSkeletonSpace_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -132,5 +132,5 @@ PYBIND11_MODULE(_spaces_skeleton_finite_volume, m)
 
   py::module::import("dune.gdt._spaces_interface");
 
-  FiniteVolumeSkeletonSpace_for_all_grids<XT::Grid::AvailableGridTypes>::bind(m);
+  FiniteVolumeSkeletonSpace_for_all_grids<XT::Grid::bindings::AvailableGridTypes>::bind(m);
 }
diff --git a/python/dune/gdt/tools/adaptation-helper.cc b/python/dune/gdt/tools/adaptation-helper.cc
index 9c66a19519349913d21df7d88c9f36b22fb16b8a..a6eaafb4705ce130bdda53be34d1a69aea5a1f9d 100644
--- a/python/dune/gdt/tools/adaptation-helper.cc
+++ b/python/dune/gdt/tools/adaptation-helper.cc
@@ -194,12 +194,12 @@ public:
 } // namespace Dune
 
 
-using AvailableAdaptiveGridTypes = boost::tuple<ONED_1D,
+using AvailableAdaptiveGridTypes = std::tuple<ONED_1D,
 #if HAVE_DUNE_ALUGRID
-                                                ALU_2D_SIMPLEX_CONFORMING,
-                                                ALU_3D_SIMPLEX_CONFORMING
+                                              ALU_2D_SIMPLEX_CONFORMING,
+                                              ALU_3D_SIMPLEX_CONFORMING
 #endif
-                                                >;
+                                              >;
 
 
 template <class V, class VT, class GridTypes = AvailableAdaptiveGridTypes>
diff --git a/python/dune/gdt/tools/dirichlet-constraints.cc b/python/dune/gdt/tools/dirichlet-constraints.cc
index 53f53cef1f4585509bdd957cfc52f775c9485ef5..2c115ab1da47609b36b6c1b4116f7ffb624d8dfc 100644
--- a/python/dune/gdt/tools/dirichlet-constraints.cc
+++ b/python/dune/gdt/tools/dirichlet-constraints.cc
@@ -150,7 +150,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct DirichletConstraints_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
diff --git a/python/dune/gdt/tools/grid-quality-estimates.cc b/python/dune/gdt/tools/grid-quality-estimates.cc
index bda6dbc61a2a032d31f8ca5e73ea6834d8ffdbcf..3946e6e0a41d98fd3b07e8ac0740b60ab8536831 100644
--- a/python/dune/gdt/tools/grid-quality-estimates.cc
+++ b/python/dune/gdt/tools/grid-quality-estimates.cc
@@ -97,7 +97,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct estimate_inverse_inequality_constant_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -122,7 +122,7 @@ struct estimate_inverse_inequality_constant_for_all_grids<Dune::XT::Common::tupl
 };
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct estimate_combined_inverse_trace_inequality_constant_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
@@ -148,7 +148,7 @@ struct estimate_combined_inverse_trace_inequality_constant_for_all_grids<Dune::X
 };
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct estimate_element_to_intersection_equivalence_constant_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;
diff --git a/python/dune/gdt/tools/sparsity-pattern.cc b/python/dune/gdt/tools/sparsity-pattern.cc
index 966861dbf88f69bf88a9ac161e921ab879bc95ec..1c3871d6f06638264cb568274ce9b05c08e8cbd4 100644
--- a/python/dune/gdt/tools/sparsity-pattern.cc
+++ b/python/dune/gdt/tools/sparsity-pattern.cc
@@ -67,7 +67,7 @@ public:
 } // namespace Dune
 
 
-template <class GridTypes = Dune::XT::Grid::AvailableGridTypes>
+template <class GridTypes = Dune::XT::Grid::bindings::AvailableGridTypes>
 struct make_sparsity_patterns_for_all_grids
 {
   using G = Dune::XT::Common::tuple_head_t<GridTypes>;