diff --git a/.clang-format b/.clang-format
index de7fbc73d48a41da46b824ce25be9c8e82520f00..1450ba2cce6bac038f58f4bb2c51a1d9d224821e 120000
--- a/.clang-format
+++ b/.clang-format
@@ -1 +1 @@
-.vcsetup/.clang-format-3.8
\ No newline at end of file
+.vcsetup/.clang-format-3.9
\ No newline at end of file
diff --git a/.cmake_format.py b/.cmake_format.py
new file mode 120000
index 0000000000000000000000000000000000000000..30e2b4ce0f358d3ae1cf0ab08897223ddd413771
--- /dev/null
+++ b/.cmake_format.py
@@ -0,0 +1 @@
+.vcsetup/.cmake_format.py
\ No newline at end of file
diff --git a/.gitattributes b/.gitattributes
index f482f05a8ee63fdb0ac5e374ca504c1b111b419c..18f63fcdea29cfc0af261e41a2fde0a6ce25893e 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -8,5 +9,6 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 stamp-vc export-ignore
diff --git a/.gitignore b/.gitignore
index 1a0ab6e2165c72cc2223995f3b61f505ac96fa80..13bc553deeed6cdddb14594ec01b65a316c72737 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -8,6 +9,7 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 CMakeCache.txt
 CMakeFiles
diff --git a/.gitsuper b/.gitsuper
new file mode 100644
index 0000000000000000000000000000000000000000..fb3bf6ca76f773cecfad9802db44d0f6ecc9204b
--- /dev/null
+++ b/.gitsuper
@@ -0,0 +1,112 @@
+[supermodule]
+remote = git@github.com:dune-community/dune-xt-super.git
+status = 1a3bcab04b011a5d6e44f9983cae6ff89fa695e8 bin (heads/master)
+	 3ef118ce2de17da2aa1933623c3d7de2a9df741d config.opts (heads/master-1-g3ef118c)
+	 8f2c5aba441417bf2c42f22272f538c68a89cc4a dune-alugrid (remotes/origin/releases/2.5)
+	 707acf201d5a754c80f87cc4d71aa36bf29a6e3f dune-common (v2.5.1-9-g707acf20)
+	 e6350271b8d014adab51467a35b6ad8ef48212a0 dune-geometry (v2.5.1-6-ge635027)
+	 d7b20bbc5f6fdcfc312beb0ea5d16d39ea26904e dune-grid (v2.5.1-2-gd7b20bbc5)
+	 e9d9a3336735090648637e044e279866bbea3597 dune-grid-glue (v2.4.0-60-ge9d9a33)
+	 63df56a54f81eda308233a683eb329e77e69f0a9 dune-istl (v2.5.1rc1)
+	 0d757d65e5d57134a7ecf304e35d063f4ccc7116 dune-localfunctions (v2.5.1rc1)
+	 f516eb631d14e51ffb516496e07348b27f296ee7 dune-pybindxi (v2.2.1-11-gf516eb6)
+	 741e4f8e53bdd3e1b6e19d84eb22b6e3dc48526c dune-python (remotes/origin/releases/2.5)
+	 26cc8cb4161a3a51002ab2a81b8c81d2c951ee79 dune-testtools (remotes/origin/p/renemilk/testname_listing_hack_no-skiptest)
+	 c2addd62e6f6302e4f90ed7fbe62c9b633c3bf42 dune-uggrid (v2.5.1rc1)
+	+ace00d3bce4cf7963add36d44214400088eae3cd dune-xt-common (heads/update_vcsetup)
+	+646437f9dd1fd4b2ef352ac5d906e16ace94b8af dune-xt-functions (heads/update_vcsetup)
+	+0847ae4d67647e0014855d19c1c8979f62428aa3 dune-xt-grid (heads/update_vcsetup)
+	+8434cb33acacdcab9ef58ccd1711c9c100e25bf4 dune-xt-la (heads/update_vcsetup)
+	 60cd896bf3f1eb99066563aa1a07113e5a791d47 scripts (remotes/origin/HEAD)
+commit = 0dd5c18cfdb9f8d51069611ee90d31ba1e63bde3
+
+[submodule.bin]
+remote = git@github.com:dune-community/local-bin.git
+status = 
+commit = 1a3bcab04b011a5d6e44f9983cae6ff89fa695e8
+
+[submodule.config.opts]
+remote = git@github.com:dune-community/config.opts.git
+status = 
+commit = 3ef118ce2de17da2aa1933623c3d7de2a9df741d
+
+[submodule.dune-alugrid]
+remote = https://github.com/dune-mirrors/dune-alugrid.git
+status = 
+commit = 8f2c5aba441417bf2c42f22272f538c68a89cc4a
+
+[submodule.dune-common]
+remote = git@github.com:dune-community/dune-common.git
+status = 
+commit = 707acf201d5a754c80f87cc4d71aa36bf29a6e3f
+
+[submodule.dune-geometry]
+remote = http://github.com/dune-community/dune-geometry.git
+status = 
+commit = e6350271b8d014adab51467a35b6ad8ef48212a0
+
+[submodule.dune-grid]
+remote = http://github.com/dune-community/dune-grid.git
+status = 
+commit = d7b20bbc5f6fdcfc312beb0ea5d16d39ea26904e
+
+[submodule.dune-grid-glue]
+remote = https://github.com/dune-mirrors/dune-grid-glue.git
+status = 
+commit = e9d9a3336735090648637e044e279866bbea3597
+
+[submodule.dune-istl]
+remote = http://github.com/dune-mirrors/dune-istl.git
+status = 
+commit = 63df56a54f81eda308233a683eb329e77e69f0a9
+
+[submodule.dune-localfunctions]
+remote = http://github.com/dune-mirrors/dune-localfunctions.git
+status = 
+commit = 0d757d65e5d57134a7ecf304e35d063f4ccc7116
+
+[submodule.dune-pybindxi]
+remote = git@github.com:dune-community/dune-pybindxi.git
+status = a18500d497d2ffa2f627bc6e7da0aa1169b81ea3 .vcsetup (heads/master)
+commit = f516eb631d14e51ffb516496e07348b27f296ee7
+
+[submodule.dune-python]
+remote = https://github.com/dune-mirrors/dune-python.git
+status = 
+commit = 741e4f8e53bdd3e1b6e19d84eb22b6e3dc48526c
+
+[submodule.dune-testtools]
+remote = https://github.com/dune-mirrors/dune-testtools.git
+status = 
+commit = 26cc8cb4161a3a51002ab2a81b8c81d2c951ee79
+
+[submodule.dune-uggrid]
+remote = https://github.com/dune-mirrors/dune-uggrid.git
+status = 
+commit = c2addd62e6f6302e4f90ed7fbe62c9b633c3bf42
+
+[submodule.dune-xt-common]
+remote = git@github.com:dune-community/dune-xt-common.git
+status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
+commit = ace00d3bce4cf7963add36d44214400088eae3cd
+
+[submodule.dune-xt-functions]
+remote = git@github.com:dune-community/dune-xt-functions.git
+status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
+commit = 646437f9dd1fd4b2ef352ac5d906e16ace94b8af
+
+[submodule.dune-xt-grid]
+remote = git@github.com:dune-community/dune-xt-grid.git
+status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
+commit = 0847ae4d67647e0014855d19c1c8979f62428aa3
+
+[submodule.dune-xt-la]
+remote = git@github.com:dune-community/dune-xt-la.git
+status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
+commit = 8434cb33acacdcab9ef58ccd1711c9c100e25bf4
+
+[submodule.scripts]
+remote = https://github.com/wwu-numerik/scripts.git
+status = fb5ebc10e647d637c69497af2ec2560847eb2112 python/pylicense (fb5ebc1)
+commit = 60cd896bf3f1eb99066563aa1a07113e5a791d47
+
diff --git a/.mailmap b/.mailmap
index f4cfc7280963a85c9768c4a9de8468f6753bf850..c7ee930806fd5ca2cd34a7795a1e253e1f53802a 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -8,6 +9,7 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 Rene Milk <rene.milk@wwu.de> Rene Milk <rene.milk@uni-muenster.de>
 Rene Milk <rene.milk@wwu.de> Rene Milk <koshi@springlobby.info>
diff --git a/.pylicense-cpp.cfg b/.pylicense-cpp.cfg
index b1938fb2edc7ed466af4d3fbda0841e08caafc64..25a8fb8731859df6cdc659182eedd7569c39d366 100644
--- a/.pylicense-cpp.cfg
+++ b/.pylicense-cpp.cfg
@@ -1,21 +1,22 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
 # License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
+#      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
+#          with "runtime exception" (http://www.dune-project.org/license.html)
 # Authors:
 #   Felix Schindler (2016 - 2017)
 #   Rene Milk       (2018)
-#
-#      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
-#          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 [header]
 name = This file is part of the dune-xt-grid project:
 url = https://github.com/dune-community/dune-xt-grid
 copyright_statement = Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
 license = Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
-          //      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
-          //          with "runtime exception" (http://www.dune-project.org/license.html)
+               or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
+                   with "runtime exception" (http://www.dune-project.org/license.html)
 prefix = //
 
 [files]
diff --git a/.pylicense-other.cfg b/.pylicense-other.cfg
index bfe9e5e61cf3745672583927593fef5049f9aca4..730a635a76f4f633b5ec3673a44d59746864f02a 100644
--- a/.pylicense-other.cfg
+++ b/.pylicense-other.cfg
@@ -1,23 +1,27 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
 # License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
+#      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
+#          with "runtime exception" (http://www.dune-project.org/license.html)
 # Authors:
 #   Felix Schindler (2016 - 2017)
 #   Rene Milk       (2018)
-#
-#      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
-#          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 [header]
 name = This file is part of the dune-xt-grid project:
 url = https://github.com/dune-community/dune-xt-grid
 copyright_statement = Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
 license = Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
-          #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
-          #          with "runtime exception" (http://www.dune-project.org/license.html)
+               or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
+                   with "runtime exception" (http://www.dune-project.org/license.html)
 prefix = #
+lead-in = # ~~~
+lead-out = # ~~~
+
 
 [files]
 include_patterns = *.txt *.cmake *.py *.sh *.bash *.msh *.gdb *.cfg *.travis.* *.gitignore *.mailmap *.gitattributes *gitignore-* *stamp-vc *dune.module *Doxylocal *.clang-format *COPYING-CMAKE-SCRIPTS *README *LICENSE *mainpage *switch-build_dir *dune-xt-grid.pc.in *.pylicense* *CMakeLists.txt
-exclude_patterns = *config.h.cmake *.vcsetup* *.dgf
+exclude_patterns = *config.h.cmake *.vcsetup* *.dgf *builder_definitions.cmake
diff --git a/.travis.after_script.bash b/.travis.after_script.bash
index 8bdf19033aa3c54a50b9467bd12175b37d4683be..a2470108795a71bdcbb9c9ba9252f3272b3abf08 100755
--- a/.travis.after_script.bash
+++ b/.travis.after_script.bash
@@ -1,4 +1,13 @@
 #!/bin/bash
+#
+# ~~~
+# This file is part of the dune-xt-grid project:
+#   https://github.com/dune-community/dune-xt-grid
+# Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
+# License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
+# Authors:
+#   Rene Milk (2017 - 2018)
+# ~~~
 
 # ****** THIS FILE IS AUTOGENERATED, DO NOT EDIT **********
 # this file is treated as a jinja2 template
diff --git a/.travis.cfg.in b/.travis.cfg.in
index e2df221f466e4b251797863bb128b676ec769b38..2ea9b947b1ba70a168c89d0980371f2b1dca87a4 100644
--- a/.travis.cfg.in
+++ b/.travis.cfg.in
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -8,6 +9,7 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 "travis" : {
 	 "branch"       : "$ENV{TRAVIS_BRANCH}",
diff --git a/.travis.ctest b/.travis.ctest
index f494856b1ffba7d7052bf5a586f63537d39d9700..02a7135ee2f8b300dc14884fa142fe49c7e97dfe 100644
--- a/.travis.ctest
+++ b/.travis.ctest
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -8,6 +9,7 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 string(SUBSTRING "$ENV{TRAVIS_COMMIT}" 0 7 COMMIT_ID)
 set(CTEST_SITE "travis")
diff --git a/.travis.make_env_file.py b/.travis.make_env_file.py
index f2e925bdb01bd5d371402a58d12c2bb878745fd7..65c6aa2dbe6da60e8b7c7eada003c88f2dfbfb88 100644
--- a/.travis.make_env_file.py
+++ b/.travis.make_env_file.py
@@ -1,4 +1,13 @@
 #!/usr/bin/env python3
+#
+# ~~~
+# This file is part of the dune-xt-grid project:
+#   https://github.com/dune-community/dune-xt-grid
+# Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
+# License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
+# Authors:
+#   Rene Milk (2017 - 2018)
+# ~~~
 
 import os
 from os.path import expanduser
diff --git a/.travis.script.bash b/.travis.script.bash
index 82579525536bf5dd448bde598b83e64ff588effc..c535ae70612d4059b70a682835943d68a693af53 100755
--- a/.travis.script.bash
+++ b/.travis.script.bash
@@ -1,4 +1,14 @@
 #!/bin/bash
+#
+# ~~~
+# This file is part of the dune-xt-grid project:
+#   https://github.com/dune-community/dune-xt-grid
+# Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
+# License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
+# Authors:
+#   Felix Schindler (2017)
+#   Rene Milk       (2017 - 2018)
+# ~~~
 
 # ****** THIS FILE IS AUTOGENERATED, DO NOT EDIT **********
 # this file is treated as a jinja2 template
diff --git a/.travis.test_python.bash b/.travis.test_python.bash
index 264c4b430535201cd6ff7b58e9908fabfba1aaa8..73e37a2d86d3c3c93eb6a851ae52507c68752de1 100755
--- a/.travis.test_python.bash
+++ b/.travis.test_python.bash
@@ -1,4 +1,13 @@
 #!/bin/bash
+#
+# ~~~
+# This file is part of the dune-xt-grid project:
+#   https://github.com/dune-community/dune-xt-grid
+# Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
+# License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
+# Authors:
+#   Rene Milk (2018)
+# ~~~
 
 # ****** THIS FILE IS AUTOGENERATED, DO NOT EDIT **********
 # this file is treated as a jinja2 template
diff --git a/.travis.yml b/.travis.yml
index d307a56b2bacec9b3ec09fb7d7b3b3f99ed10eb1..460cd122c106ca3d591cb6a2a8f5cbc5e94c7d56 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,13 +1,16 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
-# Copyright 2009-2017 dune-xt-functions developers and contributors. All rights reserved.
+# Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
 # License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
-#      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
-#          with "runtime exception" (http://www.dune-project.org/license.html)
 # Authors:
 #   Felix Schindler (2016 - 2017)
-#   Rene Milk       (2016 - 2017)
+#   Rene Milk       (2016 - 2018)
 #   Tobias Leibner  (2016)
+#
+#      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
+#          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 #   THIS FILE IS AUTOGENERATED -- DO NOT EDIT  #
 #  Re-run .ci/templates/update.py --nd instead #
@@ -67,11 +70,6 @@ jobs:
   - stage: test_cpp
     env: DOCKER_TAG=debian_clang_full TESTS=1
     
-  - stage: test_cpp
-    env: DOCKER_TAG=arch_gcc_full TESTS=0
-  - stage: test_cpp
-    env: DOCKER_TAG=arch_gcc_full TESTS=1
-    
   - stage: test_python
     env: DOCKER_TAG=debian_gcc_full
     script: ${DOCKER_RUN} /root/src/dune-xt-grid/.travis.test_python.bash
@@ -82,11 +80,6 @@ jobs:
     script: ${DOCKER_RUN} /root/src/dune-xt-grid/.travis.test_python.bash
     # overwrite other global/matrix settings
     after_script: true
-  - stage: test_python
-    env: DOCKER_TAG=arch_gcc_full
-    script: ${DOCKER_RUN} /root/src/dune-xt-grid/.travis.test_python.bash
-    # overwrite other global/matrix settings
-    after_script: true
 
 #   THIS FILE IS AUTOGENERATED -- DO NOT EDIT  #
-#  Re-run .ci/templates/update.py --nd instead #
\ No newline at end of file
+#  Re-run .ci/templates/update.py --nd instead #
diff --git a/.vcsetup b/.vcsetup
index 7412205ae85537918f63bccf57d427bb88bd2478..2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 160000
--- a/.vcsetup
+++ b/.vcsetup
@@ -1 +1 @@
-Subproject commit 7412205ae85537918f63bccf57d427bb88bd2478
+Subproject commit 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f425d0d9ccfa4c4f8330af22db24225e277c772a..ac2631b9f59136272c12eef87559701fc6a42d7e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -9,50 +10,44 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 cmake_minimum_required(VERSION 3.1)
 project(dune-xt-grid CXX)
 
-if(NOT (dune-common_DIR OR dune-common_ROOT OR
-      "${CMAKE_PREFIX_PATH}" MATCHES ".*dune-common.*"))
-    string(REPLACE  ${CMAKE_PROJECT_NAME} dune-common dune-common_DIR
-      ${PROJECT_BINARY_DIR})
+if(NOT (dune-common_DIR OR dune-common_ROOT OR "${CMAKE_PREFIX_PATH}" MATCHES ".*dune-common.*"))
+  string(REPLACE ${CMAKE_PROJECT_NAME} dune-common dune-common_DIR ${PROJECT_BINARY_DIR})
 endif()
 
 # dune-common
 find_package(dune-common REQUIRED)
-list(APPEND CMAKE_MODULE_PATH
-     "${PROJECT_SOURCE_DIR}/cmake/modules"
-     "${dune-common_MODULE_PATH}")
+list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules" "${dune-common_MODULE_PATH}")
 include(DuneMacros)
 
 # dune-xt-common
 find_package(dune-xt-common REQUIRED)
-list(APPEND CMAKE_MODULE_PATH
-     "${dune-xt-common_MODULE_PATH}")
+list(APPEND CMAKE_MODULE_PATH "${dune-xt-common_MODULE_PATH}")
 include(DuneUtils)
 
 # start a dune project with information from dune.module
 dune_project()
-dune_enable_all_packages(INCLUDE_DIRS ${dune-xt-grid_SOURCE_DIR}/dune
-                         MODULE_LIBRARIES dunextgrid
-                         )
+dune_enable_all_packages(INCLUDE_DIRS ${dune-xt-grid_SOURCE_DIR}/dune MODULE_LIBRARIES dunextgrid)
 
 add_header_listing()
 make_dependent_modules_sys_included()
 
-add_subdirectory(dune)
-add_subdirectory(doc)
-
 include(DuneXTInstallPythonPackage)
-# this symlinks all files in python/ to the binary dir and install into the virtualenv from there
-# thereby making the compiled extensions directly usable from the venv
+# this symlinks all files in python/ to the binary dir and install into the virtualenv from there thereby making the
+# compiled extensions directly usable from the venv
 dune_xt_install_python_package(PATH python)
 include_dependent_binary_python_dirs()
 # do not change order here
-if(dune-pybindxi_FOUND)
-  add_subdirectory(python)
-endif()
+add_subdirectory(python)
+dxt_add_make_dependent_bindings(dune-xt-common dune-xt-la)
+
+# this needs to come after the python install so we can use it in test generation
+add_subdirectory(dune)
+add_subdirectory(doc)
 
 # enable headercheck
 add_definitions("-DENABLE_HEADERCHECK=1")
diff --git a/LICENSE b/LICENSE
index 990294eb92bf1801e2ccb11e5d692b728fc40b39..6e7d9726b2420c73404fd6ea444cdbb60c096d12 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -8,6 +9,7 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 BSD 2-Clause License
 --------------------
diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
index 8277c0479ecced11e64df89e87d46edc891f6ab5..aa80082e74d0f9cabef38bf07b094b79b4e4b333 100644
--- a/cmake/modules/CMakeLists.txt
+++ b/cmake/modules/CMakeLists.txt
@@ -1,13 +1,19 @@
-    # This file is part of the dune-xt-grid project:
+# ~~~
+# This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
 # License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
 # Authors:
 #   Felix Schindler (2016 - 2017)
 #   Rene Milk       (2018)
+# ~~~
+
+# This file is part of the dune-xt-grid project: https://github.com/dune-community/dune-xt-grid Copyright 2009-2018
+# dune-xt-grid developers and contributors. All rights reserved. License: Dual licensed as BSD 2-Clause License
+# (http://opensource.org/licenses/BSD-2-Clause) Authors: Felix Schindler (2016 - 2017) Rene Milk       (2018)
 #
-#      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
-#          with "runtime exception" (http://www.dune-project.org/license.html)
+# or  GPL-2.0+ (http://opensource.org/licenses/gpl-license) with "runtime exception" (http://www.dune-
+# project.org/license.html)
 
 set(modules "DuneXtGrid.cmake")
 
diff --git a/cmake/modules/DuneXtGridMacros.cmake b/cmake/modules/DuneXtGridMacros.cmake
index b4726d3d4da850d10ea5fd267491648064e7d884..09252349c6e47ac8731818a88403254f1eab6ef5 100644
--- a/cmake/modules/DuneXtGridMacros.cmake
+++ b/cmake/modules/DuneXtGridMacros.cmake
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -10,6 +11,7 @@
 #          with "runtime exception" (http://www.dune-project.org/license.html)
 #
 # File for module specific CMake tests.
+# ~~~
 
 set(DUNE_GRID_EXPERIMENTAL_GRID_EXTENSIONS TRUE)
 
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index b3329d789939ce616b04e746162a05e42e7bfc9a..feeaba226d61ae1a1fab482d56e55acec55f0abe 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -8,5 +9,6 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 add_subdirectory(doxygen)
diff --git a/doc/doxygen/CMakeLists.txt b/doc/doxygen/CMakeLists.txt
index 18f4da751e881c84e6ff84405151e21a2a2ae7bc..7c85c8cb3aea4417635a489bbb22ea7e14f2b171 100644
--- a/doc/doxygen/CMakeLists.txt
+++ b/doc/doxygen/CMakeLists.txt
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -10,5 +11,6 @@
 #          with "runtime exception" (http://www.dune-project.org/license.html)
 #
 # shortcut for creating the Doxyfile.in and Doxyfile
+# ~~~
 
 add_doxygen_target()
diff --git a/doc/doxygen/Doxylocal b/doc/doxygen/Doxylocal
index aa105494fcd84c4e426ef92b1df1803e984d9b94..7101f15093d274a8eef276e9c3e87cb95b5719f6 100644
--- a/doc/doxygen/Doxylocal
+++ b/doc/doxygen/Doxylocal
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -11,6 +12,7 @@
 #
 # This file contains local changes to the doxygen configuration
 # please us '+=' to add file/directories to the lists
+# ~~~
 
 # The INPUT tag can be used to specify the files and/or directories that contain
 # documented source files. You may enter file names like "myfile.cpp" or
diff --git a/dune-xt-grid.pc.in b/dune-xt-grid.pc.in
index 17c2014053b9acbd415ad5d9b2d031b37700ea48..878cab80aceaff8ee07086ecfdcf132d36a82bf4 100644
--- a/dune-xt-grid.pc.in
+++ b/dune-xt-grid.pc.in
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -8,6 +9,7 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 prefix=@prefix@
 exec_prefix=@exec_prefix@
diff --git a/dune.module b/dune.module
index 3e178e377444251ebf432a24063adb4ad8763739..3385085bdfa2bf853d18cbbf059ff626498a63e9 100644
--- a/dune.module
+++ b/dune.module
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -8,6 +9,7 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 Module: dune-xt-grid
 Version: 2.5.0-dev
diff --git a/dune/CMakeLists.txt b/dune/CMakeLists.txt
index 372e815a7f42129dfc57d894f68939122fe12cd3..60f6b235605700a419e89db27e80566b82dfc7a4 100644
--- a/dune/CMakeLists.txt
+++ b/dune/CMakeLists.txt
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -8,5 +9,6 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 add_subdirectory(xt)
diff --git a/dune/xt/CMakeLists.txt b/dune/xt/CMakeLists.txt
index 9d6de856fc2223e2ef41316361512b8090dc1176..c164728cc7b4f00ef1fb577ef134aa9ff2356d93 100644
--- a/dune/xt/CMakeLists.txt
+++ b/dune/xt/CMakeLists.txt
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -9,6 +10,7 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 add_subdirectory(grid)
 
diff --git a/dune/xt/grid/CMakeLists.txt b/dune/xt/grid/CMakeLists.txt
index 8dddd8d46cc1536ca3b9ddfd71c238a0c57c54c0..e18e0a491518a669723ba27d57649de47aface14 100644
--- a/dune/xt/grid/CMakeLists.txt
+++ b/dune/xt/grid/CMakeLists.txt
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -9,26 +10,27 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 set(lib_dune_xt_grid_sources boundaryinfo/interfaces.cc)
 
 if(DUNE_XT_WITH_PYTHON_BINDINGS)
   list(APPEND lib_dune_xt_grid_sources
-       gridprovider/cube.lib/alu_2d_simplex_conforming.cc
-       gridprovider/cube.lib/yasp_1d_equidistant_offset.cc
-       gridprovider/cube.lib/yasp_2d_equidistant_offset.cc
-       gridprovider/cube.lib/yasp_3d_equidistant_offset.cc
-       gridprovider/provider.lib/alu_2d_simplex_conforming.cc
-       gridprovider/provider.lib/yasp_1d_equidistant_offset.cc
-       gridprovider/provider.lib/yasp_2d_equidistant_offset.cc
-       gridprovider/provider.lib/yasp_3d_equidistant_offset.cc
-       walker.lib/alu_2d_simplex_conforming.cc
-       walker.lib/yasp_1d_equidistant_offset.cc
-       walker.lib/yasp_2d_equidistant_offset.cc
-       walker.lib/yasp_3d_equidistant_offset.cc)
+              gridprovider/cube.lib/alu_2d_simplex_conforming.cc
+              gridprovider/cube.lib/yasp_1d_equidistant_offset.cc
+              gridprovider/cube.lib/yasp_2d_equidistant_offset.cc
+              gridprovider/cube.lib/yasp_3d_equidistant_offset.cc
+              gridprovider/provider.lib/alu_2d_simplex_conforming.cc
+              gridprovider/provider.lib/yasp_1d_equidistant_offset.cc
+              gridprovider/provider.lib/yasp_2d_equidistant_offset.cc
+              gridprovider/provider.lib/yasp_3d_equidistant_offset.cc
+              walker.lib/alu_2d_simplex_conforming.cc
+              walker.lib/yasp_1d_equidistant_offset.cc
+              walker.lib/yasp_2d_equidistant_offset.cc
+              walker.lib/yasp_3d_equidistant_offset.cc)
 endif()
 dune_library_add_sources(dunextgrid SOURCES ${lib_dune_xt_grid_sources})
 add_dune_alberta_flags(GRIDDIM 1 SOURCE_ONLY dunextgrid)
 
 include_directories(SYSTEM ${DUNE_XT_COMMON_TEST_DIR}/gtest)
-add_subdirectory(test EXCLUDE_FROM_ALL )
+add_subdirectory(test EXCLUDE_FROM_ALL)
diff --git a/dune/xt/grid/boundaryinfo/alldirichlet.hh b/dune/xt/grid/boundaryinfo/alldirichlet.hh
index c5cd9e7213767e4dfe20645252e11ae931e97ae7..51db6dc8ada035c0e09148ead1b4861a48faadd3 100644
--- a/dune/xt/grid/boundaryinfo/alldirichlet.hh
+++ b/dune/xt/grid/boundaryinfo/alldirichlet.hh
@@ -16,7 +16,7 @@
 #include <dune/xt/common/memory.hh>
 
 #include "interfaces.hh"
-#include "types.hh"
+#include <dune/xt/grid/boundaryinfo/types.hh>
 
 namespace Dune {
 namespace XT {
diff --git a/dune/xt/grid/boundaryinfo/allneumann.hh b/dune/xt/grid/boundaryinfo/allneumann.hh
index 4fdf156bc6a77f23a5960cd70b4ff57f52354e65..954cf91948d96d6fd771fcfc568f7871438bd1a2 100644
--- a/dune/xt/grid/boundaryinfo/allneumann.hh
+++ b/dune/xt/grid/boundaryinfo/allneumann.hh
@@ -16,7 +16,7 @@
 #include <dune/xt/common/memory.hh>
 
 #include "interfaces.hh"
-#include "types.hh"
+#include <dune/xt/grid/boundaryinfo/types.hh>
 
 namespace Dune {
 namespace XT {
diff --git a/dune/xt/grid/boundaryinfo/allreflecting.hh b/dune/xt/grid/boundaryinfo/allreflecting.hh
index 0af339339672616089bf76491a977788478f1116..8ffea05abfb7262eefec0dbc5fc89842aa1128c2 100644
--- a/dune/xt/grid/boundaryinfo/allreflecting.hh
+++ b/dune/xt/grid/boundaryinfo/allreflecting.hh
@@ -16,7 +16,7 @@
 #include <dune/xt/common/memory.hh>
 
 #include "interfaces.hh"
-#include "types.hh"
+#include <dune/xt/grid/boundaryinfo/types.hh>
 
 namespace Dune {
 namespace XT {
diff --git a/dune/xt/grid/boundaryinfo/boundarysegment.hh b/dune/xt/grid/boundaryinfo/boundarysegment.hh
index e1440ced19486d09846e9a87f7aa24d6c1c13692..80a9bd506eea002705a581fd31d8a4086964a53f 100644
--- a/dune/xt/grid/boundaryinfo/boundarysegment.hh
+++ b/dune/xt/grid/boundaryinfo/boundarysegment.hh
@@ -15,7 +15,7 @@
 #include <dune/xt/common/configuration.hh>
 
 #include "interfaces.hh"
-#include "types.hh"
+#include <dune/xt/grid/boundaryinfo/types.hh>
 
 namespace Dune {
 namespace XT {
diff --git a/dune/xt/grid/boundaryinfo/factory.hh b/dune/xt/grid/boundaryinfo/factory.hh
index 16b7138dbfb16221f2d9f8cd9ba5a401e088bda0..a4dbd254fcd2ee4c417f9cf7e1e5ca7c7dd09c7b 100644
--- a/dune/xt/grid/boundaryinfo/factory.hh
+++ b/dune/xt/grid/boundaryinfo/factory.hh
@@ -5,7 +5,7 @@
 //      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 //          with "runtime exception" (http://www.dune-project.org/license.html)
 // Authors:
-//   Felix Schindler (2016 - 2017)
+//   Felix Schindler (2016 - 2018)
 //   Rene Milk       (2016, 2018)
 
 #ifndef DUNE_XT_GRID_BOUNDARYINFO_FACTORY_HH
diff --git a/dune/xt/grid/boundaryinfo/interfaces.hh b/dune/xt/grid/boundaryinfo/interfaces.hh
index f71ce3e0ad4b528f1d689f101c0f7f99f02bc233..51e14866dac39628ca72f324caba3272cb090ec1 100644
--- a/dune/xt/grid/boundaryinfo/interfaces.hh
+++ b/dune/xt/grid/boundaryinfo/interfaces.hh
@@ -5,9 +5,9 @@
 //      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 //          with "runtime exception" (http://www.dune-project.org/license.html)
 // Authors:
-//   Felix Schindler (2016 - 2017)
+//   Felix Schindler (2016 - 2018)
 //   Rene Milk       (2016, 2018)
-//   Tobias Leibner  (2016 - 2017)
+//   Tobias Leibner  (2016 - 2018)
 
 #ifndef DUNE_XT_GRID_BOUNDARYINFO_INTERFACE_HH
 #define DUNE_XT_GRID_BOUNDARYINFO_INTERFACE_HH
@@ -51,11 +51,6 @@ private:
 }; // class BoundaryType
 
 
-#if (defined(BOOST_CLANG) && BOOST_CLANG) || (defined(BOOST_GCC) && BOOST_GCC)
-#pragma GCC diagnostic pop
-#endif
-
-
 std::ostream& operator<<(std::ostream& out, const BoundaryType& type);
 
 
@@ -83,6 +78,10 @@ public:
 }; // class BoundaryInfo
 
 
+#if (defined(BOOST_CLANG) && BOOST_CLANG) || (defined(BOOST_GCC) && BOOST_GCC)
+#pragma GCC diagnostic pop
+#endif
+
 } // namespace Grid
 } // namespace XT
 } // namespace Dune
diff --git a/dune/xt/grid/boundaryinfo/normalbased.hh b/dune/xt/grid/boundaryinfo/normalbased.hh
index 0a65041b98c7e3162d4c92009ef73b834ab9979b..8cc2b906d7bd038e39e38390946f83c9e0bfefc9 100644
--- a/dune/xt/grid/boundaryinfo/normalbased.hh
+++ b/dune/xt/grid/boundaryinfo/normalbased.hh
@@ -5,9 +5,9 @@
 //      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 //          with "runtime exception" (http://www.dune-project.org/license.html)
 // Authors:
-//   Felix Schindler (2016 - 2017)
+//   Felix Schindler (2016 - 2018)
 //   Rene Milk       (2016, 2018)
-//   Tobias Leibner  (2016 - 2017)
+//   Tobias Leibner  (2016 - 2018)
 
 #ifndef DUNE_XT_GRID_BOUNDARYINFO_NORMALBASED_HH
 #define DUNE_XT_GRID_BOUNDARYINFO_NORMALBASED_HH
@@ -20,7 +20,7 @@
 #include <dune/xt/grid/exceptions.hh>
 
 #include "interfaces.hh"
-#include "types.hh"
+#include <dune/xt/grid/boundaryinfo/types.hh>
 
 namespace Dune {
 namespace XT {
@@ -163,13 +163,13 @@ public:
       if (XT::Common::FloatCmp::eq(existing_normal, normalized_normal, tol_))
         DUNE_THROW(InvalidStateException, "Given normals are too close for given tolerance '" << tol_ << "'!");
     }
-    normal_to_type_map_.emplace(normal, std::move(boundary_type));
+    normal_to_type_map_.emplace(normal, std::shared_ptr<BoundaryType>(std::move(boundary_type)));
   } // ... void register_new_normal(...)
 
   const BoundaryType& type(const IntersectionType& intersection) const override final
   {
     if (!intersection.boundary())
-      return no_boundary_;
+      return no_boundary;
     const WorldType outer_normal = intersection.centerUnitOuterNormal();
     for (const auto& normal_and_type_pair : normal_to_type_map_) {
       const auto& normal = normal_and_type_pair.first;
@@ -183,7 +183,6 @@ public:
 private:
   const DomainFieldType tol_;
   const std::unique_ptr<BoundaryType> default_boundary_type_;
-  const NoBoundary no_boundary_;
   std::unordered_map<WorldType, std::shared_ptr<BoundaryType>> normal_to_type_map_;
 }; // class NormalBasedBoundaryInfo
 #if (defined(BOOST_CLANG) && BOOST_CLANG) || (defined(BOOST_GCC) && BOOST_GCC)
diff --git a/dune/xt/grid/boundaryinfo/types.hh b/dune/xt/grid/boundaryinfo/types.hh
index 8312b60fc238b4e028be53695f1bed8191d86a87..fa96e27c6c2a7886b67e6730a7c9697bae1b6e8f 100644
--- a/dune/xt/grid/boundaryinfo/types.hh
+++ b/dune/xt/grid/boundaryinfo/types.hh
@@ -5,9 +5,9 @@
 //      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 //          with "runtime exception" (http://www.dune-project.org/license.html)
 // Authors:
-//   Felix Schindler (2016 - 2017)
+//   Felix Schindler (2016 - 2018)
 //   Rene Milk       (2016, 2018)
-//   Tobias Leibner  (2016 - 2017)
+//   Tobias Leibner  (2016 - 2018)
 
 #ifndef DUNE_XT_GRID_BOUNDARYINFO_TYPES_HH
 #define DUNE_XT_GRID_BOUNDARYINFO_TYPES_HH
@@ -196,7 +196,7 @@ public:
 #endif
 
 
-static BoundaryType* make_boundary_type(const std::string& id)
+static inline BoundaryType* make_boundary_type(const std::string& id)
 {
   if (id == NoBoundary().id())
     return new NoBoundary();
@@ -227,6 +227,12 @@ static BoundaryType* make_boundary_type(const std::string& id)
 } // ... make_boundary_type(...)
 
 
+static constexpr AbsorbingBoundary absorbing_boundary{};
+static constexpr DirichletBoundary dirichlet_boundary{};
+static constexpr NoBoundary no_boundary{};
+static constexpr ReflectingBoundary reflecting_boundary{};
+
+
 } // namespace Grid
 } // namespace XT
 } // namespace Dune
diff --git a/dune/xt/grid/dd/subdomains/factory.hh b/dune/xt/grid/dd/subdomains/factory.hh
index aeb7d845a9838014164f9ab6bd0a1a65daaf1349..a3441c850836e527574e441bcd2fdb37431cd38a 100644
--- a/dune/xt/grid/dd/subdomains/factory.hh
+++ b/dune/xt/grid/dd/subdomains/factory.hh
@@ -7,6 +7,7 @@
 // Authors:
 //   Felix Schindler (2017)
 //   Rene Milk       (2017 - 2018)
+//   Tobias Leibner  (2018)
 
 #ifndef DUNE_XT_GRID_DD_SUBDOMAINS_FACTORY_HH
 #define DUNE_XT_GRID_DD_SUBDOMAINS_FACTORY_HH
@@ -245,7 +246,7 @@ private:
                             CodimSizesType& localCodimSizes)
     {
       // loop over all codim c subentities of the entity
-      for (size_t i = 0; i < entity.subEntities(c); ++i) {
+      for (unsigned int i = 0; i < entity.subEntities(c); ++i) {
         const auto codimCentity = entity.template subEntity<c>(i);
         const GeometryType& geometryType = codimCentity.type();
         const IndexType globalIndex = factory.globalGridView_->indexSet().index(codimCentity);
@@ -908,7 +909,7 @@ struct SubdomainGridFactory<GridType>::Add<c, c>
                           typename SubdomainGridFactory<GridType>::CodimSizesType& localCodimSizes)
   {
     // loop over all codim c subentities of this entity
-    for (size_t i = 0; i < entity.subEntities(c); ++i) {
+    for (unsigned int i = 0; i < entity.subEntities(c); ++i) {
       const auto codimCentity = entity.template subEntity<c>(i);
       const SubdomainGridFactory<GridType>::GeometryType& geometryType = codimCentity.type();
       const typename SubdomainGridFactory<GridType>::IndexType globalIndex =
diff --git a/dune/xt/grid/exceptions.hh b/dune/xt/grid/exceptions.hh
index 2b4c1bc7bceb500770861d7407107dec73973e81..396059abceae1636fff25efbf463bf0b942f68f4 100644
--- a/dune/xt/grid/exceptions.hh
+++ b/dune/xt/grid/exceptions.hh
@@ -1,11 +1,12 @@
 // This file is part of the dune-xt-grid project:
 //   https://github.com/dune-community/dune-xt-grid
-// Copyright 2009-2017 dune-xt-grid developers and contributors. All rights reserved.
+// Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
 // License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
 //      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 //          with "runtime exception" (http://www.dune-project.org/license.html)
 // Authors:
-//   Felix Schindler (2018)
+//   Felix Schindler (2016 - 2018)
+//   Rene Milk       (2016, 2018)
 
 #ifndef DUNE_XT_GRID_EXCEPTIONS_HH
 #define DUNE_XT_GRID_EXCEPTIONS_HH
diff --git a/dune/xt/grid/gridprovider/cube.hh b/dune/xt/grid/gridprovider/cube.hh
index f1d8aab80690382baf1061d8a822117e85e47ec7..b31c84fdffdacd3a8912a24421d0677667942487 100644
--- a/dune/xt/grid/gridprovider/cube.hh
+++ b/dune/xt/grid/gridprovider/cube.hh
@@ -10,7 +10,7 @@
 //   Felix Schindler  (2012 - 2017)
 //   Kirsten Weber    (2012)
 //   Rene Milk        (2012 - 2018)
-//   Tobias Leibner   (2014, 2016)
+//   Tobias Leibner   (2014, 2016, 2018)
 
 #ifndef DUNE_XT_GRID_GRIDPROVIDER_CUBE_HH
 #define DUNE_XT_GRID_GRIDPROVIDER_CUBE_HH
@@ -134,11 +134,12 @@ public:
   }
 
   /// TODO simplex grid overlap_size
-  static GridProvider<GridType> create(const FieldVector<typename GridType::ctype, GridType::dimension>& lower_left,
-                                       const FieldVector<typename GridType::ctype, GridType::dimension>& upper_right,
-                                       const std::array<unsigned int, GridType::dimension>& num_elements,
-                                       const unsigned int num_refinements,
-                                       const std::array<unsigned int, GridType::dimension>& overlap_size)
+  static GridProvider<GridType, none_t>
+  create(const FieldVector<typename GridType::ctype, GridType::dimension>& lower_left,
+         const FieldVector<typename GridType::ctype, GridType::dimension>& upper_right,
+         const std::array<unsigned int, GridType::dimension>& num_elements,
+         const unsigned int num_refinements,
+         const std::array<unsigned int, GridType::dimension>& overlap_size)
   {
     static const int variant = ElementVariant<GridType>::id;
     static_assert(variant == 1 || variant == 2, "variant has to be 1 or 2!");
@@ -170,10 +171,10 @@ public:
 #endif
       grd_ptr->postAdapt();
     grd_ptr->loadBalance();
-    return GridProvider<GridType>(grd_ptr);
+    return GridProvider<GridType, none_t>(grd_ptr);
   } // ... create(...)
 
-  static GridProvider<GridType>
+  static GridProvider<GridType, none_t>
   create(const typename GridType::ctype& lower_left,
          const typename GridType::ctype& upper_right,
          const unsigned int num_elements =
@@ -190,7 +191,7 @@ public:
                   Common::make_array<unsigned int, GridType::dimension>(overlap_size));
   } // ... create(...)
 
-  static GridProvider<GridType> create(const Common::Configuration& cfg = cube_gridprovider_default_config())
+  static GridProvider<GridType, none_t> create(const Common::Configuration& cfg = cube_gridprovider_default_config())
   {
     static const size_t d = GridType::dimension;
     auto overlap_size =
@@ -237,7 +238,7 @@ public:
 
 
 template <class GridType>
-typename std::enable_if<is_grid<GridType>::value, GridProvider<GridType>>::type make_cube_grid(
+typename std::enable_if<is_grid<GridType>::value, GridProvider<GridType, none_t>>::type make_cube_grid(
     const FieldVector<typename GridType::ctype, GridType::dimension>& lower_left,
     const FieldVector<typename GridType::ctype, GridType::dimension>& upper_right,
     const std::array<unsigned int, GridType::dimension> num_elements =
@@ -253,7 +254,7 @@ typename std::enable_if<is_grid<GridType>::value, GridProvider<GridType>>::type
 
 
 template <class GridType>
-typename std::enable_if<is_grid<GridType>::value, GridProvider<GridType>>::type
+typename std::enable_if<is_grid<GridType>::value, GridProvider<GridType, none_t>>::type
 make_cube_grid(const typename GridType::ctype& lower_left,
                const typename GridType::ctype& upper_right,
                const unsigned int num_elements =
@@ -269,7 +270,7 @@ make_cube_grid(const typename GridType::ctype& lower_left,
 
 
 template <class GridType>
-typename std::enable_if<is_grid<GridType>::value, GridProvider<GridType>>::type
+typename std::enable_if<is_grid<GridType>::value, GridProvider<GridType, none_t>>::type
 make_cube_grid(const Common::Configuration& cfg = cube_gridprovider_default_config())
 {
   return CubeGridProviderFactory<GridType>::create(cfg);
diff --git a/dune/xt/grid/gridprovider/dgf.hh b/dune/xt/grid/gridprovider/dgf.hh
index b4317c71d46ba8f27b606c647915ca9d1eacf32c..ff9be69f40302794c99c2dcc8740e52e5102c936 100644
--- a/dune/xt/grid/gridprovider/dgf.hh
+++ b/dune/xt/grid/gridprovider/dgf.hh
@@ -68,12 +68,12 @@ public:
     return cfg;
   }
 
-  static GridProvider<GridType> create(const std::string& filename)
+  static GridProvider<GridType, none_t> create(const std::string& filename)
   {
-    return GridProvider<GridType>(GridPtr<GridType>(filename).release());
+    return GridProvider<GridType, none_t>(GridPtr<GridType>(filename).release());
   }
 
-  static GridProvider<GridType> create(const Common::Configuration& cfg = default_config())
+  static GridProvider<GridType, none_t> create(const Common::Configuration& cfg = default_config())
   {
     return create(cfg.get("filename", default_config().template get<std::string>("filename")));
   }
@@ -81,7 +81,7 @@ public:
 
 
 template <class GridType>
-typename std::enable_if<is_grid<GridType>::value, GridProvider<GridType>>::type
+typename std::enable_if<is_grid<GridType>::value, GridProvider<GridType, none_t>>::type
 make_dgf_grid(const std::string& filename)
 {
   return DgfGridProviderFactory<GridType>(filename);
@@ -89,7 +89,7 @@ make_dgf_grid(const std::string& filename)
 
 
 template <class GridType>
-typename std::enable_if<is_grid<GridType>::value, GridProvider<GridType>>::type
+typename std::enable_if<is_grid<GridType>::value, GridProvider<GridType, none_t>>::type
 make_dgf_grid(const Common::Configuration& cfg = DgfGridProviderFactory<GridType>::default_config())
 {
   return DgfGridProviderFactory<GridType>::create(cfg);
diff --git a/dune/xt/grid/gridprovider/eoc.hh b/dune/xt/grid/gridprovider/eoc.hh
index 55a7f9ef0968749c53616fdb4099cd33ca749d0e..7c382b2ec0035f462498535a4fd00ea4111559f1 100644
--- a/dune/xt/grid/gridprovider/eoc.hh
+++ b/dune/xt/grid/gridprovider/eoc.hh
@@ -7,6 +7,7 @@
 // Authors:
 //   Felix Schindler (2017)
 //   Rene Milk       (2016, 2018)
+//   Tobias Leibner  (2018)
 
 #ifndef DUNE_XT_GRID_PROVIDER_EOC_HH
 #define DUNE_XT_GRID_PROVIDER_EOC_HH
@@ -28,9 +29,9 @@ namespace Grid {
  *  means to obtain the real grid level corresponding to a refinement level.
  */
 template <class GridImp>
-class LevelBasedEOCGridProvider : public GridProvider<GridImp>
+class LevelBasedEOCGridProvider : public GridProvider<GridImp, none_t>
 {
-  typedef GridProvider<GridImp> BaseType;
+  typedef GridProvider<GridImp, none_t> BaseType;
 
 public:
   using typename BaseType::GridType;
@@ -101,7 +102,7 @@ private:
 template <class GridImp>
 class LeafBasedEOCGridProvider
 {
-  typedef GridProvider<GridImp> GridProviderType;
+  typedef GridProvider<GridImp, none_t> GridProviderType;
 
 public:
   typedef typename GridProviderType::GridType GridType;
@@ -127,7 +128,7 @@ public:
     return level_grids_.size() - 1;
   }
 
-  int level_of(const size_t refinement) const
+  int level_of(const size_t /*refinement*/) const
   {
     return -1;
   }
@@ -199,7 +200,7 @@ public:
     return level_grids_.size() - 1;
   }
 
-  int level_of(const size_t refinement) const
+  int level_of(const size_t /*refinement*/) const
   {
     return -1;
   }
@@ -240,7 +241,7 @@ private:
 }; // class DdSubdomainsBasedEOCGridProvider
 
 
-template <class G, class DdGrid = int>
+template <class G, class DdGrid = none_t>
 class EOCGridProvider : public LevelBasedEOCGridProvider<G>
 {
 public:
@@ -280,7 +281,7 @@ public:
 
 
 } // namespace Grid
-} // namespace Stuff
+} // namespace XT
 } // namespace Dune
 
 #endif // DUNE_XT_GRID_PROVIDER_EOC_HH
diff --git a/dune/xt/grid/gridprovider/factory.hh b/dune/xt/grid/gridprovider/factory.hh
index 3f2771fa7bbcbb9341d8b29975b1b40e67ef9cc9..8279bf5f4b8616849d68b5839bc1bf5532cb1e3b 100644
--- a/dune/xt/grid/gridprovider/factory.hh
+++ b/dune/xt/grid/gridprovider/factory.hh
@@ -50,10 +50,10 @@ class GridProviderFactory
       return Common::Configuration();
     }
 
-    static GridProvider<GridType> create(const Common::Configuration& /*cfg*/)
+    static GridProvider<GridType, none_t> create(const Common::Configuration& /*cfg*/)
     {
       DUNE_THROW(Common::Exceptions::internal_error, "This should not happen!");
-      return GridProvider<GridType>(nullptr);
+      return GridProvider<GridType, none_t>(nullptr);
     }
   }; // struct Helper
 
@@ -76,7 +76,7 @@ class GridProviderFactory
       return G::default_config();
     }
 
-    static GridProvider<GridType> create(const Common::Configuration& cfg)
+    static GridProvider<GridType, none_t> create(const Common::Configuration& cfg)
     {
       if (cfg.empty())
         return G::create();
@@ -104,7 +104,7 @@ class GridProviderFactory
   }
 
   template <class G>
-  static GridProvider<GridType> call_create(const Common::Configuration& cfg)
+  static GridProvider<GridType, none_t> call_create(const Common::Configuration& cfg)
   {
     return Helper<G, G::available>::create(cfg);
   }
@@ -154,13 +154,13 @@ public:
                                     << available_as_str());
   } // ... default_config(...)
 
-  static GridProvider<GridType> create(const Common::Configuration& config)
+  static GridProvider<GridType, none_t> create(const Common::Configuration& config)
   {
     return create(config.get<std::string>("type"), config);
   }
 
-  static GridProvider<GridType> create(const std::string& type = available()[0],
-                                       const Common::Configuration config = Common::Configuration())
+  static GridProvider<GridType, none_t> create(const std::string& type = available()[0],
+                                               const Common::Configuration config = Common::Configuration())
   {
     if (call_compare<CubeType>(type))
       return call_create<CubeType>(config);
diff --git a/dune/xt/grid/gridprovider/gmsh.hh b/dune/xt/grid/gridprovider/gmsh.hh
index f64d6263c5abd51318d592ba44383f03b13604f8..c711564e9fb78b3c9f61dfc1d2c76bebcaeac63a 100644
--- a/dune/xt/grid/gridprovider/gmsh.hh
+++ b/dune/xt/grid/gridprovider/gmsh.hh
@@ -82,12 +82,12 @@ public:
     return cfg;
   }
 
-  static GridProvider<GridType> create(const std::string& filename)
+  static GridProvider<GridType, none_t> create(const std::string& filename)
   {
-    return GridProvider<GridType>(GmshReader<GridType>::read(filename));
+    return GridProvider<GridType, none_t>(GmshReader<GridType>::read(filename));
   }
 
-  static GridProvider<GridType> create(const Common::Configuration& cfg = default_config())
+  static GridProvider<GridType, none_t> create(const Common::Configuration& cfg = default_config())
   {
     return create(cfg.get("filename", default_config().template get<std::string>("filename")));
   }
diff --git a/dune/xt/grid/gridprovider/provider.hh b/dune/xt/grid/gridprovider/provider.hh
index 3d363c81540153e6077d26b27d04508b95457ae4..d7943bce1e81ff5ffbed041071f60cc76640bc3e 100644
--- a/dune/xt/grid/gridprovider/provider.hh
+++ b/dune/xt/grid/gridprovider/provider.hh
@@ -36,10 +36,14 @@ namespace Dune {
 namespace XT {
 namespace Grid {
 
-template <class T>
-using DefaultDDGridImp = DD::SubdomainGrid<T>;
+struct none_t
+{
+  none_t() = delete;
+};
+
+using DefaultDDGridImp = none_t;
 
-template <class GridImp, typename DdGridImp = DefaultDDGridImp<GridImp>>
+template <class GridImp, typename DdGridImp = DefaultDDGridImp>
 class GridProvider
 {
   static_assert(is_grid<GridImp>::value, "");
diff --git a/dune/xt/grid/grids.hh b/dune/xt/grid/grids.hh
index 40163f423cdf9d893568406bf62057503095cc73..f22c403f7420504066e617a2223e5568a499a91d 100644
--- a/dune/xt/grid/grids.hh
+++ b/dune/xt/grid/grids.hh
@@ -7,6 +7,7 @@
 // Authors:
 //   Felix Schindler (2016 - 2018)
 //   Rene Milk       (2017 - 2018)
+//   TiKeil          (2018)
 //   Tobias Leibner  (2016)
 
 #ifndef DUNE_XT_GRID_GRIDS_HH
diff --git a/dune/xt/grid/information.hh b/dune/xt/grid/information.hh
index 6415173a3a70dfc44f504144a9ec467865bf2c9e..5db15ca8f6126ecf5d8ac97ba6271c7e23fb3630 100644
--- a/dune/xt/grid/information.hh
+++ b/dune/xt/grid/information.hh
@@ -8,7 +8,7 @@
 //   Felix Schindler (2012, 2014 - 2017)
 //   Rene Milk       (2012 - 2018)
 //   Sven Kaulmann   (2014)
-//   Tobias Leibner  (2014, 2016 - 2017)
+//   Tobias Leibner  (2014, 2016 - 2018)
 
 #ifndef DUNE_XT_GRID_INFORMATION_HH
 #define DUNE_XT_GRID_INFORMATION_HH
@@ -89,8 +89,7 @@ size_t max_number_of_neighbors(const GridLayerType& grid_layer)
   for (auto&& entity : elements(grid_layer)) {
     size_t neighbours = 0;
     const auto intersection_it_end = grid_layer.iend(entity);
-    for (DUNE_UNUSED auto intersection_it = grid_layer.ibegin(entity); intersection_it != intersection_it_end;
-         ++intersection_it) {
+    for (auto intersection_it = grid_layer.ibegin(entity); intersection_it != intersection_it_end; ++intersection_it) {
       ++neighbours;
     }
     maxNeighbours = std::max(maxNeighbours, neighbours);
diff --git a/dune/xt/grid/layers.hh b/dune/xt/grid/layers.hh
index ed80b3fd3f6b60c42c42c5977e89759c57c36e80..fe6f54c722fde2749d0c4d093025c854d4299940 100644
--- a/dune/xt/grid/layers.hh
+++ b/dune/xt/grid/layers.hh
@@ -8,13 +8,14 @@
 //   Andreas Buhr    (2014)
 //   Felix Schindler (2014 - 2017)
 //   Rene Milk       (2014 - 2018)
-//   Tobias Leibner  (2017)
+//   Tobias Leibner  (2017 - 2018)
 
 #ifndef DUNE_XT_GRID_LAYERS_HH
 #define DUNE_XT_GRID_LAYERS_HH
 
 #include <dune/common/typetraits.hh>
 
+#include <dune/xt/common/fixed_map.hh>
 #include <dune/xt/grid/type_traits.hh>
 #include <dune/xt/grid/view/subdomain/view.hh>
 
@@ -49,6 +50,16 @@ enum class Layers
   dd_subdomain_coupling
 };
 
+namespace {
+const XT::Common::FixedMap<Layers, std::string, 7> layer_names{
+    {Layers::adaptive_leaf, "adaptive_leaf"},
+    {Layers::leaf, "leaf"},
+    {Layers::level, "level"},
+    {Layers::dd_subdomain, "dd_subdomain"},
+    {Layers::dd_subdomain_oversampled, "dd_subdomain_oversampled"},
+    {Layers::dd_subdomain_boundary, "dd_subdomain_boundary"},
+    {Layers::dd_subdomain_coupling, "dd_subdomain_coupling"}};
+}
 
 namespace internal {
 
@@ -178,7 +189,7 @@ struct Layer<GridType, Layers::dd_subdomain_coupling, Backends::view, DdGridType
   typedef typename DD::SubdomainGrid<GridType>::CouplingGridViewType type;
 
   static type create(const GridType& /*grid*/,
-                     const int subdomain = 0,
+                     const int /*subdomain */ = 0,
                      const std::shared_ptr<DD::SubdomainGrid<GridType>> dd_grid = nullptr)
   {
     static_assert(std::is_same<DdGridType, DD::SubdomainGrid<GridType>>::value,
@@ -187,7 +198,7 @@ struct Layer<GridType, Layers::dd_subdomain_coupling, Backends::view, DdGridType
     return dd_grid->coupling_grid_view(0, 0);
   }
 
-  static type create(GridType& /*grid*/, const int subdomain, std::shared_ptr<DD::SubdomainGrid<GridType>> dd_grid)
+  static type create(GridType& /*grid*/, const int /*subdomain*/, std::shared_ptr<DD::SubdomainGrid<GridType>> dd_grid)
   {
     static_assert(std::is_same<DdGridType, DD::SubdomainGrid<GridType>>::value,
                   "Only available for DD::SubdomainGrid!");
diff --git a/dune/xt/grid/parallel/partitioning/ranged.hh b/dune/xt/grid/parallel/partitioning/ranged.hh
index 419cd63934c40bb096939053cbb477d0def505bf..e06dafcff07cd57050aa6c76c58ee17a21f92b64 100644
--- a/dune/xt/grid/parallel/partitioning/ranged.hh
+++ b/dune/xt/grid/parallel/partitioning/ranged.hh
@@ -7,7 +7,7 @@
 // Authors:
 //   Felix Schindler (2017)
 //   Rene Milk       (2017 - 2018)
-//   Tobias Leibner  (2017)
+//   Tobias Leibner  (2017 - 2018)
 
 #ifndef DUNE_XT_GRID_PARALLEL_PARTITIONING_RANGED_HH
 #define DUNE_XT_GRID_PARALLEL_PARTITIONING_RANGED_HH
diff --git a/dune/xt/grid/test/.gitignore b/dune/xt/grid/test/.gitignore
index bbf419026dd6a44676ea607ced46dded4abcf144..7ccfd849ec19f87995c30e01a9ab2685c44b600c 100644
--- a/dune/xt/grid/test/.gitignore
+++ b/dune/xt/grid/test/.gitignore
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -9,6 +10,7 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 test_validation
 *.o
diff --git a/dune/xt/grid/test/CMakeLists.txt b/dune/xt/grid/test/CMakeLists.txt
index aa6e79487932fbeb64119ee75a799fd1e090c846..bd100d2dfab3fea983698cc5945836cc14e118c9 100644
--- a/dune/xt/grid/test/CMakeLists.txt
+++ b/dune/xt/grid/test/CMakeLists.txt
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -9,32 +10,34 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 enable_testing()
 
 # link grid files
-dune_symlink_to_source_files(FILES gmsh_2d_simplices.msh dgf_1d_interval.dgf dgf_2d_interval.dgf dgf_3d_interval.dgf dgf_4d_interval.dgf)
+dune_symlink_to_source_files(
+  FILES gmsh_2d_simplices.msh dgf_1d_interval.dgf dgf_2d_interval.dgf dgf_3d_interval.dgf dgf_4d_interval.dgf)
 
 dxt_exclude_from_headercheck(dd_subdomains_cube.hh)
 
-BEGIN_TESTCASES(dunextgrid)
+begin_testcases(dunextgrid)
 
-END_TESTCASES()
+end_testcases()
 
 # load binning setup from file
 if(DEFINED ENV{TRAVIS})
-    include("builder_definitions.cmake")
+  include("builder_definitions.cmake")
 endif(DEFINED ENV{TRAVIS})
 
 add_dune_alberta_flags(GRIDDIM 2 test_dd_glued_2d)
 add_dune_alberta_flags(GRIDDIM 3 test_dd_glued_3d)
 
-foreach (test ${dxt_test_binaries})
-  if (${test} MATCHES alberta_1d)
+foreach(test ${dxt_test_binaries})
+  if(${test} MATCHES alberta_1d)
     add_dune_alberta_flags(GRIDDIM 1 ${test})
-  elseif (${test} MATCHES alberta_2d)
+  elseif(${test} MATCHES alberta_2d)
     add_dune_alberta_flags(GRIDDIM 2 ${test})
-  elseif (${test} MATCHES alberta_3d)
+  elseif(${test} MATCHES alberta_3d)
     add_dune_alberta_flags(GRIDDIM 3 ${test})
   endif()
 endforeach()
diff --git a/dune/xt/grid/test/builder_definitions.cmake b/dune/xt/grid/test/builder_definitions.cmake
index b166656e1c293bf1a798e4a27be1bad8ea4ae468..1ac16a84c9053f5c286bf45ee15cd4a27e4bc45d 100644
--- a/dune/xt/grid/test/builder_definitions.cmake
+++ b/dune/xt/grid/test/builder_definitions.cmake
@@ -1,82 +1,80 @@
 set(DXT_BIN_COUNT "2" CACHE STRING "number of bins for test targets" )
-add_custom_target(test_binaries_builder_0 DEPENDS headercheck__dune_xt_grid_boundaryinfo.hh headercheck__dune_xt_grid_boundaryinfo_boundarysegment.hh headercheck__dune_xt_grid_boundaryinfo_factory.hh headercheck__dune_xt_grid_boundaryinfo_interfaces.hh headercheck__dune_xt_grid_boundaryinfo_normalbased.hh headercheck__dune_xt_grid_capabilities.hh headercheck__dune_xt_grid_functors_boundary-detector.hh headercheck__dune_xt_grid_functors_interfaces.hh headercheck__dune_xt_grid_gridprovider_cube.lib.hh headercheck__dune_xt_grid_gridprovider_eoc.hh headercheck__dune_xt_grid_gridprovider_factory.hh headercheck__dune_xt_grid_gridprovider_provider.lib.hh headercheck__dune_xt_grid_grids.hh headercheck__dune_xt_grid_information.hh headercheck__dune_xt_grid_intersection.hh headercheck__dune_xt_grid_layers.hh headercheck__dune_xt_grid_output_entity_visualization.hh headercheck__dune_xt_grid_output_pgf.hh headercheck__dune_xt_grid_parallel_partitioning_ranged-internal.hh headercheck__dune_xt_grid_view_from-part.hh headercheck__dune_xt_grid_view_subdomain_entity-iterator.hh headercheck__dune_xt_grid_view_subdomain_view.hh headercheck__dune_xt_grid_walker.lib.hh headercheck__dune_xt_grid_walker_filters.hh headercheck__dune_xt_grid_walker_wrapper.hh headercheck__python_dune_xt_grid_boundaryinfo.bindings.hh headercheck__python_dune_xt_grid_grids.bindings.hh headercheck__python_dune_xt_grid_walker.bindings.hh test_boundaryinfo_factory_alberta_2d test_boundaryinfo_factory_alberta_3d test_boundaryinfo_factory_alu_2d_0000 test_boundaryinfo_factory_alu_3d_0001 test_boundaryinfo_factory_ug_3d test_boundaryinfo_factory_yasp_3d test_cube_gridprovider_alberta_3d test_cube_gridprovider_alu_2d_0000 test_cube_gridprovider_alu_3d_0000 test_cube_gridprovider_alu_3d_0001 test_cube_gridprovider_ug_2d test_cube_gridprovider_ug_3d test_dd_glued_3d test_dd_subdomains_cube_1d_alberta_1d test_dd_subdomains_cube_1d_oned_1d test_dd_subdomains_cube_1d_yasp_1d test_dd_subdomains_cube_2d_alu_2d_0000 test_dd_subdomains_cube_2d_alu_2d_0002 test_dd_subdomains_cube_2d_yasp_2d test_dd_subdomains_cube_3d_alu_3d_0001 test_dd_subdomains_cube_3d_alu_3d_0002 test_dgf_gridprovider_alberta_2d test_dgf_gridprovider_alberta_3d test_dgf_gridprovider_alu_2d_0000 test_dgf_gridprovider_alu_2d_0001 test_dgf_gridprovider_alu_3d_0000 test_dgf_gridprovider_alu_3d_0001 test_dgf_gridprovider_ug_3d test_dgf_gridprovider_yasp_3d test_empty test_gmsh_gridprovider_alu_2d_0002 test_information_1d test_information_2d test_periodic_gridview_alberta_1d test_periodic_gridview_alu_2d_0000 test_periodic_gridview_alu_3d_0002 test_periodic_gridview_ug_2d test_periodic_gridview_yasp_2d test_search_alberta_1d test_search_alberta_2d test_search_alberta_3d test_search_alu_2d_0000 test_search_alu_2d_0001 test_search_alu_3d_0001 test_search_alu_3d_0002 test_search_ug_2d test_search_ug_3d test_search_yasp_3d)
-set_tests_properties(test_boundaryinfo_factory_alberta_2d_0004 PROPERTIES LABELS "builder_0")
+add_custom_target(test_binaries_builder_0 DEPENDS headercheck__dune_xt_grid_boundaryinfo.hh headercheck__dune_xt_grid_boundaryinfo_boundarysegment.hh headercheck__dune_xt_grid_boundaryinfo_normalbased.hh headercheck__dune_xt_grid_boundaryinfo_types.hh headercheck__dune_xt_grid_capabilities.hh headercheck__dune_xt_grid_dd_glued.hh headercheck__dune_xt_grid_dd_subdomains_factory.hh headercheck__dune_xt_grid_dd_subdomains_grid.hh headercheck__dune_xt_grid_exceptions.hh headercheck__dune_xt_grid_gridprovider_cube.lib.hh headercheck__dune_xt_grid_gridprovider_dgf.hh headercheck__dune_xt_grid_gridprovider_eoc.hh headercheck__dune_xt_grid_gridprovider_factory.hh headercheck__dune_xt_grid_gridprovider_provider.lib.hh headercheck__dune_xt_grid_grids.hh headercheck__dune_xt_grid_intersection.hh headercheck__dune_xt_grid_layers.hh headercheck__dune_xt_grid_output_pgf.hh headercheck__dune_xt_grid_parallel_partitioning_ranged-internal.hh headercheck__dune_xt_grid_test_dd_glued.hh headercheck__dune_xt_grid_view_from-part.hh headercheck__dune_xt_grid_walk_functors.hh headercheck__dune_xt_grid_walker.hh headercheck__dune_xt_grid_walker_apply-on.hh headercheck__dune_xt_grid_walker_functors.hh headercheck__dune_xt_grid_walker_wrapper.hh headercheck__python_dune_xt_grid_gridprovider.hh headercheck__python_dune_xt_grid_walker.bindings.hh test_boundaryinfo_factory_alberta_1d test_boundaryinfo_factory_alberta_3d test_boundaryinfo_factory_alu_2d_0000 test_boundaryinfo_factory_alu_2d_0002 test_boundaryinfo_factory_alu_3d_0000 test_boundaryinfo_factory_alu_3d_0002 test_boundaryinfo_factory_yasp_2d test_cube_gridprovider_alberta_1d test_cube_gridprovider_alberta_2d test_cube_gridprovider_alberta_3d test_cube_gridprovider_alu_2d_0000 test_cube_gridprovider_alu_3d_0000 test_cube_gridprovider_alu_3d_0001 test_cube_gridprovider_ug_2d test_cube_gridprovider_yasp_1d test_cube_gridprovider_yasp_2d test_dd_glued_3d test_dd_subdomains_cube_1d_yasp_1d test_dd_subdomains_cube_2d_alu_2d_0000 test_dd_subdomains_cube_2d_alu_2d_0002 test_dd_subdomains_cube_2d_yasp_2d test_dd_subdomains_cube_3d_alberta_3d test_dd_subdomains_cube_3d_alu_3d_0001 test_dd_subdomains_cube_3d_alu_3d_0002 test_dgf_gridprovider_alu_2d_0000 test_dgf_gridprovider_alu_2d_0001 test_dgf_gridprovider_alu_3d_0000 test_dgf_gridprovider_alu_3d_0001 test_dgf_gridprovider_yasp_2d test_dgf_gridprovider_yasp_3d test_empty test_gmsh_gridprovider_alu_2d_0002 test_information_1d test_information_2d test_periodic_gridview_alberta_2d test_periodic_gridview_alu_2d_0000 test_periodic_gridview_alu_3d_0002 test_periodic_gridview_yasp_2d test_periodic_gridview_yasp_3d test_search_alberta_2d test_search_alu_2d_0000 test_search_alu_3d_0001 test_search_alu_3d_0002 test_search_ug_2d test_search_ug_3d test_search_yasp_1d test_search_yasp_2d)
+set_tests_properties(test_boundaryinfo_factory_alberta_1d_0003 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_boundaryinfo_factory_alberta_3d_0005 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_boundaryinfo_factory_alu_2d_0000_0006 PROPERTIES LABELS "builder_0")
-set_tests_properties(test_boundaryinfo_factory_alu_3d_0001_0010 PROPERTIES LABELS "builder_0")
-set_tests_properties(test_boundaryinfo_factory_ug_3d_0013 PROPERTIES LABELS "builder_0")
-set_tests_properties(test_boundaryinfo_factory_yasp_3d_0002 PROPERTIES LABELS "builder_0")
+set_tests_properties(test_boundaryinfo_factory_alu_2d_0002_0008 PROPERTIES LABELS "builder_0")
+set_tests_properties(test_boundaryinfo_factory_alu_3d_0000_0009 PROPERTIES LABELS "builder_0")
+set_tests_properties(test_boundaryinfo_factory_alu_3d_0002_0011 PROPERTIES LABELS "builder_0")
+set_tests_properties(test_boundaryinfo_factory_yasp_2d_0001 PROPERTIES LABELS "builder_0")
+set_tests_properties(test_cube_gridprovider_alberta_1d_0003 PROPERTIES LABELS "builder_0")
+set_tests_properties(test_cube_gridprovider_alberta_2d_0004 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_cube_gridprovider_alberta_3d_0005 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_cube_gridprovider_alu_2d_0000_0006 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_cube_gridprovider_alu_3d_0000_0009 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_cube_gridprovider_alu_3d_0001_0010 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_cube_gridprovider_ug_2d_0012 PROPERTIES LABELS "builder_0")
-set_tests_properties(test_cube_gridprovider_ug_3d_0013 PROPERTIES LABELS "builder_0")
+set_tests_properties(test_cube_gridprovider_yasp_1d_0000 PROPERTIES LABELS "builder_0")
+set_tests_properties(test_cube_gridprovider_yasp_2d_0001 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_dd_glued_3d PROPERTIES LABELS "builder_0")
-set_tests_properties(test_dd_subdomains_cube_1d_alberta_1d_0002 PROPERTIES LABELS "builder_0")
-set_tests_properties(test_dd_subdomains_cube_1d_oned_1d_0000 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_dd_subdomains_cube_1d_yasp_1d_0001 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_dd_subdomains_cube_2d_alu_2d_0000_0002 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_dd_subdomains_cube_2d_alu_2d_0002_0004 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_dd_subdomains_cube_2d_yasp_2d_0000 PROPERTIES LABELS "builder_0")
+set_tests_properties(test_dd_subdomains_cube_3d_alberta_3d_0001 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_dd_subdomains_cube_3d_alu_3d_0001_0003 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_dd_subdomains_cube_3d_alu_3d_0002_0004 PROPERTIES LABELS "builder_0")
-set_tests_properties(test_dgf_gridprovider_alberta_2d_0004 PROPERTIES LABELS "builder_0")
-set_tests_properties(test_dgf_gridprovider_alberta_3d_0005 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_dgf_gridprovider_alu_2d_0000_0006 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_dgf_gridprovider_alu_2d_0001_0007 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_dgf_gridprovider_alu_3d_0000_0009 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_dgf_gridprovider_alu_3d_0001_0010 PROPERTIES LABELS "builder_0")
-set_tests_properties(test_dgf_gridprovider_ug_3d_0013 PROPERTIES LABELS "builder_0")
+set_tests_properties(test_dgf_gridprovider_yasp_2d_0001 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_dgf_gridprovider_yasp_3d_0002 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_empty PROPERTIES LABELS "builder_0")
 set_tests_properties(test_gmsh_gridprovider_alu_2d_0002_0002 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_information_1d_information_1d PROPERTIES LABELS "builder_0")
 set_tests_properties(test_information_2d_information_2d PROPERTIES LABELS "builder_0")
-set_tests_properties(test_periodic_gridview_alberta_1d_nonperiodic_rectangle_simplex_0000 test_periodic_gridview_alberta_1d_nonperiodic_unit_cube_simplex_0000 test_periodic_gridview_alberta_1d_partially_periodic_rectangle_simplex_0000 test_periodic_gridview_alberta_1d_partially_periodic_unit_cube_simplex_0000 test_periodic_gridview_alberta_1d_periodic_rectangle_simplex_0000 test_periodic_gridview_alberta_1d_periodic_unit_cube_simplex_0000 PROPERTIES LABELS "builder_0")
+set_tests_properties(test_periodic_gridview_alberta_2d_nonperiodic_rectangle_simplex_0001 test_periodic_gridview_alberta_2d_nonperiodic_unit_cube_simplex_0001 test_periodic_gridview_alberta_2d_partially_periodic_rectangle_simplex_0001 test_periodic_gridview_alberta_2d_partially_periodic_unit_cube_simplex_0001 test_periodic_gridview_alberta_2d_periodic_rectangle_simplex_0001 test_periodic_gridview_alberta_2d_periodic_unit_cube_simplex_0001 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_periodic_gridview_alu_2d_0000_nonperiodic_rectangle_cube_0003 test_periodic_gridview_alu_2d_0000_nonperiodic_unit_cube_cube_0003 test_periodic_gridview_alu_2d_0000_partially_periodic_rectangle_cube_0003 test_periodic_gridview_alu_2d_0000_partially_periodic_unit_cube_cube_0003 test_periodic_gridview_alu_2d_0000_periodic_rectangle_cube_0003 test_periodic_gridview_alu_2d_0000_periodic_unit_cube_cube_0003 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_periodic_gridview_alu_3d_0002_nonperiodic_rectangle_simplex_0006 test_periodic_gridview_alu_3d_0002_nonperiodic_unit_cube_simplex_0006 test_periodic_gridview_alu_3d_0002_partially_periodic_rectangle_simplex_0006 test_periodic_gridview_alu_3d_0002_partially_periodic_unit_cube_simplex_0006 test_periodic_gridview_alu_3d_0002_periodic_rectangle_simplex_0006 test_periodic_gridview_alu_3d_0002_periodic_unit_cube_simplex_0006 PROPERTIES LABELS "builder_0")
-set_tests_properties(test_periodic_gridview_ug_2d_nonperiodic_rectangle_cube_0005 test_periodic_gridview_ug_2d_nonperiodic_rectangle_simplex_0007 test_periodic_gridview_ug_2d_nonperiodic_unit_cube_cube_0005 test_periodic_gridview_ug_2d_nonperiodic_unit_cube_simplex_0007 test_periodic_gridview_ug_2d_partially_periodic_rectangle_cube_0005 test_periodic_gridview_ug_2d_partially_periodic_rectangle_simplex_0007 test_periodic_gridview_ug_2d_partially_periodic_unit_cube_cube_0005 test_periodic_gridview_ug_2d_partially_periodic_unit_cube_simplex_0007 test_periodic_gridview_ug_2d_periodic_rectangle_cube_0005 test_periodic_gridview_ug_2d_periodic_rectangle_simplex_0007 test_periodic_gridview_ug_2d_periodic_unit_cube_cube_0005 test_periodic_gridview_ug_2d_periodic_unit_cube_simplex_0007 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_periodic_gridview_yasp_2d_nonperiodic_rectangle_cube_0001 test_periodic_gridview_yasp_2d_nonperiodic_unit_cube_cube_0001 test_periodic_gridview_yasp_2d_partially_periodic_rectangle_cube_0001 test_periodic_gridview_yasp_2d_partially_periodic_unit_cube_cube_0001 test_periodic_gridview_yasp_2d_periodic_rectangle_cube_0001 test_periodic_gridview_yasp_2d_periodic_unit_cube_cube_0001 PROPERTIES LABELS "builder_0")
-set_tests_properties(test_search_alberta_1d_0003 PROPERTIES LABELS "builder_0")
+set_tests_properties(test_periodic_gridview_yasp_3d_nonperiodic_rectangle_cube_0002 test_periodic_gridview_yasp_3d_nonperiodic_unit_cube_cube_0002 test_periodic_gridview_yasp_3d_partially_periodic_rectangle_cube_0002 test_periodic_gridview_yasp_3d_partially_periodic_unit_cube_cube_0002 test_periodic_gridview_yasp_3d_periodic_rectangle_cube_0002 test_periodic_gridview_yasp_3d_periodic_unit_cube_cube_0002 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_search_alberta_2d_0004 PROPERTIES LABELS "builder_0")
-set_tests_properties(test_search_alberta_3d_0005 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_search_alu_2d_0000_0006 PROPERTIES LABELS "builder_0")
-set_tests_properties(test_search_alu_2d_0001_0007 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_search_alu_3d_0001_0010 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_search_alu_3d_0002_0011 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_search_ug_2d_0012 PROPERTIES LABELS "builder_0")
 set_tests_properties(test_search_ug_3d_0013 PROPERTIES LABELS "builder_0")
-set_tests_properties(test_search_yasp_3d_0002 PROPERTIES LABELS "builder_0")
-add_custom_target(test_binaries_builder_1 DEPENDS headercheck__dune_xt_grid_boundaryinfo_alldirichlet.hh headercheck__dune_xt_grid_boundaryinfo_allneumann.hh headercheck__dune_xt_grid_boundaryinfo_allreflecting.hh headercheck__dune_xt_grid_boundaryinfo_types.hh headercheck__dune_xt_grid_dd_glued.hh headercheck__dune_xt_grid_dd_subdomains_factory.hh headercheck__dune_xt_grid_dd_subdomains_grid.hh headercheck__dune_xt_grid_entity.hh headercheck__dune_xt_grid_exceptions.hh headercheck__dune_xt_grid_functors_bounding-box.hh headercheck__dune_xt_grid_functors_lambda.hh headercheck__dune_xt_grid_functors_refinement.hh headercheck__dune_xt_grid_gridprovider.hh headercheck__dune_xt_grid_gridprovider_cube.hh headercheck__dune_xt_grid_gridprovider_dgf.hh headercheck__dune_xt_grid_gridprovider_gmsh.hh headercheck__dune_xt_grid_gridprovider_provider.hh headercheck__dune_xt_grid_gridprovider_starcd.hh headercheck__dune_xt_grid_parallel_partitioning_ranged.hh headercheck__dune_xt_grid_search.hh headercheck__dune_xt_grid_structuredgridfactory.hh headercheck__dune_xt_grid_test_dd_glued.hh headercheck__dune_xt_grid_test_provider.hh headercheck__dune_xt_grid_type_traits.hh headercheck__dune_xt_grid_view_gridview2gridpart.hh headercheck__dune_xt_grid_view_periodic.hh headercheck__dune_xt_grid_view_subdomain_indexset.hh headercheck__dune_xt_grid_view_subdomain_intersection-iterator.hh headercheck__dune_xt_grid_view_subdomain_intersection-wrapper.hh headercheck__dune_xt_grid_walker.hh headercheck__python_dune_xt_grid_layers.bindings.hh test_boundaryinfo_factory_alberta_1d test_boundaryinfo_factory_alu_2d_0001 test_boundaryinfo_factory_alu_2d_0002 test_boundaryinfo_factory_alu_3d_0000 test_boundaryinfo_factory_alu_3d_0002 test_boundaryinfo_factory_ug_2d test_boundaryinfo_factory_yasp_1d test_boundaryinfo_factory_yasp_2d test_cube_gridprovider_alberta_1d test_cube_gridprovider_alberta_2d test_cube_gridprovider_alu_2d_0001 test_cube_gridprovider_alu_2d_0002 test_cube_gridprovider_alu_3d_0002 test_cube_gridprovider_yasp_1d test_cube_gridprovider_yasp_2d test_cube_gridprovider_yasp_3d test_dd_glued_2d test_dd_subdomains_cube_2d_alberta_2d test_dd_subdomains_cube_2d_alu_2d_0001 test_dd_subdomains_cube_3d_alberta_3d test_dd_subdomains_cube_3d_alu_3d_0000 test_dd_subdomains_cube_3d_yasp_3d test_dgf_gridprovider_alberta_1d test_dgf_gridprovider_alu_2d_0002 test_dgf_gridprovider_alu_3d_0002 test_dgf_gridprovider_ug_2d test_dgf_gridprovider_yasp_1d test_dgf_gridprovider_yasp_2d test_gmsh_gridprovider_alu_2d_0000 test_gmsh_gridprovider_alu_2d_0001 test_gmsh_gridprovider_alu_3d_0000 test_gmsh_gridprovider_alu_3d_0001 test_gmsh_gridprovider_alu_3d_0002 test_information_3d test_output_pgf test_periodic_gridview_alberta_2d test_periodic_gridview_alberta_3d test_periodic_gridview_alu_2d_0001 test_periodic_gridview_alu_2d_0002 test_periodic_gridview_alu_3d_0000 test_periodic_gridview_alu_3d_0001 test_periodic_gridview_ug_3d test_periodic_gridview_yasp_1d test_periodic_gridview_yasp_3d test_search_alu_2d_0002 test_search_alu_3d_0000 test_search_yasp_1d test_search_yasp_2d)
-set_tests_properties(test_boundaryinfo_factory_alberta_1d_0003 PROPERTIES LABELS "builder_1")
+set_tests_properties(test_search_yasp_1d_0000 PROPERTIES LABELS "builder_0")
+set_tests_properties(test_search_yasp_2d_0001 PROPERTIES LABELS "builder_0")
+add_custom_target(test_binaries_builder_1 DEPENDS headercheck__dune_xt_grid_boundaryinfo_alldirichlet.hh headercheck__dune_xt_grid_boundaryinfo_allneumann.hh headercheck__dune_xt_grid_boundaryinfo_allreflecting.hh headercheck__dune_xt_grid_boundaryinfo_factory.hh headercheck__dune_xt_grid_boundaryinfo_interfaces.hh headercheck__dune_xt_grid_entity.hh headercheck__dune_xt_grid_gridprovider.hh headercheck__dune_xt_grid_gridprovider_cube.hh headercheck__dune_xt_grid_gridprovider_gmsh.hh headercheck__dune_xt_grid_gridprovider_provider.hh headercheck__dune_xt_grid_gridprovider_starcd.hh headercheck__dune_xt_grid_information.hh headercheck__dune_xt_grid_output_entity_visualization.hh headercheck__dune_xt_grid_parallel_partitioning_ranged.hh headercheck__dune_xt_grid_rangegenerators.hh headercheck__dune_xt_grid_search.hh headercheck__dune_xt_grid_structuredgridfactory.hh headercheck__dune_xt_grid_test_provider.hh headercheck__dune_xt_grid_type_traits.hh headercheck__dune_xt_grid_view_periodic.hh headercheck__dune_xt_grid_view_subdomain_entity-iterator.hh headercheck__dune_xt_grid_view_subdomain_indexset.hh headercheck__dune_xt_grid_view_subdomain_intersection-iterator.hh headercheck__dune_xt_grid_view_subdomain_intersection-wrapper.hh headercheck__dune_xt_grid_view_subdomain_view.hh headercheck__dune_xt_grid_walker.lib.hh headercheck__python_dune_xt_grid_boundaryinfo.bindings.hh headercheck__python_dune_xt_grid_grids.bindings.hh headercheck__python_dune_xt_grid_layers.bindings.hh test_boundaryinfo_factory_alberta_2d test_boundaryinfo_factory_alu_2d_0001 test_boundaryinfo_factory_alu_3d_0001 test_boundaryinfo_factory_ug_2d test_boundaryinfo_factory_ug_3d test_boundaryinfo_factory_yasp_1d test_boundaryinfo_factory_yasp_3d test_cube_gridprovider_alu_2d_0001 test_cube_gridprovider_alu_2d_0002 test_cube_gridprovider_alu_3d_0002 test_cube_gridprovider_ug_3d test_cube_gridprovider_yasp_3d test_dd_glued_2d test_dd_subdomains_cube_1d_alberta_1d test_dd_subdomains_cube_1d_oned_1d test_dd_subdomains_cube_2d_alberta_2d test_dd_subdomains_cube_2d_alu_2d_0001 test_dd_subdomains_cube_3d_alu_3d_0000 test_dd_subdomains_cube_3d_yasp_3d test_dgf_gridprovider_alberta_1d test_dgf_gridprovider_alberta_2d test_dgf_gridprovider_alberta_3d test_dgf_gridprovider_alu_2d_0002 test_dgf_gridprovider_alu_3d_0002 test_dgf_gridprovider_ug_2d test_dgf_gridprovider_ug_3d test_dgf_gridprovider_yasp_1d test_gmsh_gridprovider_alu_2d_0000 test_gmsh_gridprovider_alu_2d_0001 test_gmsh_gridprovider_alu_3d_0000 test_gmsh_gridprovider_alu_3d_0001 test_gmsh_gridprovider_alu_3d_0002 test_information_3d test_output_pgf test_periodic_gridview_alberta_1d test_periodic_gridview_alberta_3d test_periodic_gridview_alu_2d_0001 test_periodic_gridview_alu_2d_0002 test_periodic_gridview_alu_3d_0000 test_periodic_gridview_alu_3d_0001 test_periodic_gridview_ug_2d test_periodic_gridview_ug_3d test_periodic_gridview_yasp_1d test_search_alberta_1d test_search_alberta_3d test_search_alu_2d_0001 test_search_alu_2d_0002 test_search_alu_3d_0000 test_search_yasp_3d)
+set_tests_properties(test_boundaryinfo_factory_alberta_2d_0004 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_boundaryinfo_factory_alu_2d_0001_0007 PROPERTIES LABELS "builder_1")
-set_tests_properties(test_boundaryinfo_factory_alu_2d_0002_0008 PROPERTIES LABELS "builder_1")
-set_tests_properties(test_boundaryinfo_factory_alu_3d_0000_0009 PROPERTIES LABELS "builder_1")
-set_tests_properties(test_boundaryinfo_factory_alu_3d_0002_0011 PROPERTIES LABELS "builder_1")
+set_tests_properties(test_boundaryinfo_factory_alu_3d_0001_0010 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_boundaryinfo_factory_ug_2d_0012 PROPERTIES LABELS "builder_1")
+set_tests_properties(test_boundaryinfo_factory_ug_3d_0013 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_boundaryinfo_factory_yasp_1d_0000 PROPERTIES LABELS "builder_1")
-set_tests_properties(test_boundaryinfo_factory_yasp_2d_0001 PROPERTIES LABELS "builder_1")
-set_tests_properties(test_cube_gridprovider_alberta_1d_0003 PROPERTIES LABELS "builder_1")
-set_tests_properties(test_cube_gridprovider_alberta_2d_0004 PROPERTIES LABELS "builder_1")
+set_tests_properties(test_boundaryinfo_factory_yasp_3d_0002 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_cube_gridprovider_alu_2d_0001_0007 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_cube_gridprovider_alu_2d_0002_0008 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_cube_gridprovider_alu_3d_0002_0011 PROPERTIES LABELS "builder_1")
-set_tests_properties(test_cube_gridprovider_yasp_1d_0000 PROPERTIES LABELS "builder_1")
-set_tests_properties(test_cube_gridprovider_yasp_2d_0001 PROPERTIES LABELS "builder_1")
+set_tests_properties(test_cube_gridprovider_ug_3d_0013 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_cube_gridprovider_yasp_3d_0002 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_dd_glued_2d PROPERTIES LABELS "builder_1")
+set_tests_properties(test_dd_subdomains_cube_1d_alberta_1d_0002 PROPERTIES LABELS "builder_1")
+set_tests_properties(test_dd_subdomains_cube_1d_oned_1d_0000 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_dd_subdomains_cube_2d_alberta_2d_0001 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_dd_subdomains_cube_2d_alu_2d_0001_0003 PROPERTIES LABELS "builder_1")
-set_tests_properties(test_dd_subdomains_cube_3d_alberta_3d_0001 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_dd_subdomains_cube_3d_alu_3d_0000_0002 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_dd_subdomains_cube_3d_yasp_3d_0000 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_dgf_gridprovider_alberta_1d_0003 PROPERTIES LABELS "builder_1")
+set_tests_properties(test_dgf_gridprovider_alberta_2d_0004 PROPERTIES LABELS "builder_1")
+set_tests_properties(test_dgf_gridprovider_alberta_3d_0005 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_dgf_gridprovider_alu_2d_0002_0008 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_dgf_gridprovider_alu_3d_0002_0011 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_dgf_gridprovider_ug_2d_0012 PROPERTIES LABELS "builder_1")
+set_tests_properties(test_dgf_gridprovider_ug_3d_0013 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_dgf_gridprovider_yasp_1d_0000 PROPERTIES LABELS "builder_1")
-set_tests_properties(test_dgf_gridprovider_yasp_2d_0001 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_gmsh_gridprovider_alu_2d_0000_0000 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_gmsh_gridprovider_alu_2d_0001_0001 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_gmsh_gridprovider_alu_3d_0000_0003 PROPERTIES LABELS "builder_1")
@@ -84,16 +82,18 @@ set_tests_properties(test_gmsh_gridprovider_alu_3d_0001_0004 PROPERTIES LABELS "
 set_tests_properties(test_gmsh_gridprovider_alu_3d_0002_0005 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_information_3d_information_3d PROPERTIES LABELS "builder_1")
 set_tests_properties(test_output_pgf PROPERTIES LABELS "builder_1")
-set_tests_properties(test_periodic_gridview_alberta_2d_nonperiodic_rectangle_simplex_0001 test_periodic_gridview_alberta_2d_nonperiodic_unit_cube_simplex_0001 test_periodic_gridview_alberta_2d_partially_periodic_rectangle_simplex_0001 test_periodic_gridview_alberta_2d_partially_periodic_unit_cube_simplex_0001 test_periodic_gridview_alberta_2d_periodic_rectangle_simplex_0001 test_periodic_gridview_alberta_2d_periodic_unit_cube_simplex_0001 PROPERTIES LABELS "builder_1")
+set_tests_properties(test_periodic_gridview_alberta_1d_nonperiodic_rectangle_simplex_0000 test_periodic_gridview_alberta_1d_nonperiodic_unit_cube_simplex_0000 test_periodic_gridview_alberta_1d_partially_periodic_rectangle_simplex_0000 test_periodic_gridview_alberta_1d_partially_periodic_unit_cube_simplex_0000 test_periodic_gridview_alberta_1d_periodic_rectangle_simplex_0000 test_periodic_gridview_alberta_1d_periodic_unit_cube_simplex_0000 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_periodic_gridview_alberta_3d_nonperiodic_rectangle_simplex_0002 test_periodic_gridview_alberta_3d_nonperiodic_unit_cube_simplex_0002 test_periodic_gridview_alberta_3d_partially_periodic_rectangle_simplex_0002 test_periodic_gridview_alberta_3d_partially_periodic_unit_cube_simplex_0002 test_periodic_gridview_alberta_3d_periodic_rectangle_simplex_0002 test_periodic_gridview_alberta_3d_periodic_unit_cube_simplex_0002 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_periodic_gridview_alu_2d_0001_nonperiodic_rectangle_simplex_0003 test_periodic_gridview_alu_2d_0001_nonperiodic_unit_cube_simplex_0003 test_periodic_gridview_alu_2d_0001_partially_periodic_rectangle_simplex_0003 test_periodic_gridview_alu_2d_0001_partially_periodic_unit_cube_simplex_0003 test_periodic_gridview_alu_2d_0001_periodic_rectangle_simplex_0003 test_periodic_gridview_alu_2d_0001_periodic_unit_cube_simplex_0003 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_periodic_gridview_alu_2d_0002_nonperiodic_rectangle_simplex_0004 test_periodic_gridview_alu_2d_0002_nonperiodic_unit_cube_simplex_0004 test_periodic_gridview_alu_2d_0002_partially_periodic_rectangle_simplex_0004 test_periodic_gridview_alu_2d_0002_partially_periodic_unit_cube_simplex_0004 test_periodic_gridview_alu_2d_0002_periodic_rectangle_simplex_0004 test_periodic_gridview_alu_2d_0002_periodic_unit_cube_simplex_0004 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_periodic_gridview_alu_3d_0000_nonperiodic_rectangle_cube_0004 test_periodic_gridview_alu_3d_0000_nonperiodic_unit_cube_cube_0004 test_periodic_gridview_alu_3d_0000_partially_periodic_rectangle_cube_0004 test_periodic_gridview_alu_3d_0000_partially_periodic_unit_cube_cube_0004 test_periodic_gridview_alu_3d_0000_periodic_rectangle_cube_0004 test_periodic_gridview_alu_3d_0000_periodic_unit_cube_cube_0004 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_periodic_gridview_alu_3d_0001_nonperiodic_rectangle_simplex_0005 test_periodic_gridview_alu_3d_0001_nonperiodic_unit_cube_simplex_0005 test_periodic_gridview_alu_3d_0001_partially_periodic_rectangle_simplex_0005 test_periodic_gridview_alu_3d_0001_partially_periodic_unit_cube_simplex_0005 test_periodic_gridview_alu_3d_0001_periodic_rectangle_simplex_0005 test_periodic_gridview_alu_3d_0001_periodic_unit_cube_simplex_0005 PROPERTIES LABELS "builder_1")
+set_tests_properties(test_periodic_gridview_ug_2d_nonperiodic_rectangle_cube_0005 test_periodic_gridview_ug_2d_nonperiodic_rectangle_simplex_0007 test_periodic_gridview_ug_2d_nonperiodic_unit_cube_cube_0005 test_periodic_gridview_ug_2d_nonperiodic_unit_cube_simplex_0007 test_periodic_gridview_ug_2d_partially_periodic_rectangle_cube_0005 test_periodic_gridview_ug_2d_partially_periodic_rectangle_simplex_0007 test_periodic_gridview_ug_2d_partially_periodic_unit_cube_cube_0005 test_periodic_gridview_ug_2d_partially_periodic_unit_cube_simplex_0007 test_periodic_gridview_ug_2d_periodic_rectangle_cube_0005 test_periodic_gridview_ug_2d_periodic_rectangle_simplex_0007 test_periodic_gridview_ug_2d_periodic_unit_cube_cube_0005 test_periodic_gridview_ug_2d_periodic_unit_cube_simplex_0007 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_periodic_gridview_ug_3d_nonperiodic_rectangle_cube_0006 test_periodic_gridview_ug_3d_nonperiodic_rectangle_simplex_0008 test_periodic_gridview_ug_3d_nonperiodic_unit_cube_cube_0006 test_periodic_gridview_ug_3d_nonperiodic_unit_cube_simplex_0008 test_periodic_gridview_ug_3d_partially_periodic_rectangle_cube_0006 test_periodic_gridview_ug_3d_partially_periodic_rectangle_simplex_0008 test_periodic_gridview_ug_3d_partially_periodic_unit_cube_cube_0006 test_periodic_gridview_ug_3d_partially_periodic_unit_cube_simplex_0008 test_periodic_gridview_ug_3d_periodic_rectangle_cube_0006 test_periodic_gridview_ug_3d_periodic_rectangle_simplex_0008 test_periodic_gridview_ug_3d_periodic_unit_cube_cube_0006 test_periodic_gridview_ug_3d_periodic_unit_cube_simplex_0008 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_periodic_gridview_yasp_1d_nonperiodic_rectangle_cube_0000 test_periodic_gridview_yasp_1d_nonperiodic_unit_cube_cube_0000 test_periodic_gridview_yasp_1d_partially_periodic_rectangle_cube_0000 test_periodic_gridview_yasp_1d_partially_periodic_unit_cube_cube_0000 test_periodic_gridview_yasp_1d_periodic_rectangle_cube_0000 test_periodic_gridview_yasp_1d_periodic_unit_cube_cube_0000 PROPERTIES LABELS "builder_1")
-set_tests_properties(test_periodic_gridview_yasp_3d_nonperiodic_rectangle_cube_0002 test_periodic_gridview_yasp_3d_nonperiodic_unit_cube_cube_0002 test_periodic_gridview_yasp_3d_partially_periodic_rectangle_cube_0002 test_periodic_gridview_yasp_3d_partially_periodic_unit_cube_cube_0002 test_periodic_gridview_yasp_3d_periodic_rectangle_cube_0002 test_periodic_gridview_yasp_3d_periodic_unit_cube_cube_0002 PROPERTIES LABELS "builder_1")
+set_tests_properties(test_search_alberta_1d_0003 PROPERTIES LABELS "builder_1")
+set_tests_properties(test_search_alberta_3d_0005 PROPERTIES LABELS "builder_1")
+set_tests_properties(test_search_alu_2d_0001_0007 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_search_alu_2d_0002_0008 PROPERTIES LABELS "builder_1")
 set_tests_properties(test_search_alu_3d_0000_0009 PROPERTIES LABELS "builder_1")
-set_tests_properties(test_search_yasp_1d_0000 PROPERTIES LABELS "builder_1")
-set_tests_properties(test_search_yasp_2d_0001 PROPERTIES LABELS "builder_1")
+set_tests_properties(test_search_yasp_3d_0002 PROPERTIES LABELS "builder_1")
diff --git a/dune/xt/grid/test/compiles_totals.pickle b/dune/xt/grid/test/compiles_totals.pickle
index ea5ba531c4055b29187f1474613e9ddd2a546c3d..e149890ba3f112956852c0029ddc60b6d8e4fcbd 100644
--- a/dune/xt/grid/test/compiles_totals.pickle
+++ b/dune/xt/grid/test/compiles_totals.pickle
@@ -1 +1,5 @@
-{"headercheck__dune_xt_grid_boundaryinfo.hh": 15.615983963012695, "headercheck__dune_xt_grid_boundaryinfo_alldirichlet.hh": 14.889521360397339, "headercheck__dune_xt_grid_boundaryinfo_allneumann.hh": 15.696208238601685, "headercheck__dune_xt_grid_boundaryinfo_allreflecting.hh": 0.05450081825256348, "headercheck__dune_xt_grid_boundaryinfo_boundarysegment.hh": 15.654795408248901, "headercheck__dune_xt_grid_boundaryinfo_factory.hh": 15.011301517486572, "headercheck__dune_xt_grid_boundaryinfo_interfaces.hh": 12.98918080329895, "headercheck__dune_xt_grid_boundaryinfo_normalbased.hh": 14.861575365066528, "headercheck__dune_xt_grid_boundaryinfo_types.hh": 13.068084239959717, "headercheck__dune_xt_grid_capabilities.hh": 5.508548259735107, "headercheck__dune_xt_grid_dd_glued.hh": 16.311400413513184, "headercheck__dune_xt_grid_dd_subdomains_factory.hh": 16.603410005569458, "headercheck__dune_xt_grid_dd_subdomains_grid.hh": 7.199793100357056, "headercheck__dune_xt_grid_entity.hh": 14.566489696502686, "headercheck__dune_xt_grid_exceptions.hh": 0.5797884464263916, "headercheck__dune_xt_grid_functors_boundary-detector.hh": 9.291746854782104, "headercheck__dune_xt_grid_functors_bounding-box.hh": 9.734697818756104, "headercheck__dune_xt_grid_functors_interfaces.hh": 9.169167518615723, "headercheck__dune_xt_grid_functors_lambda.hh": 9.13120436668396, "headercheck__dune_xt_grid_functors_refinement.hh": 9.796465635299683, "headercheck__dune_xt_grid_gridprovider.hh": 15.75350832939148, "headercheck__dune_xt_grid_gridprovider_cube.hh": 15.646630764007568, "headercheck__dune_xt_grid_gridprovider_cube.lib.hh": 15.668450832366943, "headercheck__dune_xt_grid_gridprovider_dgf.hh": 14.227550983428955, "headercheck__dune_xt_grid_gridprovider_eoc.hh": 15.803757905960083, "headercheck__dune_xt_grid_gridprovider_factory.hh": 19.475318431854248, "headercheck__dune_xt_grid_gridprovider_gmsh.hh": 15.500884532928467, "headercheck__dune_xt_grid_gridprovider_provider.hh": 15.338162422180176, "headercheck__dune_xt_grid_gridprovider_provider.lib.hh": 15.399278163909912, "headercheck__dune_xt_grid_gridprovider_starcd.hh": 17.104496955871582, "headercheck__dune_xt_grid_grids.hh": 5.7532057762146, "headercheck__dune_xt_grid_information.hh": 16.327180862426758, "headercheck__dune_xt_grid_intersection.hh": 17.47262454032898, "headercheck__dune_xt_grid_layers.hh": 6.588227272033691, "headercheck__dune_xt_grid_output_entity_visualization.hh": 16.429991722106934, "headercheck__dune_xt_grid_output_pgf.hh": 14.739186525344849, "headercheck__dune_xt_grid_parallel_partitioning_ranged-internal.hh": 6.21062707901001, "headercheck__dune_xt_grid_parallel_partitioning_ranged.hh": 6.125450372695923, "headercheck__dune_xt_grid_search.hh": 14.83984923362732, "headercheck__dune_xt_grid_structuredgridfactory.hh": 18.08464241027832, "headercheck__dune_xt_grid_test_dd_glued.hh": 16.351179122924805, "headercheck__dune_xt_grid_test_provider.hh": 15.94580864906311, "headercheck__dune_xt_grid_type_traits.hh": 6.2084269523620605, "headercheck__dune_xt_grid_view_from-part.hh": 6.13268256187439, "headercheck__dune_xt_grid_view_gridview2gridpart.hh": 0.04950451850891113, "headercheck__dune_xt_grid_view_periodic.hh": 15.664304971694946, "headercheck__dune_xt_grid_view_subdomain_entity-iterator.hh": 0.7993688583374023, "headercheck__dune_xt_grid_view_subdomain_indexset.hh": 6.4803078174591064, "headercheck__dune_xt_grid_view_subdomain_intersection-iterator.hh": 6.660834789276123, "headercheck__dune_xt_grid_view_subdomain_intersection-wrapper.hh": 0.971346378326416, "headercheck__dune_xt_grid_view_subdomain_view.hh": 0.0428006649017334, "headercheck__dune_xt_grid_walker.hh": 14.082605838775635, "headercheck__dune_xt_grid_walker.lib.hh": 14.158512592315674, "headercheck__dune_xt_grid_walker_filters.hh": 9.088605642318726, "headercheck__dune_xt_grid_walker_wrapper.hh": 14.561433553695679, "headercheck__python_dune_xt_grid_boundaryinfo.bindings.hh": 16.240068435668945, "headercheck__python_dune_xt_grid_grids.bindings.hh": 13.800297975540161, "headercheck__python_dune_xt_grid_layers.bindings.hh": 5.718413829803467, "headercheck__python_dune_xt_grid_walker.bindings.hh": 15.749167680740356, "test_boundaryinfo_factory_alberta_1d": 20.10128355026245, "test_boundaryinfo_factory_alberta_2d": 21.30738615989685, "test_boundaryinfo_factory_alberta_3d": 20.304391622543335, "test_boundaryinfo_factory_alu_2d_0000": 20.891586780548096, "test_boundaryinfo_factory_alu_2d_0001": 22.327872276306152, "test_boundaryinfo_factory_alu_2d_0002": 23.566327333450317, "test_boundaryinfo_factory_alu_3d_0000": 21.421977758407593, "test_boundaryinfo_factory_alu_3d_0001": 24.902809143066406, "test_boundaryinfo_factory_alu_3d_0002": 25.10480761528015, "test_boundaryinfo_factory_ug_2d": 26.813920736312866, "test_boundaryinfo_factory_ug_3d": 21.458252429962158, "test_boundaryinfo_factory_yasp_1d": 20.32856774330139, "test_boundaryinfo_factory_yasp_2d": 20.262175798416138, "test_boundaryinfo_factory_yasp_3d": 20.254600286483765, "test_cube_gridprovider_alberta_1d": 29.882335424423218, "test_cube_gridprovider_alberta_2d": 32.76775240898132, "test_cube_gridprovider_alberta_3d": 33.399218797683716, "test_cube_gridprovider_alu_2d_0000": 37.792232036590576, "test_cube_gridprovider_alu_2d_0001": 44.885122299194336, "test_cube_gridprovider_alu_2d_0002": 43.71287178993225, "test_cube_gridprovider_alu_3d_0000": 39.73737978935242, "test_cube_gridprovider_alu_3d_0001": 39.451533794403076, "test_cube_gridprovider_alu_3d_0002": 41.87690043449402, "test_cube_gridprovider_ug_2d": 31.361640453338623, "test_cube_gridprovider_ug_3d": 30.2545223236084, "test_cube_gridprovider_yasp_1d": 30.218368768692017, "test_cube_gridprovider_yasp_2d": 30.87869381904602, "test_cube_gridprovider_yasp_3d": 31.77970838546753, "test_dd_glued_2d": 47.59047198295593, "test_dd_glued_3d": 72.38096737861633, "test_dd_subdomains_cube_1d_alberta_1d": 32.65306234359741, "test_dd_subdomains_cube_1d_oned_1d": 30.95809245109558, "test_dd_subdomains_cube_1d_yasp_1d": 39.5734589099884, "test_dd_subdomains_cube_2d_alberta_2d": 33.47791790962219, "test_dd_subdomains_cube_2d_alu_2d_0000": 40.817832231521606, "test_dd_subdomains_cube_2d_alu_2d_0001": 41.34266781806946, "test_dd_subdomains_cube_2d_alu_2d_0002": 43.98705530166626, "test_dd_subdomains_cube_2d_yasp_2d": 41.6374089717865, "test_dd_subdomains_cube_3d_alberta_3d": 34.382235527038574, "test_dd_subdomains_cube_3d_alu_3d_0000": 42.820916414260864, "test_dd_subdomains_cube_3d_alu_3d_0001": 42.952428579330444, "test_dd_subdomains_cube_3d_alu_3d_0002": 42.719929456710815, "test_dd_subdomains_cube_3d_yasp_3d": 37.5138258934021, "test_dgf_gridprovider_alberta_1d": 28.717551231384277, "test_dgf_gridprovider_alberta_2d": 29.837552309036255, "test_dgf_gridprovider_alberta_3d": 30.983155727386475, "test_dgf_gridprovider_alu_2d_0000": 36.58354449272156, "test_dgf_gridprovider_alu_2d_0001": 36.371814012527466, "test_dgf_gridprovider_alu_2d_0002": 38.96980571746826, "test_dgf_gridprovider_alu_3d_0000": 37.85637283325195, "test_dgf_gridprovider_alu_3d_0001": 37.708600997924805, "test_dgf_gridprovider_alu_3d_0002": 37.76925802230835, "test_dgf_gridprovider_ug_2d": 32.90612769126892, "test_dgf_gridprovider_ug_3d": 29.416306972503662, "test_dgf_gridprovider_yasp_1d": 30.38980507850647, "test_dgf_gridprovider_yasp_2d": 31.157761812210083, "test_dgf_gridprovider_yasp_3d": 37.51527190208435, "test_empty": 17.019262075424194, "test_gmsh_gridprovider_alu_2d_0000": 37.837767362594604, "test_gmsh_gridprovider_alu_2d_0001": 38.22988843917847, "test_gmsh_gridprovider_alu_2d_0002": 40.37570309638977, "test_gmsh_gridprovider_alu_3d_0000": 39.87834930419922, "test_gmsh_gridprovider_alu_3d_0001": 39.619710206985474, "test_gmsh_gridprovider_alu_3d_0002": 39.474732875823975, "test_information_1d": 22.540085077285767, "test_information_2d": 25.465412139892578, "test_information_3d": 23.106703281402588, "test_output_pgf": 20.955060958862305, "test_periodic_gridview_alberta_1d": 26.500367164611816, "test_periodic_gridview_alberta_2d": 27.455833911895752, "test_periodic_gridview_alberta_3d": 30.86421847343445, "test_periodic_gridview_alu_2d_0000": 38.39575457572937, "test_periodic_gridview_alu_2d_0001": 36.400352239608765, "test_periodic_gridview_alu_2d_0002": 36.183119773864746, "test_periodic_gridview_alu_3d_0000": 38.127026081085205, "test_periodic_gridview_alu_3d_0001": 40.577880859375, "test_periodic_gridview_alu_3d_0002": 38.143150329589844, "test_periodic_gridview_ug_2d": 30.48707890510559, "test_periodic_gridview_ug_3d": 25.53850245475769, "test_periodic_gridview_yasp_1d": 24.534114837646484, "test_periodic_gridview_yasp_2d": 28.027952194213867, "test_periodic_gridview_yasp_3d": 29.395564079284668, "test_search_alberta_1d": 24.591536045074463, "test_search_alberta_2d": 25.886425733566284, "test_search_alberta_3d": 30.119665384292603, "test_search_alu_2d_0000": 32.78598976135254, "test_search_alu_2d_0001": 33.557924032211304, "test_search_alu_2d_0002": 36.598793745040894, "test_search_alu_3d_0000": 34.747488260269165, "test_search_alu_3d_0001": 34.77951192855835, "test_search_alu_3d_0002": 34.66567897796631, "test_search_ug_2d": 23.453728199005127, "test_search_ug_3d": 24.26795983314514, "test_search_yasp_1d": 24.269371509552002, "test_search_yasp_2d": 26.243303775787354, "test_search_yasp_3d": 27.224441528320312}
\ No newline at end of file
+<<<<<<< HEAD
+{"headercheck__dune_xt_grid_boundaryinfo.hh": 15.615983963012695, "headercheck__dune_xt_grid_boundaryinfo_alldirichlet.hh": 14.889521360397339, "headercheck__dune_xt_grid_boundaryinfo_allneumann.hh": 15.696208238601685, "headercheck__dune_xt_grid_boundaryinfo_allreflecting.hh": 0.05450081825256348, "headercheck__dune_xt_grid_boundaryinfo_boundarysegment.hh": 15.654795408248901, "headercheck__dune_xt_grid_boundaryinfo_factory.hh": 15.011301517486572, "headercheck__dune_xt_grid_boundaryinfo_interfaces.hh": 12.98918080329895, "headercheck__dune_xt_grid_boundaryinfo_normalbased.hh": 14.861575365066528, "headercheck__dune_xt_grid_boundaryinfo_types.hh": 13.068084239959717, "headercheck__dune_xt_grid_capabilities.hh": 5.508548259735107, "headercheck__dune_xt_grid_dd_glued.hh": 16.311400413513184, "headercheck__dune_xt_grid_dd_subdomains_factory.hh": 16.603410005569458, "headercheck__dune_xt_grid_dd_subdomains_grid.hh": 7.199793100357056, "headercheck__dune_xt_grid_entity.hh": 14.566489696502686, "headercheck__dune_xt_grid_exceptions.hh": 0.5797884464263916, "headercheck__dune_xt_grid_functors_boundary-detector.hh": 9.291746854782104, "headercheck__dune_xt_grid_functors_bounding-box.hh": 9.734697818756104, "headercheck__dune_xt_grid_functors_interfaces.hh": 9.169167518615723, "headercheck__dune_xt_grid_functors_lambda.hh": 9.13120436668396, "headercheck__dune_xt_grid_functors_refinement.hh": 9.796465635299683, "headercheck__dune_xt_grid_gridprovider.hh": 15.75350832939148, "headercheck__dune_xt_grid_gridprovider_cube.hh": 15.646630764007568, "headercheck__dune_xt_grid_gridprovider_cube.lib.hh": 15.668450832366943, "headercheck__dune_xt_grid_gridprovider_dgf.hh": 14.227550983428955, "headercheck__dune_xt_grid_gridprovider_eoc.hh": 15.803757905960083, "headercheck__dune_xt_grid_gridprovider_factory.hh": 19.475318431854248, "headercheck__dune_xt_grid_gridprovider_gmsh.hh": 15.500884532928467, "headercheck__dune_xt_grid_gridprovider_provider.hh": 15.338162422180176, "headercheck__dune_xt_grid_gridprovider_provider.lib.hh": 15.399278163909912, "headercheck__dune_xt_grid_gridprovider_starcd.hh": 17.104496955871582, "headercheck__dune_xt_grid_grids.hh": 5.7532057762146, "headercheck__dune_xt_grid_information.hh": 16.327180862426758, "headercheck__dune_xt_grid_intersection.hh": 17.47262454032898, "headercheck__dune_xt_grid_layers.hh": 6.588227272033691, "headercheck__dune_xt_grid_output_entity_visualization.hh": 16.429991722106934, "headercheck__dune_xt_grid_output_pgf.hh": 14.739186525344849, "headercheck__dune_xt_grid_parallel_partitioning_ranged-internal.hh": 6.21062707901001, "headercheck__dune_xt_grid_parallel_partitioning_ranged.hh": 6.125450372695923, "headercheck__dune_xt_grid_search.hh": 14.83984923362732, "headercheck__dune_xt_grid_structuredgridfactory.hh": 18.08464241027832, "headercheck__dune_xt_grid_test_dd_glued.hh": 16.351179122924805, "headercheck__dune_xt_grid_test_provider.hh": 15.94580864906311, "headercheck__dune_xt_grid_type_traits.hh": 6.2084269523620605, "headercheck__dune_xt_grid_view_from-part.hh": 6.13268256187439, "headercheck__dune_xt_grid_view_gridview2gridpart.hh": 0.04950451850891113, "headercheck__dune_xt_grid_view_periodic.hh": 15.664304971694946, "headercheck__dune_xt_grid_view_subdomain_entity-iterator.hh": 0.7993688583374023, "headercheck__dune_xt_grid_view_subdomain_indexset.hh": 6.4803078174591064, "headercheck__dune_xt_grid_view_subdomain_intersection-iterator.hh": 6.660834789276123, "headercheck__dune_xt_grid_view_subdomain_intersection-wrapper.hh": 0.971346378326416, "headercheck__dune_xt_grid_view_subdomain_view.hh": 0.0428006649017334, "headercheck__dune_xt_grid_walker.hh": 14.082605838775635, "headercheck__dune_xt_grid_walker.lib.hh": 14.158512592315674, "headercheck__dune_xt_grid_walker_filters.hh": 9.088605642318726, "headercheck__dune_xt_grid_walker_wrapper.hh": 14.561433553695679, "headercheck__python_dune_xt_grid_boundaryinfo.bindings.hh": 16.240068435668945, "headercheck__python_dune_xt_grid_grids.bindings.hh": 13.800297975540161, "headercheck__python_dune_xt_grid_layers.bindings.hh": 5.718413829803467, "headercheck__python_dune_xt_grid_walker.bindings.hh": 15.749167680740356, "test_boundaryinfo_factory_alberta_1d": 20.10128355026245, "test_boundaryinfo_factory_alberta_2d": 21.30738615989685, "test_boundaryinfo_factory_alberta_3d": 20.304391622543335, "test_boundaryinfo_factory_alu_2d_0000": 20.891586780548096, "test_boundaryinfo_factory_alu_2d_0001": 22.327872276306152, "test_boundaryinfo_factory_alu_2d_0002": 23.566327333450317, "test_boundaryinfo_factory_alu_3d_0000": 21.421977758407593, "test_boundaryinfo_factory_alu_3d_0001": 24.902809143066406, "test_boundaryinfo_factory_alu_3d_0002": 25.10480761528015, "test_boundaryinfo_factory_ug_2d": 26.813920736312866, "test_boundaryinfo_factory_ug_3d": 21.458252429962158, "test_boundaryinfo_factory_yasp_1d": 20.32856774330139, "test_boundaryinfo_factory_yasp_2d": 20.262175798416138, "test_boundaryinfo_factory_yasp_3d": 20.254600286483765, "test_cube_gridprovider_alberta_1d": 29.882335424423218, "test_cube_gridprovider_alberta_2d": 32.76775240898132, "test_cube_gridprovider_alberta_3d": 33.399218797683716, "test_cube_gridprovider_alu_2d_0000": 37.792232036590576, "test_cube_gridprovider_alu_2d_0001": 44.885122299194336, "test_cube_gridprovider_alu_2d_0002": 43.71287178993225, "test_cube_gridprovider_alu_3d_0000": 39.73737978935242, "test_cube_gridprovider_alu_3d_0001": 39.451533794403076, "test_cube_gridprovider_alu_3d_0002": 41.87690043449402, "test_cube_gridprovider_ug_2d": 31.361640453338623, "test_cube_gridprovider_ug_3d": 30.2545223236084, "test_cube_gridprovider_yasp_1d": 30.218368768692017, "test_cube_gridprovider_yasp_2d": 30.87869381904602, "test_cube_gridprovider_yasp_3d": 31.77970838546753, "test_dd_glued_2d": 47.59047198295593, "test_dd_glued_3d": 72.38096737861633, "test_dd_subdomains_cube_1d_alberta_1d": 32.65306234359741, "test_dd_subdomains_cube_1d_oned_1d": 30.95809245109558, "test_dd_subdomains_cube_1d_yasp_1d": 39.5734589099884, "test_dd_subdomains_cube_2d_alberta_2d": 33.47791790962219, "test_dd_subdomains_cube_2d_alu_2d_0000": 40.817832231521606, "test_dd_subdomains_cube_2d_alu_2d_0001": 41.34266781806946, "test_dd_subdomains_cube_2d_alu_2d_0002": 43.98705530166626, "test_dd_subdomains_cube_2d_yasp_2d": 41.6374089717865, "test_dd_subdomains_cube_3d_alberta_3d": 34.382235527038574, "test_dd_subdomains_cube_3d_alu_3d_0000": 42.820916414260864, "test_dd_subdomains_cube_3d_alu_3d_0001": 42.952428579330444, "test_dd_subdomains_cube_3d_alu_3d_0002": 42.719929456710815, "test_dd_subdomains_cube_3d_yasp_3d": 37.5138258934021, "test_dgf_gridprovider_alberta_1d": 28.717551231384277, "test_dgf_gridprovider_alberta_2d": 29.837552309036255, "test_dgf_gridprovider_alberta_3d": 30.983155727386475, "test_dgf_gridprovider_alu_2d_0000": 36.58354449272156, "test_dgf_gridprovider_alu_2d_0001": 36.371814012527466, "test_dgf_gridprovider_alu_2d_0002": 38.96980571746826, "test_dgf_gridprovider_alu_3d_0000": 37.85637283325195, "test_dgf_gridprovider_alu_3d_0001": 37.708600997924805, "test_dgf_gridprovider_alu_3d_0002": 37.76925802230835, "test_dgf_gridprovider_ug_2d": 32.90612769126892, "test_dgf_gridprovider_ug_3d": 29.416306972503662, "test_dgf_gridprovider_yasp_1d": 30.38980507850647, "test_dgf_gridprovider_yasp_2d": 31.157761812210083, "test_dgf_gridprovider_yasp_3d": 37.51527190208435, "test_empty": 17.019262075424194, "test_gmsh_gridprovider_alu_2d_0000": 37.837767362594604, "test_gmsh_gridprovider_alu_2d_0001": 38.22988843917847, "test_gmsh_gridprovider_alu_2d_0002": 40.37570309638977, "test_gmsh_gridprovider_alu_3d_0000": 39.87834930419922, "test_gmsh_gridprovider_alu_3d_0001": 39.619710206985474, "test_gmsh_gridprovider_alu_3d_0002": 39.474732875823975, "test_information_1d": 22.540085077285767, "test_information_2d": 25.465412139892578, "test_information_3d": 23.106703281402588, "test_output_pgf": 20.955060958862305, "test_periodic_gridview_alberta_1d": 26.500367164611816, "test_periodic_gridview_alberta_2d": 27.455833911895752, "test_periodic_gridview_alberta_3d": 30.86421847343445, "test_periodic_gridview_alu_2d_0000": 38.39575457572937, "test_periodic_gridview_alu_2d_0001": 36.400352239608765, "test_periodic_gridview_alu_2d_0002": 36.183119773864746, "test_periodic_gridview_alu_3d_0000": 38.127026081085205, "test_periodic_gridview_alu_3d_0001": 40.577880859375, "test_periodic_gridview_alu_3d_0002": 38.143150329589844, "test_periodic_gridview_ug_2d": 30.48707890510559, "test_periodic_gridview_ug_3d": 25.53850245475769, "test_periodic_gridview_yasp_1d": 24.534114837646484, "test_periodic_gridview_yasp_2d": 28.027952194213867, "test_periodic_gridview_yasp_3d": 29.395564079284668, "test_search_alberta_1d": 24.591536045074463, "test_search_alberta_2d": 25.886425733566284, "test_search_alberta_3d": 30.119665384292603, "test_search_alu_2d_0000": 32.78598976135254, "test_search_alu_2d_0001": 33.557924032211304, "test_search_alu_2d_0002": 36.598793745040894, "test_search_alu_3d_0000": 34.747488260269165, "test_search_alu_3d_0001": 34.77951192855835, "test_search_alu_3d_0002": 34.66567897796631, "test_search_ug_2d": 23.453728199005127, "test_search_ug_3d": 24.26795983314514, "test_search_yasp_1d": 24.269371509552002, "test_search_yasp_2d": 26.243303775787354, "test_search_yasp_3d": 27.224441528320312}
+=======
+{"headercheck__dune_xt_grid_boundaryinfo.hh": 15.615983963012695, "headercheck__dune_xt_grid_boundaryinfo_alldirichlet.hh": 14.889521360397339, "headercheck__dune_xt_grid_boundaryinfo_allneumann.hh": 15.696208238601685, "headercheck__dune_xt_grid_boundaryinfo_allreflecting.hh": 0.05450081825256348, "headercheck__dune_xt_grid_boundaryinfo_boundarysegment.hh": 15.654795408248901, "headercheck__dune_xt_grid_boundaryinfo_factory.hh": 15.011301517486572, "headercheck__dune_xt_grid_boundaryinfo_interfaces.hh": 12.98918080329895, "headercheck__dune_xt_grid_boundaryinfo_normalbased.hh": 14.861575365066528, "headercheck__dune_xt_grid_boundaryinfo_types.hh": 13.068084239959717, "headercheck__dune_xt_grid_capabilities.hh": 5.508548259735107, "headercheck__dune_xt_grid_dd_glued.hh": 16.311400413513184, "headercheck__dune_xt_grid_dd_subdomains_factory.hh": 16.603410005569458, "headercheck__dune_xt_grid_dd_subdomains_grid.hh": 7.199793100357056, "headercheck__dune_xt_grid_entity.hh": 14.566489696502686, "headercheck__dune_xt_grid_exceptions.hh": 0.5797884464263916, "headercheck__dune_xt_grid_gridprovider.hh": 15.75350832939148, "headercheck__dune_xt_grid_gridprovider_cube.hh": 15.646630764007568, "headercheck__dune_xt_grid_gridprovider_cube.lib.hh": 15.668450832366943, "headercheck__dune_xt_grid_gridprovider_dgf.hh": 14.227550983428955, "headercheck__dune_xt_grid_gridprovider_eoc.hh": 15.803757905960083, "headercheck__dune_xt_grid_gridprovider_factory.hh": 19.475318431854248, "headercheck__dune_xt_grid_gridprovider_gmsh.hh": 15.500884532928467, "headercheck__dune_xt_grid_gridprovider_provider.hh": 15.338162422180176, "headercheck__dune_xt_grid_gridprovider_provider.lib.hh": 15.399278163909912, "headercheck__dune_xt_grid_gridprovider_starcd.hh": 17.104496955871582, "headercheck__dune_xt_grid_grids.hh": 5.7532057762146, "headercheck__dune_xt_grid_information.hh": 16.327180862426758, "headercheck__dune_xt_grid_intersection.hh": 17.47262454032898, "headercheck__dune_xt_grid_layers.hh": 6.588227272033691, "headercheck__dune_xt_grid_output_entity_visualization.hh": 16.429991722106934, "headercheck__dune_xt_grid_output_pgf.hh": 14.739186525344849, "headercheck__dune_xt_grid_parallel_partitioning_ranged-internal.hh": 6.21062707901001, "headercheck__dune_xt_grid_parallel_partitioning_ranged.hh": 6.125450372695923, "headercheck__dune_xt_grid_rangegenerators.hh": 0.4594254493713379, "headercheck__dune_xt_grid_search.hh": 14.83984923362732, "headercheck__dune_xt_grid_structuredgridfactory.hh": 18.08464241027832, "headercheck__dune_xt_grid_test_dd_glued.hh": 16.351179122924805, "headercheck__dune_xt_grid_test_provider.hh": 15.94580864906311, "headercheck__dune_xt_grid_type_traits.hh": 6.2084269523620605, "headercheck__dune_xt_grid_view_from-part.hh": 6.13268256187439, "headercheck__dune_xt_grid_view_periodic.hh": 15.664304971694946, "headercheck__dune_xt_grid_view_subdomain_entity-iterator.hh": 0.7993688583374023, "headercheck__dune_xt_grid_view_subdomain_indexset.hh": 6.4803078174591064, "headercheck__dune_xt_grid_view_subdomain_intersection-iterator.hh": 6.660834789276123, "headercheck__dune_xt_grid_view_subdomain_intersection-wrapper.hh": 0.971346378326416, "headercheck__dune_xt_grid_view_subdomain_view.hh": 0.0428006649017334, "headercheck__dune_xt_grid_walk_functors.hh": 16.127413988113403, "headercheck__dune_xt_grid_walker.hh": 14.082605838775635, "headercheck__dune_xt_grid_walker.lib.hh": 14.158512592315674, "headercheck__dune_xt_grid_walker_apply-on.hh": 15.058823347091675, "headercheck__dune_xt_grid_walker_functors.hh": 14.957406282424927, "headercheck__dune_xt_grid_walker_wrapper.hh": 14.561433553695679, "headercheck__python_dune_xt_grid_boundaryinfo.bindings.hh": 16.240068435668945, "headercheck__python_dune_xt_grid_gridprovider.hh": 0.29808640480041504, "headercheck__python_dune_xt_grid_grids.bindings.hh": 13.800297975540161, "headercheck__python_dune_xt_grid_layers.bindings.hh": 5.718413829803467, "headercheck__python_dune_xt_grid_walker.bindings.hh": 15.749167680740356, "test_boundaryinfo_factory_alberta_1d": 18.120019912719727, "test_boundaryinfo_factory_alberta_2d": 19.290846347808838, "test_boundaryinfo_factory_alberta_3d": 17.924537181854248, "test_boundaryinfo_factory_alu_2d_0000": 20.891586780548096, "test_boundaryinfo_factory_alu_2d_0001": 22.327872276306152, "test_boundaryinfo_factory_alu_2d_0002": 23.566327333450317, "test_boundaryinfo_factory_alu_3d_0000": 21.421977758407593, "test_boundaryinfo_factory_alu_3d_0001": 24.902809143066406, "test_boundaryinfo_factory_alu_3d_0002": 25.10480761528015, "test_boundaryinfo_factory_ug_2d": 14.21441388130188, "test_boundaryinfo_factory_ug_3d": 31.54072618484497, "test_boundaryinfo_factory_yasp_1d": 20.32856774330139, "test_boundaryinfo_factory_yasp_2d": 20.262175798416138, "test_boundaryinfo_factory_yasp_3d": 20.254600286483765, "test_cube_gridprovider_alberta_1d": 24.685839414596558, "test_cube_gridprovider_alberta_2d": 25.307799577713013, "test_cube_gridprovider_alberta_3d": 26.748608589172363, "test_cube_gridprovider_alu_2d_0000": 37.792232036590576, "test_cube_gridprovider_alu_2d_0001": 44.885122299194336, "test_cube_gridprovider_alu_2d_0002": 43.71287178993225, "test_cube_gridprovider_alu_3d_0000": 39.73737978935242, "test_cube_gridprovider_alu_3d_0001": 39.451533794403076, "test_cube_gridprovider_alu_3d_0002": 41.87690043449402, "test_cube_gridprovider_ug_2d": 17.686360836029053, "test_cube_gridprovider_ug_3d": 18.55469822883606, "test_cube_gridprovider_yasp_1d": 30.218368768692017, "test_cube_gridprovider_yasp_2d": 30.87869381904602, "test_cube_gridprovider_yasp_3d": 31.77970838546753, "test_dd_glued_2d": 47.59047198295593, "test_dd_glued_3d": 72.38096737861633, "test_dd_subdomains_cube_1d_alberta_1d": 28.781522750854492, "test_dd_subdomains_cube_1d_oned_1d": 30.95809245109558, "test_dd_subdomains_cube_1d_yasp_1d": 39.5734589099884, "test_dd_subdomains_cube_2d_alberta_2d": 30.17898464202881, "test_dd_subdomains_cube_2d_alu_2d_0000": 40.817832231521606, "test_dd_subdomains_cube_2d_alu_2d_0001": 41.34266781806946, "test_dd_subdomains_cube_2d_alu_2d_0002": 43.98705530166626, "test_dd_subdomains_cube_2d_yasp_2d": 41.6374089717865, "test_dd_subdomains_cube_3d_alberta_3d": 31.72081208229065, "test_dd_subdomains_cube_3d_alu_3d_0000": 42.820916414260864, "test_dd_subdomains_cube_3d_alu_3d_0001": 42.952428579330444, "test_dd_subdomains_cube_3d_alu_3d_0002": 42.719929456710815, "test_dd_subdomains_cube_3d_yasp_3d": 37.5138258934021, "test_dgf_gridprovider_alberta_1d": 23.804073095321655, "test_dgf_gridprovider_alberta_2d": 24.78347897529602, "test_dgf_gridprovider_alberta_3d": 26.044527530670166, "test_dgf_gridprovider_alu_2d_0000": 36.58354449272156, "test_dgf_gridprovider_alu_2d_0001": 36.371814012527466, "test_dgf_gridprovider_alu_2d_0002": 38.96980571746826, "test_dgf_gridprovider_alu_3d_0000": 37.85637283325195, "test_dgf_gridprovider_alu_3d_0001": 37.708600997924805, "test_dgf_gridprovider_alu_3d_0002": 37.76925802230835, "test_dgf_gridprovider_ug_2d": 17.723196983337402, "test_dgf_gridprovider_ug_3d": 18.359837293624878, "test_dgf_gridprovider_yasp_1d": 30.38980507850647, "test_dgf_gridprovider_yasp_2d": 31.157761812210083, "test_dgf_gridprovider_yasp_3d": 37.51527190208435, "test_empty": 17.019262075424194, "test_gmsh_gridprovider_alu_2d_0000": 37.837767362594604, "test_gmsh_gridprovider_alu_2d_0001": 38.22988843917847, "test_gmsh_gridprovider_alu_2d_0002": 40.37570309638977, "test_gmsh_gridprovider_alu_3d_0000": 39.87834930419922, "test_gmsh_gridprovider_alu_3d_0001": 39.619710206985474, "test_gmsh_gridprovider_alu_3d_0002": 39.474732875823975, "test_information_1d": 22.540085077285767, "test_information_2d": 25.465412139892578, "test_information_3d": 23.106703281402588, "test_output_pgf": 20.955060958862305, "test_periodic_gridview_alberta_1d": 25.174728870391846, "test_periodic_gridview_alberta_2d": 23.791815280914307, "test_periodic_gridview_alberta_3d": 25.359989881515503, "test_periodic_gridview_alu_2d_0000": 38.39575457572937, "test_periodic_gridview_alu_2d_0001": 36.400352239608765, "test_periodic_gridview_alu_2d_0002": 36.183119773864746, "test_periodic_gridview_alu_3d_0000": 38.127026081085205, "test_periodic_gridview_alu_3d_0001": 40.577880859375, "test_periodic_gridview_alu_3d_0002": 38.143150329589844, "test_periodic_gridview_ug_2d": 16.956064701080322, "test_periodic_gridview_ug_3d": 17.546403884887695, "test_periodic_gridview_yasp_1d": 24.534114837646484, "test_periodic_gridview_yasp_2d": 28.027952194213867, "test_periodic_gridview_yasp_3d": 29.395564079284668, "test_search_alberta_1d": 23.77691912651062, "test_search_alberta_2d": 24.868733167648315, "test_search_alberta_3d": 26.35206937789917, "test_search_alu_2d_0000": 32.78598976135254, "test_search_alu_2d_0001": 33.557924032211304, "test_search_alu_2d_0002": 36.598793745040894, "test_search_alu_3d_0000": 34.747488260269165, "test_search_alu_3d_0001": 34.77951192855835, "test_search_alu_3d_0002": 34.66567897796631, "test_search_ug_2d": 18.64886736869812, "test_search_ug_3d": 18.41042160987854, "test_search_yasp_1d": 24.269371509552002, "test_search_yasp_2d": 26.243303775787354, "test_search_yasp_3d": 27.224441528320312}
+>>>>>>> master
diff --git a/dune/xt/grid/test/eoc_gridprovider.py b/dune/xt/grid/test/eoc_gridprovider.py
new file mode 100644
index 0000000000000000000000000000000000000000..a80f334658a4b6c4d2a9b1179579beefa0a61ef1
--- /dev/null
+++ b/dune/xt/grid/test/eoc_gridprovider.py
@@ -0,0 +1,5 @@
+import dune.xt.grid.types as grid_types
+from dune.xt.codegen import typeid_to_typedef_name as safe_name
+
+# alberta needs manual flag adding in cmake, so we skip it here
+all_grids = ((safe_name(g), g) for g in grid_types.all_types(cache, list(range(1, 4))) if 'Alberta' not in g)
diff --git a/python/dune/xt/boundaryinfo.bindings.cc b/dune/xt/grid/test/eoc_gridprovider.tpl
similarity index 52%
rename from python/dune/xt/boundaryinfo.bindings.cc
rename to dune/xt/grid/test/eoc_gridprovider.tpl
index 2d1f03e8307a8a48654de493752f186e2d31d70f..bd36fb30df29e5d2bf5ad53ab02237d40e71fef3 100644
--- a/python/dune/xt/boundaryinfo.bindings.cc
+++ b/dune/xt/grid/test/eoc_gridprovider.tpl
@@ -5,11 +5,21 @@
 //      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 //          with "runtime exception" (http://www.dune-project.org/license.html)
 // Authors:
-//   Felix Schindler (2017)
 //   Rene Milk       (2018)
 
-#include "config.h"
+#include <dune/xt/common/test/main.hxx>
 
-#include <python/dune/xt/grid/boundaryinfo.bindings.hh>
+#include <dune/xt/grid/gridprovider/eoc.hh>
+#include <dune/xt/grid/grids.hh>
 
-DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(template);
+
+{% for name, type in config.all_grids %}
+
+GTEST_TEST(EocProvider_{{name}}, layers)
+{
+  using Level = Dune::XT::Grid::LevelBasedEOCGridProvider<{{type}}>;
+  using DD = Dune::XT::Grid::DdSubdomainsBasedEOCGridProvider<{{type}}>;
+  using Leaf = Dune::XT::Grid::LeafBasedEOCGridProvider<{{type}}>;
+}
+
+{% endfor %}
diff --git a/dune/xt/grid/test/gmsh_2d_simplices.msh b/dune/xt/grid/test/gmsh_2d_simplices.msh
index 378278a62475946c232399e248b15f542694a3ca..9d7b84d05122900a79ff6a14fa60c8e47026b5f3 100644
--- a/dune/xt/grid/test/gmsh_2d_simplices.msh
+++ b/dune/xt/grid/test/gmsh_2d_simplices.msh
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -9,6 +10,7 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 $MeshFormat
 2.2 0 8
diff --git a/dune/xt/grid/test/information.cc b/dune/xt/grid/test/information.cc
index f3e36075ecc2602aa134bbed8cc096bb37e1d1d4..2942165a1edf67c3afb2707fc2342ea2feaa3c9b 100644
--- a/dune/xt/grid/test/information.cc
+++ b/dune/xt/grid/test/information.cc
@@ -32,7 +32,7 @@ struct GridInfoTest : public ::testing::Test
   typedef Dune::YaspGrid<griddim, Dune::EquidistantOffsetCoordinates<double, griddim>> GridType;
   typedef Dimensions<typename GridType::LeafGridView> DimensionsType;
 
-  const GridProvider<GridType> grid_prv;
+  const GridProvider<GridType, none_t> grid_prv;
   GridInfoTest()
     : grid_prv(make_cube_grid<GridType>(0.f, 1.f, level))
   {
diff --git a/dune/xt/grid/test/provider.hh b/dune/xt/grid/test/provider.hh
index 1c6b2039efdecef4924a15d329fef611401f7b50..fbce904bb78ad3c6becdf924dcae94a9dcb254c6 100644
--- a/dune/xt/grid/test/provider.hh
+++ b/dune/xt/grid/test/provider.hh
@@ -25,7 +25,7 @@
 template <class GridType>
 struct GridProviderBase : public testing::Test
 {
-  typedef Dune::XT::Grid::GridProvider<GridType> GridProviderType;
+  typedef Dune::XT::Grid::GridProvider<GridType, Dune::XT::Grid::none_t> GridProviderType;
 
   static void check_layers(const GridProviderType& grid_provider)
   {
diff --git a/dune/xt/grid/test/search.cc b/dune/xt/grid/test/search.cc
index 9c69fd80a4714d35a10f32218f0f6f8fa032f470..6ecc1e5047c3e3b80d15f83d584d9c074fcc3f99 100644
--- a/dune/xt/grid/test/search.cc
+++ b/dune/xt/grid/test/search.cc
@@ -9,17 +9,18 @@
 //   Rene Milk       (2016, 2018)
 
 #include <dune/xt/common/test/main.hxx>
+#include <dune/xt/common/logging.hh>
 
 #include <dune/xt/grid/gridprovider.hh>
 #include <dune/xt/grid/grids.hh>
-#include <dune/xt/grid/search.hh>
 #include <dune/xt/grid/information.hh>
-#include <dune/xt/common/logging.hh>
+#include <dune/xt/grid/search.hh>
+#include <dune/xt/grid/view/periodic.hh>
 
 struct InLevelSearch : public testing::Test
 {
   typedef TESTGRIDTYPE GridType;
-  typedef Dune::XT::Grid::GridProvider<GridType> GridProviderType;
+  typedef Dune::XT::Grid::GridProvider<GridType, Dune::XT::Grid::none_t> GridProviderType;
 
   InLevelSearch()
     : grid_provider_(Dune::XT::Grid::make_cube_grid<TESTGRIDTYPE>())
@@ -29,11 +30,15 @@ struct InLevelSearch : public testing::Test
   void check()
   {
     const auto view = grid_provider_.leaf_view();
-    const auto dimensions = Dune::XT::Grid::dimensions(grid_provider_.leaf_view());
+    const auto periodic_view = Dune::XT::Grid::make_periodic_grid_layer(view);
+    const auto dimensions = Dune::XT::Grid::dimensions(view);
     Dune::XT::Grid::EntityInlevelSearch<decltype(view)> search(view);
+    Dune::XT::Grid::EntityInlevelSearch<decltype(periodic_view)> periodic_search(periodic_view);
     const auto center = dimensions.view_center();
     const auto result = search(std::vector<std::remove_const<decltype(center)>::type>{center});
+    const auto periodic_result = periodic_search(std::vector<std::remove_const<decltype(center)>::type>{center});
     EXPECT_GE(result.size(), 1);
+    EXPECT_GE(periodic_result.size(), 1);
   }
 
   GridProviderType grid_provider_;
diff --git a/dune/xt/grid/test/testruns_totals.pickle b/dune/xt/grid/test/testruns_totals.pickle
index dc81a3d0e26fe838e4c87f509eb60004ac6ac4a9..b75ddbed43502a12337c25600f0c2799dcc5854e 100644
--- a/dune/xt/grid/test/testruns_totals.pickle
+++ b/dune/xt/grid/test/testruns_totals.pickle
@@ -1 +1 @@
-[["test_boundaryinfo_factory_yasp_1d_0000", "test_boundaryinfo_factory_yasp_2d_0001", "test_boundaryinfo_factory_yasp_3d_0002", "test_boundaryinfo_factory_alberta_1d_0003", "test_boundaryinfo_factory_alberta_2d_0004", "test_boundaryinfo_factory_alberta_3d_0005", "test_boundaryinfo_factory_alu_2d_0000_0006", "test_boundaryinfo_factory_alu_2d_0001_0007", "test_boundaryinfo_factory_alu_2d_0002_0008", "test_boundaryinfo_factory_alu_3d_0000_0009", "test_boundaryinfo_factory_alu_3d_0001_0010", "test_boundaryinfo_factory_alu_3d_0002_0011", "test_boundaryinfo_factory_ug_2d_0012", "test_boundaryinfo_factory_ug_3d_0013", "test_cube_gridprovider_yasp_1d_0000", "test_cube_gridprovider_yasp_2d_0001", "test_cube_gridprovider_yasp_3d_0002", "test_cube_gridprovider_alberta_1d_0003", "test_cube_gridprovider_alberta_2d_0004", "test_cube_gridprovider_alberta_3d_0005", "test_cube_gridprovider_alu_2d_0000_0006", "test_cube_gridprovider_alu_2d_0001_0007", "test_cube_gridprovider_alu_2d_0002_0008", "test_cube_gridprovider_alu_3d_0000_0009", "test_cube_gridprovider_alu_3d_0001_0010", "test_cube_gridprovider_alu_3d_0002_0011", "test_cube_gridprovider_ug_2d_0012", "test_cube_gridprovider_ug_3d_0013", "test_dd_glued_2d", "test_dd_glued_3d", "test_dd_subdomains_cube_1d_oned_1d_0000", "test_dd_subdomains_cube_1d_yasp_1d_0001", "test_dd_subdomains_cube_1d_alberta_1d_0002", "test_dd_subdomains_cube_2d_yasp_2d_0000", "test_dd_subdomains_cube_2d_alberta_2d_0001", "test_dd_subdomains_cube_2d_alu_2d_0000_0002", "test_dd_subdomains_cube_2d_alu_2d_0001_0003", "test_dd_subdomains_cube_2d_alu_2d_0002_0004", "test_dd_subdomains_cube_3d_yasp_3d_0000", "test_dd_subdomains_cube_3d_alberta_3d_0001", "test_dd_subdomains_cube_3d_alu_3d_0000_0002", "test_dd_subdomains_cube_3d_alu_3d_0001_0003", "test_dd_subdomains_cube_3d_alu_3d_0002_0004", "test_dgf_gridprovider_yasp_1d_0000", "test_dgf_gridprovider_yasp_2d_0001", "test_dgf_gridprovider_yasp_3d_0002", "test_dgf_gridprovider_alberta_1d_0003", "test_dgf_gridprovider_alberta_2d_0004", "test_dgf_gridprovider_alberta_3d_0005", "test_dgf_gridprovider_alu_2d_0000_0006", "test_dgf_gridprovider_alu_2d_0001_0007", "test_dgf_gridprovider_alu_2d_0002_0008", "test_dgf_gridprovider_alu_3d_0000_0009", "test_dgf_gridprovider_alu_3d_0001_0010", "test_dgf_gridprovider_alu_3d_0002_0011", "test_dgf_gridprovider_ug_2d_0012", "test_dgf_gridprovider_ug_3d_0013", "test_empty", "test_gmsh_gridprovider_alu_2d_0000_0000", "test_gmsh_gridprovider_alu_2d_0001_0001", "test_gmsh_gridprovider_alu_2d_0002_0002", "test_gmsh_gridprovider_alu_3d_0000_0003", "test_gmsh_gridprovider_alu_3d_0001_0004", "test_gmsh_gridprovider_alu_3d_0002_0005", "test_information_1d_information_1d", "test_information_2d_information_2d", "test_information_3d_information_3d", "test_output_pgf", "test_periodic_gridview_yasp_1d_nonperiodic_rectangle_cube_0000;test_periodic_gridview_yasp_1d_nonperiodic_unit_cube_cube_0000;test_periodic_gridview_yasp_1d_partially_periodic_rectangle_cube_0000;test_periodic_gridview_yasp_1d_partially_periodic_unit_cube_cube_0000;test_periodic_gridview_yasp_1d_periodic_rectangle_cube_0000;test_periodic_gridview_yasp_1d_periodic_unit_cube_cube_0000", "test_periodic_gridview_yasp_2d_nonperiodic_rectangle_cube_0001;test_periodic_gridview_yasp_2d_nonperiodic_unit_cube_cube_0001;test_periodic_gridview_yasp_2d_partially_periodic_rectangle_cube_0001;test_periodic_gridview_yasp_2d_partially_periodic_unit_cube_cube_0001;test_periodic_gridview_yasp_2d_periodic_rectangle_cube_0001;test_periodic_gridview_yasp_2d_periodic_unit_cube_cube_0001", "test_periodic_gridview_yasp_3d_nonperiodic_rectangle_cube_0002;test_periodic_gridview_yasp_3d_nonperiodic_unit_cube_cube_0002;test_periodic_gridview_yasp_3d_partially_periodic_rectangle_cube_0002;test_periodic_gridview_yasp_3d_partially_periodic_unit_cube_cube_0002;test_periodic_gridview_yasp_3d_periodic_rectangle_cube_0002;test_periodic_gridview_yasp_3d_periodic_unit_cube_cube_0002", "test_periodic_gridview_alberta_1d_nonperiodic_rectangle_simplex_0000;test_periodic_gridview_alberta_1d_nonperiodic_unit_cube_simplex_0000;test_periodic_gridview_alberta_1d_partially_periodic_rectangle_simplex_0000;test_periodic_gridview_alberta_1d_partially_periodic_unit_cube_simplex_0000;test_periodic_gridview_alberta_1d_periodic_rectangle_simplex_0000;test_periodic_gridview_alberta_1d_periodic_unit_cube_simplex_0000", "test_periodic_gridview_alberta_2d_nonperiodic_rectangle_simplex_0001;test_periodic_gridview_alberta_2d_nonperiodic_unit_cube_simplex_0001;test_periodic_gridview_alberta_2d_partially_periodic_rectangle_simplex_0001;test_periodic_gridview_alberta_2d_partially_periodic_unit_cube_simplex_0001;test_periodic_gridview_alberta_2d_periodic_rectangle_simplex_0001;test_periodic_gridview_alberta_2d_periodic_unit_cube_simplex_0001", "test_periodic_gridview_alberta_3d_nonperiodic_rectangle_simplex_0002;test_periodic_gridview_alberta_3d_nonperiodic_unit_cube_simplex_0002;test_periodic_gridview_alberta_3d_partially_periodic_rectangle_simplex_0002;test_periodic_gridview_alberta_3d_partially_periodic_unit_cube_simplex_0002;test_periodic_gridview_alberta_3d_periodic_rectangle_simplex_0002;test_periodic_gridview_alberta_3d_periodic_unit_cube_simplex_0002", "test_periodic_gridview_alu_2d_0000_nonperiodic_rectangle_cube_0003;test_periodic_gridview_alu_2d_0000_nonperiodic_unit_cube_cube_0003;test_periodic_gridview_alu_2d_0000_partially_periodic_rectangle_cube_0003;test_periodic_gridview_alu_2d_0000_partially_periodic_unit_cube_cube_0003;test_periodic_gridview_alu_2d_0000_periodic_rectangle_cube_0003;test_periodic_gridview_alu_2d_0000_periodic_unit_cube_cube_0003", "test_periodic_gridview_alu_2d_0001_nonperiodic_rectangle_simplex_0003;test_periodic_gridview_alu_2d_0001_nonperiodic_unit_cube_simplex_0003;test_periodic_gridview_alu_2d_0001_partially_periodic_rectangle_simplex_0003;test_periodic_gridview_alu_2d_0001_partially_periodic_unit_cube_simplex_0003;test_periodic_gridview_alu_2d_0001_periodic_rectangle_simplex_0003;test_periodic_gridview_alu_2d_0001_periodic_unit_cube_simplex_0003", "test_periodic_gridview_alu_2d_0002_nonperiodic_rectangle_simplex_0004;test_periodic_gridview_alu_2d_0002_nonperiodic_unit_cube_simplex_0004;test_periodic_gridview_alu_2d_0002_partially_periodic_rectangle_simplex_0004;test_periodic_gridview_alu_2d_0002_partially_periodic_unit_cube_simplex_0004;test_periodic_gridview_alu_2d_0002_periodic_rectangle_simplex_0004;test_periodic_gridview_alu_2d_0002_periodic_unit_cube_simplex_0004", "test_periodic_gridview_alu_3d_0000_nonperiodic_rectangle_cube_0004;test_periodic_gridview_alu_3d_0000_nonperiodic_unit_cube_cube_0004;test_periodic_gridview_alu_3d_0000_partially_periodic_rectangle_cube_0004;test_periodic_gridview_alu_3d_0000_partially_periodic_unit_cube_cube_0004;test_periodic_gridview_alu_3d_0000_periodic_rectangle_cube_0004;test_periodic_gridview_alu_3d_0000_periodic_unit_cube_cube_0004", "test_periodic_gridview_alu_3d_0001_nonperiodic_rectangle_simplex_0005;test_periodic_gridview_alu_3d_0001_nonperiodic_unit_cube_simplex_0005;test_periodic_gridview_alu_3d_0001_partially_periodic_rectangle_simplex_0005;test_periodic_gridview_alu_3d_0001_partially_periodic_unit_cube_simplex_0005;test_periodic_gridview_alu_3d_0001_periodic_rectangle_simplex_0005;test_periodic_gridview_alu_3d_0001_periodic_unit_cube_simplex_0005", "test_periodic_gridview_alu_3d_0002_nonperiodic_rectangle_simplex_0006;test_periodic_gridview_alu_3d_0002_nonperiodic_unit_cube_simplex_0006;test_periodic_gridview_alu_3d_0002_partially_periodic_rectangle_simplex_0006;test_periodic_gridview_alu_3d_0002_partially_periodic_unit_cube_simplex_0006;test_periodic_gridview_alu_3d_0002_periodic_rectangle_simplex_0006;test_periodic_gridview_alu_3d_0002_periodic_unit_cube_simplex_0006", "test_periodic_gridview_ug_2d_nonperiodic_rectangle_cube_0005;test_periodic_gridview_ug_2d_nonperiodic_rectangle_simplex_0007;test_periodic_gridview_ug_2d_nonperiodic_unit_cube_cube_0005;test_periodic_gridview_ug_2d_nonperiodic_unit_cube_simplex_0007;test_periodic_gridview_ug_2d_partially_periodic_rectangle_cube_0005;test_periodic_gridview_ug_2d_partially_periodic_rectangle_simplex_0007;test_periodic_gridview_ug_2d_partially_periodic_unit_cube_cube_0005;test_periodic_gridview_ug_2d_partially_periodic_unit_cube_simplex_0007;test_periodic_gridview_ug_2d_periodic_rectangle_cube_0005;test_periodic_gridview_ug_2d_periodic_rectangle_simplex_0007;test_periodic_gridview_ug_2d_periodic_unit_cube_cube_0005;test_periodic_gridview_ug_2d_periodic_unit_cube_simplex_0007", "test_periodic_gridview_ug_3d_nonperiodic_rectangle_cube_0006;test_periodic_gridview_ug_3d_nonperiodic_rectangle_simplex_0008;test_periodic_gridview_ug_3d_nonperiodic_unit_cube_cube_0006;test_periodic_gridview_ug_3d_nonperiodic_unit_cube_simplex_0008;test_periodic_gridview_ug_3d_partially_periodic_rectangle_cube_0006;test_periodic_gridview_ug_3d_partially_periodic_rectangle_simplex_0008;test_periodic_gridview_ug_3d_partially_periodic_unit_cube_cube_0006;test_periodic_gridview_ug_3d_partially_periodic_unit_cube_simplex_0008;test_periodic_gridview_ug_3d_periodic_rectangle_cube_0006;test_periodic_gridview_ug_3d_periodic_rectangle_simplex_0008;test_periodic_gridview_ug_3d_periodic_unit_cube_cube_0006;test_periodic_gridview_ug_3d_periodic_unit_cube_simplex_0008", "test_search_yasp_1d_0000", "test_search_yasp_2d_0001", "test_search_yasp_3d_0002", "test_search_alberta_1d_0003", "test_search_alberta_2d_0004", "test_search_alberta_3d_0005", "test_search_alu_2d_0000_0006", "test_search_alu_2d_0001_0007", "test_search_alu_2d_0002_0008", "test_search_alu_3d_0000_0009", "test_search_alu_3d_0001_0010", "test_search_alu_3d_0002_0011", "test_search_ug_2d_0012", "test_search_ug_3d_0013"], {"test_boundaryinfo_factory_alberta_1d_0003": 0.013814687728881836, "test_boundaryinfo_factory_alberta_2d_0004": 0.018439531326293945, "test_boundaryinfo_factory_alberta_3d_0005": 0.012996912002563477, "test_boundaryinfo_factory_alu_2d_0000_0006": 0.020161151885986328, "test_boundaryinfo_factory_alu_2d_0001_0007": 0.021579265594482422, "test_boundaryinfo_factory_alu_2d_0002_0008": 0.018848896026611328, "test_boundaryinfo_factory_alu_3d_0000_0009": 0.021801233291625977, "test_boundaryinfo_factory_alu_3d_0001_0010": 0.013073921203613281, "test_boundaryinfo_factory_alu_3d_0002_0011": 0.01934957504272461, "test_boundaryinfo_factory_ug_2d_0012": 0.014235973358154297, "test_boundaryinfo_factory_ug_3d_0013": 0.022176504135131836, "test_boundaryinfo_factory_yasp_1d_0000": 0.04857516288757324, "test_boundaryinfo_factory_yasp_2d_0001": 0.02437448501586914, "test_boundaryinfo_factory_yasp_3d_0002": 0.020878076553344727, "test_cube_gridprovider_alberta_1d_0003": 0.020861387252807617, "test_cube_gridprovider_alberta_2d_0004": 0.014606237411499023, "test_cube_gridprovider_alberta_3d_0005": 0.02063775062561035, "test_cube_gridprovider_alu_2d_0000_0006": 0.020139217376708984, "test_cube_gridprovider_alu_2d_0001_0007": 0.022524356842041016, "test_cube_gridprovider_alu_2d_0002_0008": 0.020697832107543945, "test_cube_gridprovider_alu_3d_0000_0009": 0.01953434944152832, "test_cube_gridprovider_alu_3d_0001_0010": 0.020487308502197266, "test_cube_gridprovider_alu_3d_0002_0011": 0.014725923538208008, "test_cube_gridprovider_ug_2d_0012": 0.021709203720092773, "test_cube_gridprovider_ug_3d_0013": 0.021831274032592773, "test_cube_gridprovider_yasp_1d_0000": 0.02048468589782715, "test_cube_gridprovider_yasp_2d_0001": 0.01860785484313965, "test_cube_gridprovider_yasp_3d_0002": 0.01403498649597168, "test_dd_glued_2d": 0.020163774490356445, "test_dd_glued_3d": 0.018154144287109375, "test_dd_subdomains_cube_1d_alberta_1d_0002": 0.023329973220825195, "test_dd_subdomains_cube_1d_oned_1d_0000": 0.01475834846496582, "test_dd_subdomains_cube_1d_yasp_1d_0001": 0.021187305450439453, "test_dd_subdomains_cube_2d_alberta_2d_0001": 0.02162623405456543, "test_dd_subdomains_cube_2d_alu_2d_0000_0002": 0.014841079711914062, "test_dd_subdomains_cube_2d_alu_2d_0001_0003": 0.014711856842041016, "test_dd_subdomains_cube_2d_alu_2d_0002_0004": 0.019779205322265625, "test_dd_subdomains_cube_2d_yasp_2d_0000": 0.015044212341308594, "test_dd_subdomains_cube_3d_alberta_3d_0001": 0.023333311080932617, "test_dd_subdomains_cube_3d_alu_3d_0000_0002": 0.01627326011657715, "test_dd_subdomains_cube_3d_alu_3d_0001_0003": 0.01916646957397461, "test_dd_subdomains_cube_3d_alu_3d_0002_0004": 0.017833232879638672, "test_dd_subdomains_cube_3d_yasp_3d_0000": 0.021175384521484375, "test_dgf_gridprovider_alberta_1d_0003": 0.02181386947631836, "test_dgf_gridprovider_alberta_2d_0004": 0.020039081573486328, "test_dgf_gridprovider_alberta_3d_0005": 0.020470380783081055, "test_dgf_gridprovider_alu_2d_0000_0006": 0.02131032943725586, "test_dgf_gridprovider_alu_2d_0001_0007": 0.02017378807067871, "test_dgf_gridprovider_alu_2d_0002_0008": 0.027289152145385742, "test_dgf_gridprovider_alu_3d_0000_0009": 0.021492481231689453, "test_dgf_gridprovider_alu_3d_0001_0010": 0.018991708755493164, "test_dgf_gridprovider_alu_3d_0002_0011": 0.025875091552734375, "test_dgf_gridprovider_ug_2d_0012": 0.05364274978637695, "test_dgf_gridprovider_ug_3d_0013": 0.02306056022644043, "test_dgf_gridprovider_yasp_1d_0000": 0.018175125122070312, "test_dgf_gridprovider_yasp_2d_0001": 0.017711162567138672, "test_dgf_gridprovider_yasp_3d_0002": 0.01462244987487793, "test_empty": 0.043166160583496094, "test_gmsh_gridprovider_alu_2d_0000_0000": 0.02014899253845215, "test_gmsh_gridprovider_alu_2d_0001_0001": 0.022755861282348633, "test_gmsh_gridprovider_alu_2d_0002_0002": 0.021397113800048828, "test_gmsh_gridprovider_alu_3d_0000_0003": 0.022572994232177734, "test_gmsh_gridprovider_alu_3d_0001_0004": 0.021507740020751953, "test_gmsh_gridprovider_alu_3d_0002_0005": 0.016646385192871094, "test_information_1d_information_1d": 0.015696048736572266, "test_information_2d_information_2d": 0.014620542526245117, "test_information_3d_information_3d": 0.022844552993774414, "test_output_pgf": 0.02042245864868164, "test_periodic_gridview_alberta_1d_nonperiodic_rectangle_simplex_0000;test_periodic_gridview_alberta_1d_nonperiodic_unit_cube_simplex_0000;test_periodic_gridview_alberta_1d_partially_periodic_rectangle_simplex_0000;test_periodic_gridview_alberta_1d_partially_periodic_unit_cube_simplex_0000;test_periodic_gridview_alberta_1d_periodic_rectangle_simplex_0000;test_periodic_gridview_alberta_1d_periodic_unit_cube_simplex_0000": 0.11000251770019531, "test_periodic_gridview_alberta_2d_nonperiodic_rectangle_simplex_0001;test_periodic_gridview_alberta_2d_nonperiodic_unit_cube_simplex_0001;test_periodic_gridview_alberta_2d_partially_periodic_rectangle_simplex_0001;test_periodic_gridview_alberta_2d_partially_periodic_unit_cube_simplex_0001;test_periodic_gridview_alberta_2d_periodic_rectangle_simplex_0001;test_periodic_gridview_alberta_2d_periodic_unit_cube_simplex_0001": 0.09993290901184082, "test_periodic_gridview_alberta_3d_nonperiodic_rectangle_simplex_0002;test_periodic_gridview_alberta_3d_nonperiodic_unit_cube_simplex_0002;test_periodic_gridview_alberta_3d_partially_periodic_rectangle_simplex_0002;test_periodic_gridview_alberta_3d_partially_periodic_unit_cube_simplex_0002;test_periodic_gridview_alberta_3d_periodic_rectangle_simplex_0002;test_periodic_gridview_alberta_3d_periodic_unit_cube_simplex_0002": 0.11704182624816895, "test_periodic_gridview_alu_2d_0000_nonperiodic_rectangle_cube_0003;test_periodic_gridview_alu_2d_0000_nonperiodic_unit_cube_cube_0003;test_periodic_gridview_alu_2d_0000_partially_periodic_rectangle_cube_0003;test_periodic_gridview_alu_2d_0000_partially_periodic_unit_cube_cube_0003;test_periodic_gridview_alu_2d_0000_periodic_rectangle_cube_0003;test_periodic_gridview_alu_2d_0000_periodic_unit_cube_cube_0003": 0.10288047790527344, "test_periodic_gridview_alu_2d_0001_nonperiodic_rectangle_simplex_0003;test_periodic_gridview_alu_2d_0001_nonperiodic_unit_cube_simplex_0003;test_periodic_gridview_alu_2d_0001_partially_periodic_rectangle_simplex_0003;test_periodic_gridview_alu_2d_0001_partially_periodic_unit_cube_simplex_0003;test_periodic_gridview_alu_2d_0001_periodic_rectangle_simplex_0003;test_periodic_gridview_alu_2d_0001_periodic_unit_cube_simplex_0003": 0.10729146003723145, "test_periodic_gridview_alu_2d_0002_nonperiodic_rectangle_simplex_0004;test_periodic_gridview_alu_2d_0002_nonperiodic_unit_cube_simplex_0004;test_periodic_gridview_alu_2d_0002_partially_periodic_rectangle_simplex_0004;test_periodic_gridview_alu_2d_0002_partially_periodic_unit_cube_simplex_0004;test_periodic_gridview_alu_2d_0002_periodic_rectangle_simplex_0004;test_periodic_gridview_alu_2d_0002_periodic_unit_cube_simplex_0004": 0.10921049118041992, "test_periodic_gridview_alu_3d_0000_nonperiodic_rectangle_cube_0004;test_periodic_gridview_alu_3d_0000_nonperiodic_unit_cube_cube_0004;test_periodic_gridview_alu_3d_0000_partially_periodic_rectangle_cube_0004;test_periodic_gridview_alu_3d_0000_partially_periodic_unit_cube_cube_0004;test_periodic_gridview_alu_3d_0000_periodic_rectangle_cube_0004;test_periodic_gridview_alu_3d_0000_periodic_unit_cube_cube_0004": 0.11465072631835938, "test_periodic_gridview_alu_3d_0001_nonperiodic_rectangle_simplex_0005;test_periodic_gridview_alu_3d_0001_nonperiodic_unit_cube_simplex_0005;test_periodic_gridview_alu_3d_0001_partially_periodic_rectangle_simplex_0005;test_periodic_gridview_alu_3d_0001_partially_periodic_unit_cube_simplex_0005;test_periodic_gridview_alu_3d_0001_periodic_rectangle_simplex_0005;test_periodic_gridview_alu_3d_0001_periodic_unit_cube_simplex_0005": 0.11975669860839844, "test_periodic_gridview_alu_3d_0002_nonperiodic_rectangle_simplex_0006;test_periodic_gridview_alu_3d_0002_nonperiodic_unit_cube_simplex_0006;test_periodic_gridview_alu_3d_0002_partially_periodic_rectangle_simplex_0006;test_periodic_gridview_alu_3d_0002_partially_periodic_unit_cube_simplex_0006;test_periodic_gridview_alu_3d_0002_periodic_rectangle_simplex_0006;test_periodic_gridview_alu_3d_0002_periodic_unit_cube_simplex_0006": 0.10587620735168457, "test_periodic_gridview_ug_2d_nonperiodic_rectangle_cube_0005;test_periodic_gridview_ug_2d_nonperiodic_rectangle_simplex_0007;test_periodic_gridview_ug_2d_nonperiodic_unit_cube_cube_0005;test_periodic_gridview_ug_2d_nonperiodic_unit_cube_simplex_0007;test_periodic_gridview_ug_2d_partially_periodic_rectangle_cube_0005;test_periodic_gridview_ug_2d_partially_periodic_rectangle_simplex_0007;test_periodic_gridview_ug_2d_partially_periodic_unit_cube_cube_0005;test_periodic_gridview_ug_2d_partially_periodic_unit_cube_simplex_0007;test_periodic_gridview_ug_2d_periodic_rectangle_cube_0005;test_periodic_gridview_ug_2d_periodic_rectangle_simplex_0007;test_periodic_gridview_ug_2d_periodic_unit_cube_cube_0005;test_periodic_gridview_ug_2d_periodic_unit_cube_simplex_0007": 0.23114800453186035, "test_periodic_gridview_ug_3d_nonperiodic_rectangle_cube_0006;test_periodic_gridview_ug_3d_nonperiodic_rectangle_simplex_0008;test_periodic_gridview_ug_3d_nonperiodic_unit_cube_cube_0006;test_periodic_gridview_ug_3d_nonperiodic_unit_cube_simplex_0008;test_periodic_gridview_ug_3d_partially_periodic_rectangle_cube_0006;test_periodic_gridview_ug_3d_partially_periodic_rectangle_simplex_0008;test_periodic_gridview_ug_3d_partially_periodic_unit_cube_cube_0006;test_periodic_gridview_ug_3d_partially_periodic_unit_cube_simplex_0008;test_periodic_gridview_ug_3d_periodic_rectangle_cube_0006;test_periodic_gridview_ug_3d_periodic_rectangle_simplex_0008;test_periodic_gridview_ug_3d_periodic_unit_cube_cube_0006;test_periodic_gridview_ug_3d_periodic_unit_cube_simplex_0008": 0.2386770248413086, "test_periodic_gridview_yasp_1d_nonperiodic_rectangle_cube_0000;test_periodic_gridview_yasp_1d_nonperiodic_unit_cube_cube_0000;test_periodic_gridview_yasp_1d_partially_periodic_rectangle_cube_0000;test_periodic_gridview_yasp_1d_partially_periodic_unit_cube_cube_0000;test_periodic_gridview_yasp_1d_periodic_rectangle_cube_0000;test_periodic_gridview_yasp_1d_periodic_unit_cube_cube_0000": 0.12091302871704102, "test_periodic_gridview_yasp_2d_nonperiodic_rectangle_cube_0001;test_periodic_gridview_yasp_2d_nonperiodic_unit_cube_cube_0001;test_periodic_gridview_yasp_2d_partially_periodic_rectangle_cube_0001;test_periodic_gridview_yasp_2d_partially_periodic_unit_cube_cube_0001;test_periodic_gridview_yasp_2d_periodic_rectangle_cube_0001;test_periodic_gridview_yasp_2d_periodic_unit_cube_cube_0001": 0.12057709693908691, "test_periodic_gridview_yasp_3d_nonperiodic_rectangle_cube_0002;test_periodic_gridview_yasp_3d_nonperiodic_unit_cube_cube_0002;test_periodic_gridview_yasp_3d_partially_periodic_rectangle_cube_0002;test_periodic_gridview_yasp_3d_partially_periodic_unit_cube_cube_0002;test_periodic_gridview_yasp_3d_periodic_rectangle_cube_0002;test_periodic_gridview_yasp_3d_periodic_unit_cube_cube_0002": 0.12546849250793457, "test_search_alberta_1d_0003": 0.02106165885925293, "test_search_alberta_2d_0004": 0.019028663635253906, "test_search_alberta_3d_0005": 0.020723342895507812, "test_search_alu_2d_0000_0006": 0.015004634857177734, "test_search_alu_2d_0001_0007": 0.02175450325012207, "test_search_alu_2d_0002_0008": 0.019686460494995117, "test_search_alu_3d_0000_0009": 0.018866539001464844, "test_search_alu_3d_0001_0010": 0.021307945251464844, "test_search_alu_3d_0002_0011": 0.018821001052856445, "test_search_ug_2d_0012": 0.020713090896606445, "test_search_ug_3d_0013": 0.015107870101928711, "test_search_yasp_1d_0000": 0.02102828025817871, "test_search_yasp_2d_0001": 0.019915103912353516, "test_search_yasp_3d_0002": 0.019326210021972656}]
\ No newline at end of file
+[["test_boundaryinfo_factory_yasp_1d_0000", "test_boundaryinfo_factory_yasp_2d_0001", "test_boundaryinfo_factory_yasp_3d_0002", "test_boundaryinfo_factory_alberta_1d_0003", "test_boundaryinfo_factory_alberta_2d_0004", "test_boundaryinfo_factory_alberta_3d_0005", "test_boundaryinfo_factory_alu_2d_0000_0006", "test_boundaryinfo_factory_alu_2d_0001_0007", "test_boundaryinfo_factory_alu_2d_0002_0008", "test_boundaryinfo_factory_alu_3d_0000_0009", "test_boundaryinfo_factory_alu_3d_0001_0010", "test_boundaryinfo_factory_alu_3d_0002_0011", "test_boundaryinfo_factory_ug_2d_0012", "test_boundaryinfo_factory_ug_3d_0013", "test_cube_gridprovider_yasp_1d_0000", "test_cube_gridprovider_yasp_2d_0001", "test_cube_gridprovider_yasp_3d_0002", "test_cube_gridprovider_alberta_1d_0003", "test_cube_gridprovider_alberta_2d_0004", "test_cube_gridprovider_alberta_3d_0005", "test_cube_gridprovider_alu_2d_0000_0006", "test_cube_gridprovider_alu_2d_0001_0007", "test_cube_gridprovider_alu_2d_0002_0008", "test_cube_gridprovider_alu_3d_0000_0009", "test_cube_gridprovider_alu_3d_0001_0010", "test_cube_gridprovider_alu_3d_0002_0011", "test_cube_gridprovider_ug_2d_0012", "test_cube_gridprovider_ug_3d_0013", "test_dd_glued_2d", "test_dd_glued_3d", "test_dd_subdomains_cube_1d_oned_1d_0000", "test_dd_subdomains_cube_1d_yasp_1d_0001", "test_dd_subdomains_cube_1d_alberta_1d_0002", "test_dd_subdomains_cube_2d_yasp_2d_0000", "test_dd_subdomains_cube_2d_alberta_2d_0001", "test_dd_subdomains_cube_2d_alu_2d_0000_0002", "test_dd_subdomains_cube_2d_alu_2d_0001_0003", "test_dd_subdomains_cube_2d_alu_2d_0002_0004", "test_dd_subdomains_cube_3d_yasp_3d_0000", "test_dd_subdomains_cube_3d_alberta_3d_0001", "test_dd_subdomains_cube_3d_alu_3d_0000_0002", "test_dd_subdomains_cube_3d_alu_3d_0001_0003", "test_dd_subdomains_cube_3d_alu_3d_0002_0004", "test_dgf_gridprovider_yasp_1d_0000", "test_dgf_gridprovider_yasp_2d_0001", "test_dgf_gridprovider_yasp_3d_0002", "test_dgf_gridprovider_alberta_1d_0003", "test_dgf_gridprovider_alberta_2d_0004", "test_dgf_gridprovider_alberta_3d_0005", "test_dgf_gridprovider_alu_2d_0000_0006", "test_dgf_gridprovider_alu_2d_0001_0007", "test_dgf_gridprovider_alu_2d_0002_0008", "test_dgf_gridprovider_alu_3d_0000_0009", "test_dgf_gridprovider_alu_3d_0001_0010", "test_dgf_gridprovider_alu_3d_0002_0011", "test_dgf_gridprovider_ug_2d_0012", "test_dgf_gridprovider_ug_3d_0013", "test_empty", "test_gmsh_gridprovider_alu_2d_0000_0000", "test_gmsh_gridprovider_alu_2d_0001_0001", "test_gmsh_gridprovider_alu_2d_0002_0002", "test_gmsh_gridprovider_alu_3d_0000_0003", "test_gmsh_gridprovider_alu_3d_0001_0004", "test_gmsh_gridprovider_alu_3d_0002_0005", "test_information_1d_information_1d", "test_information_2d_information_2d", "test_information_3d_information_3d", "test_output_pgf", "test_periodic_gridview_yasp_1d_nonperiodic_rectangle_cube_0000;test_periodic_gridview_yasp_1d_nonperiodic_unit_cube_cube_0000;test_periodic_gridview_yasp_1d_partially_periodic_rectangle_cube_0000;test_periodic_gridview_yasp_1d_partially_periodic_unit_cube_cube_0000;test_periodic_gridview_yasp_1d_periodic_rectangle_cube_0000;test_periodic_gridview_yasp_1d_periodic_unit_cube_cube_0000", "test_periodic_gridview_yasp_2d_nonperiodic_rectangle_cube_0001;test_periodic_gridview_yasp_2d_nonperiodic_unit_cube_cube_0001;test_periodic_gridview_yasp_2d_partially_periodic_rectangle_cube_0001;test_periodic_gridview_yasp_2d_partially_periodic_unit_cube_cube_0001;test_periodic_gridview_yasp_2d_periodic_rectangle_cube_0001;test_periodic_gridview_yasp_2d_periodic_unit_cube_cube_0001", "test_periodic_gridview_yasp_3d_nonperiodic_rectangle_cube_0002;test_periodic_gridview_yasp_3d_nonperiodic_unit_cube_cube_0002;test_periodic_gridview_yasp_3d_partially_periodic_rectangle_cube_0002;test_periodic_gridview_yasp_3d_partially_periodic_unit_cube_cube_0002;test_periodic_gridview_yasp_3d_periodic_rectangle_cube_0002;test_periodic_gridview_yasp_3d_periodic_unit_cube_cube_0002", "test_periodic_gridview_alberta_1d_nonperiodic_rectangle_simplex_0000;test_periodic_gridview_alberta_1d_nonperiodic_unit_cube_simplex_0000;test_periodic_gridview_alberta_1d_partially_periodic_rectangle_simplex_0000;test_periodic_gridview_alberta_1d_partially_periodic_unit_cube_simplex_0000;test_periodic_gridview_alberta_1d_periodic_rectangle_simplex_0000;test_periodic_gridview_alberta_1d_periodic_unit_cube_simplex_0000", "test_periodic_gridview_alberta_2d_nonperiodic_rectangle_simplex_0001;test_periodic_gridview_alberta_2d_nonperiodic_unit_cube_simplex_0001;test_periodic_gridview_alberta_2d_partially_periodic_rectangle_simplex_0001;test_periodic_gridview_alberta_2d_partially_periodic_unit_cube_simplex_0001;test_periodic_gridview_alberta_2d_periodic_rectangle_simplex_0001;test_periodic_gridview_alberta_2d_periodic_unit_cube_simplex_0001", "test_periodic_gridview_alberta_3d_nonperiodic_rectangle_simplex_0002;test_periodic_gridview_alberta_3d_nonperiodic_unit_cube_simplex_0002;test_periodic_gridview_alberta_3d_partially_periodic_rectangle_simplex_0002;test_periodic_gridview_alberta_3d_partially_periodic_unit_cube_simplex_0002;test_periodic_gridview_alberta_3d_periodic_rectangle_simplex_0002;test_periodic_gridview_alberta_3d_periodic_unit_cube_simplex_0002", "test_periodic_gridview_alu_2d_0000_nonperiodic_rectangle_cube_0003;test_periodic_gridview_alu_2d_0000_nonperiodic_unit_cube_cube_0003;test_periodic_gridview_alu_2d_0000_partially_periodic_rectangle_cube_0003;test_periodic_gridview_alu_2d_0000_partially_periodic_unit_cube_cube_0003;test_periodic_gridview_alu_2d_0000_periodic_rectangle_cube_0003;test_periodic_gridview_alu_2d_0000_periodic_unit_cube_cube_0003", "test_periodic_gridview_alu_2d_0001_nonperiodic_rectangle_simplex_0003;test_periodic_gridview_alu_2d_0001_nonperiodic_unit_cube_simplex_0003;test_periodic_gridview_alu_2d_0001_partially_periodic_rectangle_simplex_0003;test_periodic_gridview_alu_2d_0001_partially_periodic_unit_cube_simplex_0003;test_periodic_gridview_alu_2d_0001_periodic_rectangle_simplex_0003;test_periodic_gridview_alu_2d_0001_periodic_unit_cube_simplex_0003", "test_periodic_gridview_alu_2d_0002_nonperiodic_rectangle_simplex_0004;test_periodic_gridview_alu_2d_0002_nonperiodic_unit_cube_simplex_0004;test_periodic_gridview_alu_2d_0002_partially_periodic_rectangle_simplex_0004;test_periodic_gridview_alu_2d_0002_partially_periodic_unit_cube_simplex_0004;test_periodic_gridview_alu_2d_0002_periodic_rectangle_simplex_0004;test_periodic_gridview_alu_2d_0002_periodic_unit_cube_simplex_0004", "test_periodic_gridview_alu_3d_0000_nonperiodic_rectangle_cube_0004;test_periodic_gridview_alu_3d_0000_nonperiodic_unit_cube_cube_0004;test_periodic_gridview_alu_3d_0000_partially_periodic_rectangle_cube_0004;test_periodic_gridview_alu_3d_0000_partially_periodic_unit_cube_cube_0004;test_periodic_gridview_alu_3d_0000_periodic_rectangle_cube_0004;test_periodic_gridview_alu_3d_0000_periodic_unit_cube_cube_0004", "test_periodic_gridview_alu_3d_0001_nonperiodic_rectangle_simplex_0005;test_periodic_gridview_alu_3d_0001_nonperiodic_unit_cube_simplex_0005;test_periodic_gridview_alu_3d_0001_partially_periodic_rectangle_simplex_0005;test_periodic_gridview_alu_3d_0001_partially_periodic_unit_cube_simplex_0005;test_periodic_gridview_alu_3d_0001_periodic_rectangle_simplex_0005;test_periodic_gridview_alu_3d_0001_periodic_unit_cube_simplex_0005", "test_periodic_gridview_alu_3d_0002_nonperiodic_rectangle_simplex_0006;test_periodic_gridview_alu_3d_0002_nonperiodic_unit_cube_simplex_0006;test_periodic_gridview_alu_3d_0002_partially_periodic_rectangle_simplex_0006;test_periodic_gridview_alu_3d_0002_partially_periodic_unit_cube_simplex_0006;test_periodic_gridview_alu_3d_0002_periodic_rectangle_simplex_0006;test_periodic_gridview_alu_3d_0002_periodic_unit_cube_simplex_0006", "test_periodic_gridview_ug_2d_nonperiodic_rectangle_cube_0005;test_periodic_gridview_ug_2d_nonperiodic_rectangle_simplex_0007;test_periodic_gridview_ug_2d_nonperiodic_unit_cube_cube_0005;test_periodic_gridview_ug_2d_nonperiodic_unit_cube_simplex_0007;test_periodic_gridview_ug_2d_partially_periodic_rectangle_cube_0005;test_periodic_gridview_ug_2d_partially_periodic_rectangle_simplex_0007;test_periodic_gridview_ug_2d_partially_periodic_unit_cube_cube_0005;test_periodic_gridview_ug_2d_partially_periodic_unit_cube_simplex_0007;test_periodic_gridview_ug_2d_periodic_rectangle_cube_0005;test_periodic_gridview_ug_2d_periodic_rectangle_simplex_0007;test_periodic_gridview_ug_2d_periodic_unit_cube_cube_0005;test_periodic_gridview_ug_2d_periodic_unit_cube_simplex_0007", "test_periodic_gridview_ug_3d_nonperiodic_rectangle_cube_0006;test_periodic_gridview_ug_3d_nonperiodic_rectangle_simplex_0008;test_periodic_gridview_ug_3d_nonperiodic_unit_cube_cube_0006;test_periodic_gridview_ug_3d_nonperiodic_unit_cube_simplex_0008;test_periodic_gridview_ug_3d_partially_periodic_rectangle_cube_0006;test_periodic_gridview_ug_3d_partially_periodic_rectangle_simplex_0008;test_periodic_gridview_ug_3d_partially_periodic_unit_cube_cube_0006;test_periodic_gridview_ug_3d_partially_periodic_unit_cube_simplex_0008;test_periodic_gridview_ug_3d_periodic_rectangle_cube_0006;test_periodic_gridview_ug_3d_periodic_rectangle_simplex_0008;test_periodic_gridview_ug_3d_periodic_unit_cube_cube_0006;test_periodic_gridview_ug_3d_periodic_unit_cube_simplex_0008", "test_search_yasp_1d_0000", "test_search_yasp_2d_0001", "test_search_yasp_3d_0002", "test_search_alberta_1d_0003", "test_search_alberta_2d_0004", "test_search_alberta_3d_0005", "test_search_alu_2d_0000_0006", "test_search_alu_2d_0001_0007", "test_search_alu_2d_0002_0008", "test_search_alu_3d_0000_0009", "test_search_alu_3d_0001_0010", "test_search_alu_3d_0002_0011", "test_search_ug_2d_0012", "test_search_ug_3d_0013"], {"test_boundaryinfo_factory_alberta_1d_0003": 0.01879096031188965, "test_boundaryinfo_factory_alberta_2d_0004": 0.017849206924438477, "test_boundaryinfo_factory_alberta_3d_0005": 0.016821622848510742, "test_boundaryinfo_factory_alu_2d_0000_0006": 0.020161151885986328, "test_boundaryinfo_factory_alu_2d_0001_0007": 0.021579265594482422, "test_boundaryinfo_factory_alu_2d_0002_0008": 0.018848896026611328, "test_boundaryinfo_factory_alu_3d_0000_0009": 0.021801233291625977, "test_boundaryinfo_factory_alu_3d_0001_0010": 0.013073921203613281, "test_boundaryinfo_factory_alu_3d_0002_0011": 0.01934957504272461, "test_boundaryinfo_factory_ug_2d_0012": 0.06149005889892578, "test_boundaryinfo_factory_ug_3d_0013": 0.012807607650756836, "test_boundaryinfo_factory_yasp_1d_0000": 0.04857516288757324, "test_boundaryinfo_factory_yasp_2d_0001": 0.02437448501586914, "test_boundaryinfo_factory_yasp_3d_0002": 0.020878076553344727, "test_cube_gridprovider_alberta_1d_0003": 0.016344308853149414, "test_cube_gridprovider_alberta_2d_0004": 0.01675248146057129, "test_cube_gridprovider_alberta_3d_0005": 0.01607537269592285, "test_cube_gridprovider_alu_2d_0000_0006": 0.020139217376708984, "test_cube_gridprovider_alu_2d_0001_0007": 0.022524356842041016, "test_cube_gridprovider_alu_2d_0002_0008": 0.020697832107543945, "test_cube_gridprovider_alu_3d_0000_0009": 0.01953434944152832, "test_cube_gridprovider_alu_3d_0001_0010": 0.020487308502197266, "test_cube_gridprovider_alu_3d_0002_0011": 0.014725923538208008, "test_cube_gridprovider_ug_2d_0012": 0.013370037078857422, "test_cube_gridprovider_ug_3d_0013": 0.013493537902832031, "test_cube_gridprovider_yasp_1d_0000": 0.02048468589782715, "test_cube_gridprovider_yasp_2d_0001": 0.01860785484313965, "test_cube_gridprovider_yasp_3d_0002": 0.01403498649597168, "test_dd_glued_2d": 0.020163774490356445, "test_dd_glued_3d": 0.018154144287109375, "test_dd_subdomains_cube_1d_alberta_1d_0002": 0.015096187591552734, "test_dd_subdomains_cube_1d_oned_1d_0000": 0.01475834846496582, "test_dd_subdomains_cube_1d_yasp_1d_0001": 0.021187305450439453, "test_dd_subdomains_cube_2d_alberta_2d_0001": 0.014922618865966797, "test_dd_subdomains_cube_2d_alu_2d_0000_0002": 0.014841079711914062, "test_dd_subdomains_cube_2d_alu_2d_0001_0003": 0.014711856842041016, "test_dd_subdomains_cube_2d_alu_2d_0002_0004": 0.019779205322265625, "test_dd_subdomains_cube_2d_yasp_2d_0000": 0.015044212341308594, "test_dd_subdomains_cube_3d_alberta_3d_0001": 0.015231132507324219, "test_dd_subdomains_cube_3d_alu_3d_0000_0002": 0.01627326011657715, "test_dd_subdomains_cube_3d_alu_3d_0001_0003": 0.01916646957397461, "test_dd_subdomains_cube_3d_alu_3d_0002_0004": 0.017833232879638672, "test_dd_subdomains_cube_3d_yasp_3d_0000": 0.021175384521484375, "test_dgf_gridprovider_alberta_1d_0003": 0.014127731323242188, "test_dgf_gridprovider_alberta_2d_0004": 0.01454472541809082, "test_dgf_gridprovider_alberta_3d_0005": 0.014353275299072266, "test_dgf_gridprovider_alu_2d_0000_0006": 0.02131032943725586, "test_dgf_gridprovider_alu_2d_0001_0007": 0.02017378807067871, "test_dgf_gridprovider_alu_2d_0002_0008": 0.027289152145385742, "test_dgf_gridprovider_alu_3d_0000_0009": 0.021492481231689453, "test_dgf_gridprovider_alu_3d_0001_0010": 0.018991708755493164, "test_dgf_gridprovider_alu_3d_0002_0011": 0.025875091552734375, "test_dgf_gridprovider_ug_2d_0012": 0.013030052185058594, "test_dgf_gridprovider_ug_3d_0013": 0.013205289840698242, "test_dgf_gridprovider_yasp_1d_0000": 0.018175125122070312, "test_dgf_gridprovider_yasp_2d_0001": 0.017711162567138672, "test_dgf_gridprovider_yasp_3d_0002": 0.01462244987487793, "test_empty": 0.043166160583496094, "test_gmsh_gridprovider_alu_2d_0000_0000": 0.02014899253845215, "test_gmsh_gridprovider_alu_2d_0001_0001": 0.022755861282348633, "test_gmsh_gridprovider_alu_2d_0002_0002": 0.021397113800048828, "test_gmsh_gridprovider_alu_3d_0000_0003": 0.022572994232177734, "test_gmsh_gridprovider_alu_3d_0001_0004": 0.021507740020751953, "test_gmsh_gridprovider_alu_3d_0002_0005": 0.016646385192871094, "test_information_1d_information_1d": 0.015696048736572266, "test_information_2d_information_2d": 0.014620542526245117, "test_information_3d_information_3d": 0.022844552993774414, "test_output_pgf": 0.02042245864868164, "test_periodic_gridview_alberta_1d_nonperiodic_rectangle_simplex_0000;test_periodic_gridview_alberta_1d_nonperiodic_unit_cube_simplex_0000;test_periodic_gridview_alberta_1d_partially_periodic_rectangle_simplex_0000;test_periodic_gridview_alberta_1d_partially_periodic_unit_cube_simplex_0000;test_periodic_gridview_alberta_1d_periodic_rectangle_simplex_0000;test_periodic_gridview_alberta_1d_periodic_unit_cube_simplex_0000": 0.01412653923034668, "test_periodic_gridview_alberta_2d_nonperiodic_rectangle_simplex_0001;test_periodic_gridview_alberta_2d_nonperiodic_unit_cube_simplex_0001;test_periodic_gridview_alberta_2d_partially_periodic_rectangle_simplex_0001;test_periodic_gridview_alberta_2d_partially_periodic_unit_cube_simplex_0001;test_periodic_gridview_alberta_2d_periodic_rectangle_simplex_0001;test_periodic_gridview_alberta_2d_periodic_unit_cube_simplex_0001": 0.014034032821655273, "test_periodic_gridview_alberta_3d_nonperiodic_rectangle_simplex_0002;test_periodic_gridview_alberta_3d_nonperiodic_unit_cube_simplex_0002;test_periodic_gridview_alberta_3d_partially_periodic_rectangle_simplex_0002;test_periodic_gridview_alberta_3d_partially_periodic_unit_cube_simplex_0002;test_periodic_gridview_alberta_3d_periodic_rectangle_simplex_0002;test_periodic_gridview_alberta_3d_periodic_unit_cube_simplex_0002": 0.01592850685119629, "test_periodic_gridview_alu_2d_0000_nonperiodic_rectangle_cube_0003;test_periodic_gridview_alu_2d_0000_nonperiodic_unit_cube_cube_0003;test_periodic_gridview_alu_2d_0000_partially_periodic_rectangle_cube_0003;test_periodic_gridview_alu_2d_0000_partially_periodic_unit_cube_cube_0003;test_periodic_gridview_alu_2d_0000_periodic_rectangle_cube_0003;test_periodic_gridview_alu_2d_0000_periodic_unit_cube_cube_0003": 0.10288047790527344, "test_periodic_gridview_alu_2d_0001_nonperiodic_rectangle_simplex_0003;test_periodic_gridview_alu_2d_0001_nonperiodic_unit_cube_simplex_0003;test_periodic_gridview_alu_2d_0001_partially_periodic_rectangle_simplex_0003;test_periodic_gridview_alu_2d_0001_partially_periodic_unit_cube_simplex_0003;test_periodic_gridview_alu_2d_0001_periodic_rectangle_simplex_0003;test_periodic_gridview_alu_2d_0001_periodic_unit_cube_simplex_0003": 0.10729146003723145, "test_periodic_gridview_alu_2d_0002_nonperiodic_rectangle_simplex_0004;test_periodic_gridview_alu_2d_0002_nonperiodic_unit_cube_simplex_0004;test_periodic_gridview_alu_2d_0002_partially_periodic_rectangle_simplex_0004;test_periodic_gridview_alu_2d_0002_partially_periodic_unit_cube_simplex_0004;test_periodic_gridview_alu_2d_0002_periodic_rectangle_simplex_0004;test_periodic_gridview_alu_2d_0002_periodic_unit_cube_simplex_0004": 0.10921049118041992, "test_periodic_gridview_alu_3d_0000_nonperiodic_rectangle_cube_0004;test_periodic_gridview_alu_3d_0000_nonperiodic_unit_cube_cube_0004;test_periodic_gridview_alu_3d_0000_partially_periodic_rectangle_cube_0004;test_periodic_gridview_alu_3d_0000_partially_periodic_unit_cube_cube_0004;test_periodic_gridview_alu_3d_0000_periodic_rectangle_cube_0004;test_periodic_gridview_alu_3d_0000_periodic_unit_cube_cube_0004": 0.11465072631835938, "test_periodic_gridview_alu_3d_0001_nonperiodic_rectangle_simplex_0005;test_periodic_gridview_alu_3d_0001_nonperiodic_unit_cube_simplex_0005;test_periodic_gridview_alu_3d_0001_partially_periodic_rectangle_simplex_0005;test_periodic_gridview_alu_3d_0001_partially_periodic_unit_cube_simplex_0005;test_periodic_gridview_alu_3d_0001_periodic_rectangle_simplex_0005;test_periodic_gridview_alu_3d_0001_periodic_unit_cube_simplex_0005": 0.11975669860839844, "test_periodic_gridview_alu_3d_0002_nonperiodic_rectangle_simplex_0006;test_periodic_gridview_alu_3d_0002_nonperiodic_unit_cube_simplex_0006;test_periodic_gridview_alu_3d_0002_partially_periodic_rectangle_simplex_0006;test_periodic_gridview_alu_3d_0002_partially_periodic_unit_cube_simplex_0006;test_periodic_gridview_alu_3d_0002_periodic_rectangle_simplex_0006;test_periodic_gridview_alu_3d_0002_periodic_unit_cube_simplex_0006": 0.10587620735168457, "test_periodic_gridview_ug_2d_nonperiodic_rectangle_cube_0005;test_periodic_gridview_ug_2d_nonperiodic_rectangle_simplex_0007;test_periodic_gridview_ug_2d_nonperiodic_unit_cube_cube_0005;test_periodic_gridview_ug_2d_nonperiodic_unit_cube_simplex_0007;test_periodic_gridview_ug_2d_partially_periodic_rectangle_cube_0005;test_periodic_gridview_ug_2d_partially_periodic_rectangle_simplex_0007;test_periodic_gridview_ug_2d_partially_periodic_unit_cube_cube_0005;test_periodic_gridview_ug_2d_partially_periodic_unit_cube_simplex_0007;test_periodic_gridview_ug_2d_periodic_rectangle_cube_0005;test_periodic_gridview_ug_2d_periodic_rectangle_simplex_0007;test_periodic_gridview_ug_2d_periodic_unit_cube_cube_0005;test_periodic_gridview_ug_2d_periodic_unit_cube_simplex_0007": 0.013364315032958984, "test_periodic_gridview_ug_3d_nonperiodic_rectangle_cube_0006;test_periodic_gridview_ug_3d_nonperiodic_rectangle_simplex_0008;test_periodic_gridview_ug_3d_nonperiodic_unit_cube_cube_0006;test_periodic_gridview_ug_3d_nonperiodic_unit_cube_simplex_0008;test_periodic_gridview_ug_3d_partially_periodic_rectangle_cube_0006;test_periodic_gridview_ug_3d_partially_periodic_rectangle_simplex_0008;test_periodic_gridview_ug_3d_partially_periodic_unit_cube_cube_0006;test_periodic_gridview_ug_3d_partially_periodic_unit_cube_simplex_0008;test_periodic_gridview_ug_3d_periodic_rectangle_cube_0006;test_periodic_gridview_ug_3d_periodic_rectangle_simplex_0008;test_periodic_gridview_ug_3d_periodic_unit_cube_cube_0006;test_periodic_gridview_ug_3d_periodic_unit_cube_simplex_0008": 0.013238668441772461, "test_periodic_gridview_yasp_1d_nonperiodic_rectangle_cube_0000;test_periodic_gridview_yasp_1d_nonperiodic_unit_cube_cube_0000;test_periodic_gridview_yasp_1d_partially_periodic_rectangle_cube_0000;test_periodic_gridview_yasp_1d_partially_periodic_unit_cube_cube_0000;test_periodic_gridview_yasp_1d_periodic_rectangle_cube_0000;test_periodic_gridview_yasp_1d_periodic_unit_cube_cube_0000": 0.12091302871704102, "test_periodic_gridview_yasp_2d_nonperiodic_rectangle_cube_0001;test_periodic_gridview_yasp_2d_nonperiodic_unit_cube_cube_0001;test_periodic_gridview_yasp_2d_partially_periodic_rectangle_cube_0001;test_periodic_gridview_yasp_2d_partially_periodic_unit_cube_cube_0001;test_periodic_gridview_yasp_2d_periodic_rectangle_cube_0001;test_periodic_gridview_yasp_2d_periodic_unit_cube_cube_0001": 0.12057709693908691, "test_periodic_gridview_yasp_3d_nonperiodic_rectangle_cube_0002;test_periodic_gridview_yasp_3d_nonperiodic_unit_cube_cube_0002;test_periodic_gridview_yasp_3d_partially_periodic_rectangle_cube_0002;test_periodic_gridview_yasp_3d_partially_periodic_unit_cube_cube_0002;test_periodic_gridview_yasp_3d_periodic_rectangle_cube_0002;test_periodic_gridview_yasp_3d_periodic_unit_cube_cube_0002": 0.12546849250793457, "test_search_alberta_1d_0003": 0.014313936233520508, "test_search_alberta_2d_0004": 0.014206886291503906, "test_search_alberta_3d_0005": 0.014241695404052734, "test_search_alu_2d_0000_0006": 0.015004634857177734, "test_search_alu_2d_0001_0007": 0.02175450325012207, "test_search_alu_2d_0002_0008": 0.019686460494995117, "test_search_alu_3d_0000_0009": 0.018866539001464844, "test_search_alu_3d_0001_0010": 0.021307945251464844, "test_search_alu_3d_0002_0011": 0.018821001052856445, "test_search_ug_2d_0012": 0.013257026672363281, "test_search_ug_3d_0013": 0.01296544075012207, "test_search_yasp_1d_0000": 0.02102828025817871, "test_search_yasp_2d_0001": 0.019915103912353516, "test_search_yasp_3d_0002": 0.019326210021972656}]
\ No newline at end of file
diff --git a/dune/xt/grid/test/walker.cc b/dune/xt/grid/test/walker.cc
index 1c7b7e71756dffc5a0c978bf5826fafd014ddc25..fd3d7fb58b2bba87d99e1fd7894b0e1560d1e1c1 100644
--- a/dune/xt/grid/test/walker.cc
+++ b/dune/xt/grid/test/walker.cc
@@ -38,7 +38,7 @@ struct GridWalkerTest : public ::testing::Test
   typedef typename GridType::LeafGridView GridLayerType;
   using EntityType = extract_entity_t<GridLayerType>;
   using IntersectionType = extract_intersection_t<GridLayerType>;
-  const GridProvider<GridType> grid_prv;
+  const GridProvider<GridType, none_t> grid_prv;
   GridWalkerTest()
     : grid_prv(make_cube_grid<GridType>(0.f, 1.f, level))
   {
diff --git a/dune/xt/grid/type_traits.hh b/dune/xt/grid/type_traits.hh
index 552161dc488a71a9b8a755a09af8ccea7e480b2f..27c9c2ea7a70c783a141e85dcd56ece7489ef576 100644
--- a/dune/xt/grid/type_traits.hh
+++ b/dune/xt/grid/type_traits.hh
@@ -7,7 +7,7 @@
 // Authors:
 //   Felix Schindler (2016 - 2017)
 //   Rene Milk       (2016 - 2018)
-//   Tobias Leibner  (2016 - 2017)
+//   Tobias Leibner  (2016 - 2018)
 
 #ifndef DUNE_XT_GRID_TYPE_TRAITS_HH
 #define DUNE_XT_GRID_TYPE_TRAITS_HH
@@ -18,7 +18,7 @@
 #include <dune/grid/common/intersection.hh>
 #include <dune/grid/common/gridview.hh>
 
-
+#include <dune/xt/common/deprecated.hh>
 #include <dune/xt/common/type_traits.hh>
 
 #include <dune/xt/grid/grids.hh>
@@ -459,24 +459,14 @@ template <class T,
           int c = 0,
           bool view = is_view<T>::value || is_dd_subdomain<T>::value || is_dd_subdomain_boundary<T>::value,
           bool part = is_part<T>::value>
-struct extract_partition_iterator : public AlwaysFalse<T>
+struct DXT_DEPRECATED_MSG("Use extract_iterator instead (24.04.2018)!") extract_partition_iterator
+    : public extract_iterator<T, c, pit, view, part>
 {
 };
 
-template <class T, PartitionIteratorType pit, int c>
-struct extract_partition_iterator<T, pit, c, true, false>
-{
-  typedef typename T::template Codim<c>::template Partition<pit>::Iterator type;
-};
-
-template <class T, PartitionIteratorType pit, int c>
-struct extract_partition_iterator<T, pit, c, false, true>
-{
-  typedef typename T::template Codim<c>::template Partition<pit>::IteratorType type;
-};
-
 template <class T, PartitionIteratorType pit, int c = 0>
-using extract_partition_iterator_t = typename extract_partition_iterator<T, pit, c>::type;
+using extract_partition_iterator_t
+    DXT_DEPRECATED_MSG("Use extract_iterator_t instead (24.04.2018)!") = extract_iterator_t<T, c, pit>;
 
 
 } // namespace Grid
diff --git a/dune/xt/grid/view/periodic.hh b/dune/xt/grid/view/periodic.hh
index 334cef61a740a83f9db11f9945bb05a4bc548fc7..64d6f8de8575321bdfa4d87bbdcfbd2a7e823b18 100644
--- a/dune/xt/grid/view/periodic.hh
+++ b/dune/xt/grid/view/periodic.hh
@@ -5,7 +5,7 @@
 //      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 //          with "runtime exception" (http://www.dune-project.org/license.html)
 // Authors:
-//   Felix Schindler (2015 - 2017)
+//   Felix Schindler (2015 - 2018)
 //   Rene Milk       (2015 - 2018)
 //   Tobias Leibner  (2015 - 2017)
 
@@ -636,10 +636,10 @@ public:
 
     /* PeriodicIterator is the same as the Iterator of the RealGridLayerType, except that it visits only one entity of
      * several periodically equivalent entities */
-    class PeriodicIterator : public extract_iterator_t<RealGridLayerType, cd>
+    template <PartitionIteratorType pit>
+    class PeriodicIterator : public extract_iterator_t<RealGridLayerType, cd, pit>
     {
-      using BaseType = extract_iterator_t<RealGridLayerType, cd>;
-      typedef PeriodicIterator ThisType;
+      using BaseType = extract_iterator_t<RealGridLayerType, cd, pit>;
       using RealIndexSetType = extract_index_set_t<RealGridLayerType>;
 
     public:
@@ -661,7 +661,7 @@ public:
       {
       }
 
-      ThisType& operator++()
+      PeriodicIterator& operator++()
       {
         BaseType::operator++();
         while (cd > 0 && *this != *real_it_end_
@@ -671,7 +671,7 @@ public:
         return *this;
       }
 
-      ThisType operator++(int)
+      PeriodicIterator operator++(int)
       {
         return this->operator++();
       }
@@ -682,60 +682,12 @@ public:
       std::shared_ptr<const BaseType> real_it_end_;
     };
 
-    typedef PeriodicIterator Iterator;
+    using Iterator = PeriodicIterator<All_Partition>;
 
     template <PartitionIteratorType pit>
     struct Partition : public RealGridLayerTraits::template Codim<cd>::template Partition<pit>
     {
-      /* PeriodicIterator is the same as the Iterator of the RealGridLayerType, except that it visits only one entity of
-       * several periodically equivalent entities */
-      class PeriodicIterator : public extract_partition_iterator_t<RealGridLayerType, pit, cd>
-      {
-        using BaseType = extract_partition_iterator_t<RealGridLayerType, pit, cd>;
-        typedef PeriodicIterator ThisType;
-        using RealIndexSetType = extract_index_set_t<RealGridLayerType>;
-
-      public:
-        typedef typename IndexSet::IndexType IndexType;
-        typedef std::ptrdiff_t difference_type;
-        using value_type = const extract_entity_t<RealGridLayerImp>;
-        typedef value_type* pointer;
-        typedef value_type& reference;
-        typedef std::forward_iterator_tag iterator_category;
-
-        PeriodicIterator(BaseType real_iterator,
-                         const std::array<std::unordered_set<IndexType>, num_geometries>* entities_to_skip,
-                         const RealIndexSetType* real_index_set,
-                         const BaseType& real_it_end)
-          : BaseType(real_iterator)
-          , entities_to_skip_(entities_to_skip)
-          , real_index_set_(real_index_set)
-          , real_it_end_(std::make_shared<const BaseType>(real_it_end))
-        {
-        }
-
-        // methods that differ from BaseType
-        ThisType& operator++()
-        {
-          BaseType::operator++();
-          while (cd > 0 && *this != *real_it_end_
-                 && (*entities_to_skip_)[GlobalGeometryTypeIndex::index(this->type())].count(
-                        real_index_set_->index(this->operator*())))
-            BaseType::operator++();
-          return *this;
-        }
-
-        ThisType operator++(int)
-        {
-          return this->operator++();
-        }
-
-      private:
-        const std::array<std::unordered_set<IndexType>, num_geometries>* entities_to_skip_;
-        const RealIndexSetType* real_index_set_;
-        std::shared_ptr<const BaseType> real_it_end_;
-      };
-      typedef PeriodicIterator Iterator;
+      using Iterator = PeriodicIterator<pit>;
     }; // struct Partition
   }; // ... struct Codim ...
 
@@ -1006,9 +958,6 @@ std::pair<bool, typename PeriodicGridLayerWrapper<RealGridLayerImp, codim_iters_
  * In the constructor, PeriodicGridLayerWrapper will build a map mapping intersections on a periodic boundary to the
  * corresponding outside entity. Further, periodically equivalent entities will be identified and given the same index.
  * Thus, the construction may take quite some time as several grid walks have to be done.
- * By default, new indices will be assigned for all entities. This may take a lot of memory for fine grids. If
- * use_less_memory is set to true, as few entities as possible will get new indices, which saves memory but may
- * degrade performance.
  * By default, all coordinate directions will be made periodic. By supplying a std::bitset< dimension > you can decide
  * for each direction whether it should be periodic (1 means periodic, 0 means 'behave like underlying grid layer in
  that
@@ -1070,12 +1019,12 @@ public:
 }; // class PeriodicGridView
 
 
-template <bool use_less_memory, class GL>
-PeriodicGridView<GL, use_less_memory>
+template <bool codim_iters_provided, class GL>
+PeriodicGridView<GL, codim_iters_provided>
 make_periodic_grid_view(const GL& real_grid_layer,
                         const std::bitset<GL::dimension> periodic_directions = std::bitset<GL::dimension>().set())
 {
-  return PeriodicGridView<GL, use_less_memory>(real_grid_layer, periodic_directions);
+  return PeriodicGridView<GL, codim_iters_provided>(real_grid_layer, periodic_directions);
 }
 
 template <class GL>
@@ -1095,12 +1044,12 @@ make_periodic_grid_view(const GL& real_grid_layer,
 template <class GL, bool c = false>
 using PeriodicGridLayer = PeriodicGridView<GL, c>;
 
-template <bool use_less_memory, class GP>
-PeriodicGridLayer<GP, use_less_memory>
+template <bool codim_iters_provided, class GP>
+PeriodicGridLayer<GP, codim_iters_provided>
 make_periodic_grid_layer(const GP& real_grid_layer,
                          const std::bitset<GP::dimension> periodic_directions = std::bitset<GP::dimension>().set())
 {
-  return PeriodicGridLayer<GP, use_less_memory>(real_grid_layer, periodic_directions);
+  return PeriodicGridLayer<GP, codim_iters_provided>(real_grid_layer, periodic_directions);
 }
 
 template <class GP>
diff --git a/dune/xt/grid/view/subdomain/indexset.hh b/dune/xt/grid/view/subdomain/indexset.hh
index 981c267d5f13531815097583d4ddae8163de3dda..7a2e823b7c45c033d8e3792c5e7988028fb89237 100644
--- a/dune/xt/grid/view/subdomain/indexset.hh
+++ b/dune/xt/grid/view/subdomain/indexset.hh
@@ -167,6 +167,13 @@ public:
     return geometryTypesByCodim_[codim];
   }
 
+  //! note here the container is returned by value opposed to a reference in geomTypes !
+  const std::vector<GeometryType> types(int codim) const
+  {
+    return geomTypes(codim);
+  }
+
+
   IndexType size(GeometryType type) const
   {
     assert(sizeByGeometryType_.find(type) != sizeByGeometryType_.end());
diff --git a/dune/xt/grid/view/subdomain/view.hh b/dune/xt/grid/view/subdomain/view.hh
index 29f33fe461ba683bc901e656047e330e2853778e..37cd7773cf75f0b2361fd514ea1708b8cdbe957c 100644
--- a/dune/xt/grid/view/subdomain/view.hh
+++ b/dune/xt/grid/view/subdomain/view.hh
@@ -7,6 +7,7 @@
 // Authors:
 //   Felix Schindler (2017)
 //   Rene Milk       (2018)
+//   Tobias Leibner  (2018)
 
 #ifndef DUNE_XT_GRID_VIEW_SUBDOMAIN_PART_HH
 #define DUNE_XT_GRID_VIEW_SUBDOMAIN_PART_HH
@@ -184,7 +185,7 @@ public:
         *globalGridView_, indexContainer_, true);
   }
 
-  int boundaryId(const Intersection& intersection) const
+  int boundaryId(const Intersection& /*intersection*/) const
   {
     DUNE_THROW(Dune::NotImplemented, "Call intersection.boundaryId() instead!");
     return -1;
diff --git a/dune/xt/grid/walker.hh b/dune/xt/grid/walker.hh
index a025451be286faff611a4f8fab49aedaceef03ca..99f32b21db7420058960bb76be2598ede218ce6b 100644
--- a/dune/xt/grid/walker.hh
+++ b/dune/xt/grid/walker.hh
@@ -23,6 +23,7 @@
 #include <tbb/tbb_stddef.h>
 #endif
 
+#include <dune/common/unused.hh>
 #include <dune/common/version.hh>
 
 #include <dune/grid/common/rangegenerators.hh>
@@ -412,7 +413,7 @@ public:
       return;
     }
 #else
-    DUNE_UNUSED const auto no_warning_for_use_tbb = use_tbb;
+    DUNE_UNUSED_PARAMETER(use_tbb);
 #endif
     // prepare functors
     prepare();
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 10bd26942fb62ed9ee878049bd541e56072ee040..e0242d80bf506bba8859c6fb2973d547e6caafcd 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -1,2 +1,11 @@
+# ~~~
+# This file is part of the dune-xt-grid project:
+#   https://github.com/dune-community/dune-xt-grid
+# Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
+# License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
+# Authors:
+#   Rene Milk (2018)
+# ~~~
+
 add_subdirectory(dune)
 dxt_add_python_tests()
diff --git a/python/dune/CMakeLists.txt b/python/dune/CMakeLists.txt
index f44afda583c85ff89232dd0c76f9165a01ffa05e..1415fd9c50efad726bd5dcfc2802261f07a1a9fa 100644
--- a/python/dune/CMakeLists.txt
+++ b/python/dune/CMakeLists.txt
@@ -1 +1,10 @@
+# ~~~
+# This file is part of the dune-xt-grid project:
+#   https://github.com/dune-community/dune-xt-grid
+# Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
+# License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
+# Authors:
+#   Rene Milk (2018)
+# ~~~
+
 add_subdirectory(xt)
diff --git a/python/dune/__init__.py b/python/dune/__init__.py
index cb7ccc730535d1684888ce4b59ad41ed54e29f82..91416c85109f868fd301d66f35c7d012a3a4c77a 100644
--- a/python/dune/__init__.py
+++ b/python/dune/__init__.py
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -8,5 +9,6 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 __import__('pkg_resources').declare_namespace(__name__)
diff --git a/python/dune/xt/CMakeLists.txt b/python/dune/xt/CMakeLists.txt
index 30c01f5dcece3812cd6fdc59380e3194fab2c42c..caa65f18675e0322585c2ef55b13fd4564b0acb6 100644
--- a/python/dune/xt/CMakeLists.txt
+++ b/python/dune/xt/CMakeLists.txt
@@ -1,3 +1,20 @@
+# ~~~
+# This file is part of the dune-xt-grid project:
+#   https://github.com/dune-community/dune-xt-grid
+# Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
+# License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
+# Authors:
+#   Rene Milk (2018)
+# ~~~
+
+dune_pybindxi_add_module(_grid EXCLUDE_FROM_ALL bindings.cc)
+dune_pybindxi_add_module(_boundaryinfo EXCLUDE_FROM_ALL boundaryinfo.cc)
+dune_pybindxi_add_module(_types EXCLUDE_FROM_ALL types.cc)
+dune_pybindxi_add_module(_walker EXCLUDE_FROM_ALL walker.cc)
+dune_pybindxi_add_module(_provider EXCLUDE_FROM_ALL provider.cc)
 
-dune_pybindxi_add_module(_grid EXCLUDE_FROM_ALL bindings.cc boundaryinfo.bindings.cc)
 add_dune_alberta_flags(GRIDDIM 2 _grid)
+add_dune_alberta_flags(GRIDDIM 2 _boundaryinfo)
+add_dune_alberta_flags(GRIDDIM 2 _types)
+add_dune_alberta_flags(GRIDDIM 2 _walker)
+add_dune_alberta_flags(GRIDDIM 2 _provider)
diff --git a/python/dune/xt/__init__.py b/python/dune/xt/__init__.py
index cb7ccc730535d1684888ce4b59ad41ed54e29f82..91416c85109f868fd301d66f35c7d012a3a4c77a 100644
--- a/python/dune/xt/__init__.py
+++ b/python/dune/xt/__init__.py
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -8,5 +9,6 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 __import__('pkg_resources').declare_namespace(__name__)
diff --git a/python/dune/xt/bindings.cc b/python/dune/xt/bindings.cc
index 472d0078f77fe92621ae1d64262545a1190e7d1e..e40eefb00f0621d37ca3c02b768c69ca6bae7afc 100644
--- a/python/dune/xt/bindings.cc
+++ b/python/dune/xt/bindings.cc
@@ -16,82 +16,20 @@
 #include <dune/common/parallel/mpihelper.hh>
 
 #include <dune/pybindxi/pybind11.h>
-#include <dune/pybindxi/stl.h>
 
 #include <python/dune/xt/common/exceptions.bindings.hh>
 
-#include <dune/xt/grid/dd/subdomains/grid.hh>
-#include <dune/xt/grid/grids.hh>
-#include <dune/xt/grid/layers.hh>
-#include <dune/xt/grid/intersection.hh>
-#include <dune/xt/grid/type_traits.hh>
-
 #include <python/dune/xt/common/bindings.hh>
-#include <python/dune/xt/grid/boundaryinfo.bindings.hh>
-#include <python/dune/xt/grid/gridprovider.pbh>
-#include <python/dune/xt/grid/walker.bindings.hh>
-#include <python/dune/xt/grid/walker/apply-on.bindings.hh>
-
-
-template <class G, Dune::XT::Grid::Layers layer, Dune::XT::Grid::Backends backend>
-void bind_walker(pybind11::module& m)
-{
-  try {
-    Dune::XT::Grid::bindings::Walker<G, layer, backend>::bind(m);
-  } catch (std::runtime_error&) {
-  }
-} // ... bind_walker(...)
-
-
-template <class G>
-void addbind_for_Grid(pybind11::module& m)
-{
-  using namespace Dune::XT::Grid;
 
-  const auto grid_id = Dune::XT::Grid::bindings::grid_name<G>::value();
-  typedef typename Layer<G, Layers::dd_subdomain, Backends::view, DD::SubdomainGrid<G>>::type DdSubdomainPart;
 
-  bind_GridProvider<G>(m, grid_id);
-  bind_make_cube_grid<G>(m, grid_id);
-
-  bind_DdSubdomainsGridProvider<G>(m, grid_id);
-  bind_make_cube_dd_subdomains_grid<G>(m, grid_id);
-
-  bind_walker<G, Layers::dd_subdomain, Backends::view>(m);
-  bind_walker<G, Layers::dd_subdomain_boundary, Backends::view>(m);
-  bind_walker<G, Layers::dd_subdomain_coupling, Backends::view>(m);
-  bind_walker<G, Layers::dd_subdomain_oversampled, Backends::view>(m);
-  bind_walker<G, Layers::leaf, Backends::view>(m);
-  bind_walker<G, Layers::level, Backends::view>(m);
-} // ... addbind_for_Grid(...)
-
-
-PYBIND11_PLUGIN(_grid)
+PYBIND11_MODULE(_grid, m)
 {
   namespace py = pybind11;
   using namespace pybind11::literals;
 
-  py::module m("_grid", "dune-xt-grid");
-
   Dune::XT::Common::bindings::addbind_exceptions(m);
 
   py::module::import("dune.xt.common");
 
-  addbind_for_Grid<Dune::YaspGrid<1, Dune::EquidistantOffsetCoordinates<double, 1>>>(m);
-  addbind_for_Grid<Dune::YaspGrid<2, Dune::EquidistantOffsetCoordinates<double, 2>>>(m);
-#if HAVE_DUNE_ALUGRID
-  addbind_for_Grid<Dune::ALUGrid<2, 2, Dune::simplex, Dune::conforming>>(m);
-#endif
-#if HAVE_DUNE_UGGRID || HAVE_UG
-  addbind_for_Grid<Dune::UGGrid<2>>(m);
-#endif
-#if HAVE_ALBERTA
-  addbind_for_Grid<Dune::AlbertaGrid<2, 2>>(m);
-#endif
-
-  DUNE_XT_GRID_BOUNDARYINFO_BIND(m);
-  DUNE_XT_GRID_WALKER_APPLYON_BIND(m);
   Dune::XT::Common::bindings::add_initialization(m, "dune.xt.grid");
-
-  return m.ptr();
 }
diff --git a/python/dune/xt/boundaryinfo.cc b/python/dune/xt/boundaryinfo.cc
new file mode 100644
index 0000000000000000000000000000000000000000..7ee0c77efe2105d6228ce3d861a1606c90e1b562
--- /dev/null
+++ b/python/dune/xt/boundaryinfo.cc
@@ -0,0 +1,101 @@
+// This file is part of the dune-xt-grid project:
+//   https://github.com/dune-community/dune-xt-grid
+// Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
+// License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
+//      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
+//          with "runtime exception" (http://www.dune-project.org/license.html)
+// Authors:
+//   Felix Schindler (2017)
+//   Rene Milk       (2018)
+
+#include "config.h"
+
+#include <string>
+#include <vector>
+#include <utility>
+
+#include <dune/common/parallel/mpihelper.hh>
+
+#include <dune/pybindxi/pybind11.h>
+#include <dune/pybindxi/stl.h>
+#include <dune/xt/grid/dd/subdomains/grid.hh>
+#include <dune/xt/common/tuple.hh>
+
+#include <python/dune/xt/common/exceptions.bindings.hh>
+#include <python/dune/xt/common/bindings.hh>
+#include <python/dune/xt/grid/boundaryinfo.bindings.hh>
+#include <python/dune/xt/grid/available_types.hh>
+
+
+using namespace Dune::XT::Common;
+using namespace Dune::XT::Grid;
+using InfoTypes = template_tuple<tplwrap<AllDirichletBoundaryInfo>,
+                                 tplwrap<AllNeumannBoundaryInfo>,
+                                 tplwrap<BoundarySegmentIndexBasedBoundaryInfo>,
+                                 tplwrap<NormalBasedBoundaryInfo>>;
+const std::array<std::string, 4> info_names{"all_dirichlet_boundary_info",
+                                            "all_neumann_boundary_info",
+                                            "boundary_segment_index_based_boundary_info",
+                                            "normal_based_boundary_info"};
+constexpr std::array<Layers, 6> layers{Layers::leaf,
+                                       Layers::level,
+                                       Layers::dd_subdomain,
+                                       Layers::dd_subdomain_oversampled,
+                                       Layers::dd_subdomain_boundary,
+                                       Layers::dd_subdomain_coupling};
+
+template <class Grid, Layers layer, class InfoTuple = InfoTypes>
+struct bind_grid_layer_info
+{
+  static void bind(pybind11::module& m, size_t info_name_no = 0)
+  {
+    using I = extract_intersection_t<
+        typename Dune::XT::Grid::
+            Layer<Grid, layer, Dune::XT::Grid::Backends::view, Dune::XT::Grid::DD::SubdomainGrid<Grid>>::type>;
+    using Info = typename InfoTuple::template head_type<I>;
+    using binder = Dune::XT::Grid::bindings::BoundaryInfo<Info, Grid, layer>;
+    binder::bind(m, info_names[info_name_no], layer_names[layer]);
+
+    using Tail = typename InfoTuple::template tail_type<I>;
+    bind_grid_layer_info<Grid, layer, Tail>::bind(m, ++info_name_no);
+  }
+};
+
+template <class Grid, Layers l>
+struct bind_grid_layer_info<Grid, l, null_template_tuple>
+{
+  static void bind(pybind11::module&, size_t)
+  {
+  }
+};
+
+
+template <class>
+void bind_grid_layer(pybind11::module& m, std::integral_constant<size_t, 0>){};
+
+template <class Grid, size_t counter>
+void bind_grid_layer(pybind11::module& m, std::integral_constant<size_t, counter>)
+{
+  bind_grid_layer_info<Grid, layers[counter - 1]>::bind(m);
+  bind_grid_layer<Grid>(m, std::integral_constant<size_t, counter - 1>());
+};
+
+template <class GridTuple = Dune::XT::Grid::bindings::AvailableTypes>
+void bind_grid(pybind11::module& m)
+{
+  using Grid = typename GridTuple::head_type;
+  bind_grid_layer<Grid>(m, std::integral_constant<size_t, layers.size()>());
+  bind_grid<typename GridTuple::tail_type>(m);
+}
+
+template <>
+void bind_grid<boost::tuples::null_type>(pybind11::module& m)
+{
+}
+
+PYBIND11_MODULE(_boundaryinfo, m)
+{
+  namespace py = pybind11;
+  using namespace pybind11::literals;
+  bind_grid(m);
+}
diff --git a/python/dune/xt/grid/__init__.py b/python/dune/xt/grid/__init__.py
index aba6c9e4336879c687b5f3fc7557bd07af1d207d..a07a91bfe59c1119d1f4d1c04b84a23984072dd9 100644
--- a/python/dune/xt/grid/__init__.py
+++ b/python/dune/xt/grid/__init__.py
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -8,72 +9,29 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
+
+import dune.xt
+
+try:
+    from dune.xt._boundaryinfo import *
+    from dune.xt._types import *
+    from dune.xt._walker import *
+    from dune.xt._provider import *
+except ImportError as e:
+    import os
+    import logging
+    if os.environ.get('DXT_PYTHON_DEBUG', False):
+        raise e
+    logging.error('dune-xt-grid bindings not available')
 
-from importlib import import_module
-
-from dune.xt.common import DEBUG # inits MPI via mpi4py
-
-_init_logger_methods = list()
-_test_logger_methods = list()
-_init_mpi_methods = list()
-_other_modules = ('xt.common', 'xt.la', 'xt.functions', 'gdt')
-
-from dune.xt._grid import __dict__ as module
-to_import = [name for name in module if not name.startswith('_')]
-globals().update({name: module[name] for name in to_import})
-_init_logger_methods.append(module['_init_logger'])
-_test_logger_methods.append(module['_test_logger'])
-_init_mpi_methods.append(module['_init_mpi'])
-del to_import
-del module
-
+HAVE_DUNE_ALUGRID = 'GridProvider__2d_simplex_aluconform' in globals()
 
-def init_logger(max_info_level=999,
-                max_debug_level=999,
-                enable_warnings=True,
-                enable_colors=True,
-                info_color='blue',
-                debug_color='darkgray',
-                warning_color='red'):
-    init_logger_methods = _init_logger_methods.copy()
-    for module_name in _other_modules:
-        try:
-            mm = import_module('dune.{}'.format(module_name))
-            for init_logger_method in mm._init_logger_methods:
-                init_logger_methods.append(init_logger_method)
-        except ModuleNotFoundError:
-            pass
-    for init_logger_method in init_logger_methods:
-        init_logger_method(max_info_level, max_debug_level, enable_warnings, enable_colors, info_color, debug_color,
-                           warning_color)
 
-def test_logger(info=True, debug=True, warning=True):
-    test_logger_methods = _test_logger_methods.copy()
-    for module_name in _other_modules:
+def make_walker(gridprovider, level = 0):
+    for factory in [globals()[s] for s in globals().keys() if s.startswith('make_walker_on_')]:
         try:
-            mm = import_module('dune.{}'.format(module_name))
-            for test_logger_method in mm._test_logger_methods:
-                test_logger_methods.append(test_logger_method)
-        except ModuleNotFoundError:
-            pass
-    for test_logger_method in test_logger_methods:
-        test_logger_method(info, debug, warning)
-
-def init_mpi(args=list()):
-    if DEBUG:
-        init_mpi_methods = [_init_mpi_methods[0],]
-    else:
-        init_mpi_methods = _init_mpi_methods.copy()
-        for module_name in _other_modules:
-            try:
-                mm = import_module('dune.{}'.format(module_name))
-                for init_mpi_method in mm._init_mpi_methods:
-                    init_mpi_methods.append(init_mpi_method)
-            except ModuleNotFoundError:
-                pass
-    for init_mpi_method in init_mpi_methods:
-        init_mpi_method(args)
-
-
-HAVE_DUNE_ALUGRID = 'GridProvider__2d_simplex_aluconform' in globals()
-
+            return factory(gridprovider, level)
+        except:
+            continue
+    raise TypeError('no matching walker for gridview {}'.format(gridprovider.__class__))
\ No newline at end of file
diff --git a/python/dune/xt/grid/available_types.hh b/python/dune/xt/grid/available_types.hh
new file mode 100644
index 0000000000000000000000000000000000000000..a568ddfddc3631a4c26c48a44cb98ebd4fd2f9f1
--- /dev/null
+++ b/python/dune/xt/grid/available_types.hh
@@ -0,0 +1,33 @@
+#ifndef PYTHON_DUNE_XT_GRID_TYPES_HH
+#define PYTHON_DUNE_XT_GRID_TYPES_HH
+
+#include <dune/xt/grid/grids.hh>
+
+#include <boost/tuple/tuple.hpp>
+
+namespace Dune {
+namespace XT {
+namespace Grid {
+namespace bindings {
+
+using AvailableTypes = boost::tuple<Dune::YaspGrid<1, Dune::EquidistantOffsetCoordinates<double, 1>>,
+                                    Dune::YaspGrid<2, Dune::EquidistantOffsetCoordinates<double, 2>>
+#if HAVE_DUNE_ALUGRID
+                                    ,
+                                    Dune::ALUGrid<2, 2, Dune::simplex, Dune::conforming>
+#endif
+#if HAVE_DUNE_UGGRID || HAVE_UG
+                                    ,
+                                    Dune::UGGrid<2>
+#endif
+#if HAVE_ALBERTA
+                                    ,
+                                    Dune::AlbertaGrid<2, 2>
+#endif
+                                    >;
+} // namespace bindings
+} // namespace Grid
+} // namespace XT
+} // namespace Dune
+
+#endif // PYTHON_DUNE_XT_GRID_TYPES_HH
\ No newline at end of file
diff --git a/python/dune/xt/grid/boundaryinfo.bindings.hh b/python/dune/xt/grid/boundaryinfo.bindings.hh
index 7bb3196bd01b9e12a0b907bf67e8773953268bc5..dd28eab74dad25d5160f73475d457e09eeb05ae6 100644
--- a/python/dune/xt/grid/boundaryinfo.bindings.hh
+++ b/python/dune/xt/grid/boundaryinfo.bindings.hh
@@ -22,7 +22,7 @@
 #include <dune/xt/grid/type_traits.hh>
 #include <dune/xt/grid/layers.hh>
 #include <dune/xt/grid/dd/subdomains/grid.hh>
-#include <python/dune/xt/common/configuration.pbh>
+#include <python/dune/xt/common/configuration.hh>
 #include "grids.bindings.hh"
 #include "layers.bindings.hh"
 
@@ -44,16 +44,16 @@ public:
     using namespace pybind11::literals;
 
     try { // guard since we might not be the first to do so for this grid/intersection
-      m.def(std::string("available_boundary_infos_on_" + layer_name<layer>::value() + "_layer").c_str(),
+      m.def(std::string("available_boundary_infos_on_" + layer_names[layer] + "_layer").c_str(),
             [](const GP& /*grid_provider*/) { return XT::Grid::BoundaryInfoFactory<I>::available(); },
             "grid_provider"_a);
-      m.def(std::string("default_boundary_info_config_on_" + layer_name<layer>::value() + "_layer").c_str(),
+      m.def(std::string("default_boundary_info_config_on_" + layer_names[layer] + "_layer").c_str(),
             [](const GP& /*grid_provider*/, const std::string& type) {
               return XT::Grid::BoundaryInfoFactory<I>::default_config(type);
             },
             "grid_provider"_a,
             "type"_a);
-      m.def(std::string("make_boundary_info_on_" + layer_name<layer>::value() + "_layer").c_str(),
+      m.def(std::string("make_boundary_info_on_" + layer_names[layer] + "_layer").c_str(),
             [](const GP& /*grid_provider*/, const Common::Configuration& cfg) {
               return XT::Grid::BoundaryInfoFactory<I>::create(cfg).release();
             },
@@ -66,7 +66,7 @@ public:
 
 
 template <class I, class G, bool anything>
-class BoundaryInfoFactory<I, GridProvider<G>, Layers::dd_subdomain, anything>
+class BoundaryInfoFactory<I, GridProvider<G, Grid::none_t>, Layers::dd_subdomain, anything>
 {
 public:
   static void bind(pybind11::module& /*m*/)
@@ -75,7 +75,7 @@ public:
 };
 
 template <class I, class G, bool anything>
-class BoundaryInfoFactory<I, GridProvider<G>, Layers::dd_subdomain_boundary, anything>
+class BoundaryInfoFactory<I, GridProvider<G, Grid::none_t>, Layers::dd_subdomain_boundary, anything>
 {
 public:
   static void bind(pybind11::module& /*m*/)
@@ -84,7 +84,7 @@ public:
 };
 
 template <class I, class G, bool anything>
-class BoundaryInfoFactory<I, GridProvider<G>, Layers::dd_subdomain_coupling, anything>
+class BoundaryInfoFactory<I, GridProvider<G, Grid::none_t>, Layers::dd_subdomain_coupling, anything>
 {
 public:
   static void bind(pybind11::module& /*m*/)
@@ -120,7 +120,7 @@ public:
     }
 
     // bind factory
-    internal::BoundaryInfoFactory<I, GridProvider<G>, layer>::bind(m);
+    internal::BoundaryInfoFactory<I, GridProvider<G, Grid::none_t>, layer>::bind(m);
     internal::BoundaryInfoFactory<I, GridProvider<G, DD::SubdomainGrid<G>>, layer>::bind(m);
 
     // bind class, guard since we might not be the first to do so for this intersection
@@ -140,142 +140,4 @@ public:
 } // namespace XT
 } // namespace Dune
 
-
-// begin: this is what we need for the lib
-
-#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(prefix, _B, _G, _layer, _backend)                                          \
-  prefix class Dune::XT::Grid::bindings::                                                                              \
-      BoundaryInfo<_B<Dune::XT::Grid::extract_intersection_t<                                                          \
-                       typename Dune::XT::Grid::Layer<_G,                                                              \
-                                                      Dune::XT::Grid::Layers::_layer,                                  \
-                                                      Dune::XT::Grid::Backends::_backend,                              \
-                                                      Dune::XT::Grid::DD::SubdomainGrid<_G>>::type>>,                  \
-                   _G,                                                                                                 \
-                   Dune::XT::Grid::Layers::_layer>
-
-#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB_YASP(prefix, _B)                                                           \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(prefix, _B, YASP_1D_EQUIDISTANT_OFFSET, leaf, view);                             \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(prefix, _B, YASP_2D_EQUIDISTANT_OFFSET, leaf, view);                             \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(prefix, _B, YASP_1D_EQUIDISTANT_OFFSET, dd_subdomain, view);                     \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(prefix, _B, YASP_2D_EQUIDISTANT_OFFSET, dd_subdomain, view)
-
-#if HAVE_DUNE_ALUGRID
-
-#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB_ALU(prefix, _B)                                                            \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(prefix, _B, ALU_2D_SIMPLEX_CONFORMING, leaf, view);                              \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(prefix, _B, ALU_2D_SIMPLEX_CONFORMING, level, view)
-//  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(prefix, _B, ALU_2D_SIMPLEX_CONFORMING, dd_subdomain, view);                      \
-//  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(prefix, _B, ALU_2D_SIMPLEX_CONFORMING, dd_subdomain_boundary, view)
-#else // HAVE_DUNE_ALUGRID
-#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB_ALU(prefix, _B)
-#endif
-
-//#if HAVE_DUNE_UGGRID || HAVE_UG
-//#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB_UG(prefix, _B)                                                           \
-//  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(prefix, _B, UG_2D, leaf, view);                                                \
-//  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(prefix, _B, UG_2D, level, view);                                               \
-//  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(prefix, _B, UG_2D, dd_subdomain, view)
-//#else
-#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB_UG(prefix, _B)
-//#endif
-
-//#if HAVE_ALBERTA
-//#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB_ALBERTA(prefix, _B)                                                      \
-//  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(prefix, _B, ALBERTA_2D, leaf, view);                                           \
-//  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(prefix, _B, ALBERTA_2D, dd_subdomain, view)
-//#else
-#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB_ALBERTA(prefix, _B)
-//#endif
-
-#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB_ALL(prefix, _B)                                                            \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB_YASP(prefix, _B);                                                                \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB_UG(prefix, _B);                                                                  \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB_ALBERTA(prefix, _B);                                                             \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB_ALU(prefix, _B)
-
-#define DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(prefix)                                                                     \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB_ALL(prefix, Dune::XT::Grid::AllDirichletBoundaryInfo);                           \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB_ALL(prefix, Dune::XT::Grid::AllNeumannBoundaryInfo);                             \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB_ALL(prefix, Dune::XT::Grid::BoundarySegmentIndexBasedBoundaryInfo);              \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB_ALL(prefix, Dune::XT::Grid::NormalBasedBoundaryInfo)
-
-DUNE_XT_GRID_BOUNDARYINFO_BIND_LIB(extern template);
-
-// end: this is what we need for the lib
-
-
-// begin: this is what we need for the .so
-
-#define _DUNE_XT_GRID_BOUNDARYINFO_BIND(_m, _B, _G, _layer, _backend, _class_name, _layer_name)                        \
-  Dune::XT::Grid::bindings::                                                                                           \
-      BoundaryInfo<_B<Dune::XT::Grid::extract_intersection_t<                                                          \
-                       typename Dune::XT::Grid::Layer<_G,                                                              \
-                                                      Dune::XT::Grid::Layers::_layer,                                  \
-                                                      Dune::XT::Grid::Backends::_backend,                              \
-                                                      Dune::XT::Grid::DD::SubdomainGrid<_G>>::type>>,                  \
-                   _G,                                                                                                 \
-                   Dune::XT::Grid::Layers::_layer>::bind(_m, _class_name, _layer_name)
-
-#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_YASP(_m, _B, _class_name)                                                      \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND(_m, _B, YASP_1D_EQUIDISTANT_OFFSET, leaf, view, _class_name, "");                    \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND(                                                                                     \
-      _m, _B, YASP_1D_EQUIDISTANT_OFFSET, dd_subdomain, view, _class_name, "dd_subdomain");                            \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND(                                                                                     \
-      _m, _B, YASP_1D_EQUIDISTANT_OFFSET, dd_subdomain_boundary, view, _class_name, "dd_subdomain_boundary");          \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND(                                                                                     \
-      _m, _B, YASP_1D_EQUIDISTANT_OFFSET, dd_subdomain_coupling, view, _class_name, "dd_subdomain_coupling");          \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND(_m, _B, YASP_2D_EQUIDISTANT_OFFSET, leaf, view, _class_name, "");                    \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND(                                                                                     \
-      _m, _B, YASP_2D_EQUIDISTANT_OFFSET, dd_subdomain, view, _class_name, "dd_subdomain");                            \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND(                                                                                     \
-      _m, _B, YASP_2D_EQUIDISTANT_OFFSET, dd_subdomain_boundary, view, _class_name, "dd_subdomain_boundary");          \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND(                                                                                     \
-      _m, _B, YASP_2D_EQUIDISTANT_OFFSET, dd_subdomain_coupling, view, _class_name, "dd_subdomain_coupling")
-
-#if HAVE_DUNE_ALUGRID
-#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_ALU(_m, _B, _class_name)                                                       \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND(_m, _B, ALU_2D_SIMPLEX_CONFORMING, leaf, view, _class_name, "leaf");                 \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND(_m, _B, ALU_2D_SIMPLEX_CONFORMING, level, view, _class_name, "level");               \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND(_m, _B, ALU_2D_SIMPLEX_CONFORMING, dd_subdomain, view, _class_name, "dd_subdomain"); \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND(                                                                                     \
-      _m, _B, ALU_2D_SIMPLEX_CONFORMING, dd_subdomain_boundary, view, _class_name, "dd_subdomain_boundary");           \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND(                                                                                     \
-      _m, _B, ALU_2D_SIMPLEX_CONFORMING, dd_subdomain_coupling, view, _class_name, "dd_subdomain_coupling")
-#else
-#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_ALU(_m, _B, _class_name)
-#endif
-
-//#if HAVE_DUNE_UGGRID
-//#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_UG(_m, _B, _class_name)                                                      \
-//  _DUNE_XT_GRID_BOUNDARYINFO_BIND(_m, _B, UG_2D, leaf, view, _class_name, "leaf");                                   \
-//  _DUNE_XT_GRID_BOUNDARYINFO_BIND(_m, _B, UG_2D, level, view, _class_name, "level");                                 \
-//  _DUNE_XT_GRID_BOUNDARYINFO_BIND(_m, _B, UG_2D, dd_subdomain, view, _class_name, "dd_subdomain")
-//#else
-#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_UG(_m, _B, _class_name)
-//#endif
-
-//#if HAVE_ALBERTA
-//#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_ALBERTA(_m, _B, _class_name)                                                 \
-//  _DUNE_XT_GRID_BOUNDARYINFO_BIND(_m, _B, ALBERTA_2D, leaf, view, _class_name, "");                                  \
-//  _DUNE_XT_GRID_BOUNDARYINFO_BIND(_m, _B, ALBERTA_2D, dd_subdomain, view, _class_name, "dd_subdomain")
-//#else
-#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_ALBERTA(_m, _B, _class_name)
-//#endif
-
-#define _DUNE_XT_GRID_BOUNDARYINFO_BIND_ALL(_m, _B, _class_name)                                                       \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_YASP(_m, Dune::XT::Grid::_B, _class_name);                                           \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_UG(_m, Dune::XT::Grid::_B, _class_name);                                             \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_ALBERTA(_m, Dune::XT::Grid::_B, _class_name);                                        \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_ALU(_m, Dune::XT::Grid::_B, _class_name)
-
-#define DUNE_XT_GRID_BOUNDARYINFO_BIND(_m)                                                                             \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_ALL(_m, AllDirichletBoundaryInfo, "all_dirichlet_boundary_info");                    \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_ALL(_m, AllNeumannBoundaryInfo, "all_neumann_boundary_info");                        \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_ALL(                                                                                 \
-      _m, BoundarySegmentIndexBasedBoundaryInfo, "boundary_segment_index_based_boundary_info");                        \
-  _DUNE_XT_GRID_BOUNDARYINFO_BIND_ALL(_m, NormalBasedBoundaryInfo, "normal_based_boundary_info")
-
-// end: this is what we need for the .so
-
-
 #endif // DUNE_XT_GRID_BOUNDARYINFO_BINDINGS_HH
diff --git a/python/dune/xt/grid/gridprovider.pbh b/python/dune/xt/grid/gridprovider.hh
similarity index 97%
rename from python/dune/xt/grid/gridprovider.pbh
rename to python/dune/xt/grid/gridprovider.hh
index 08c2954432b0c1de44360cf3b59c49930af65694..e8af7e3da5071dd50b0e315b3508dfccd493358e 100644
--- a/python/dune/xt/grid/gridprovider.pbh
+++ b/python/dune/xt/grid/gridprovider.hh
@@ -16,9 +16,9 @@
 #include <dune/pybindxi/pybind11.h>
 #include <dune/pybindxi/stl.h>
 
-#include <python/dune/xt/common/configuration.pbh>
+#include <python/dune/xt/common/configuration.hh>
 #include <dune/xt/common/exceptions.hh>
-#include <python/dune/xt/common/fvector.pbh>
+#include <python/dune/xt/common/fvector.hh>
 #include <dune/xt/common/numeric_cast.hh>
 #include <dune/xt/grid/dd/subdomains/grid.hh>
 #include <dune/xt/grid/entity.hh>
@@ -31,12 +31,12 @@ namespace Grid {
 
 
 template <class G>
-pybind11::class_<GridProvider<G>> bind_GridProvider(pybind11::module& m, const std::string& grid_id)
+pybind11::class_<GridProvider<G, Grid::none_t>> bind_GridProvider(pybind11::module& m, const std::string& grid_id)
 {
   namespace py = pybind11;
   using namespace pybind11::literals;
 
-  typedef GridProvider<G, int> C;
+  typedef GridProvider<G, Grid::none_t> C;
 
   py::class_<C> c(m, std::string("GridProvider__" + grid_id).c_str(), std::string("GridProvider__" + grid_id).c_str());
 
diff --git a/python/dune/xt/grid/layers.bindings.hh b/python/dune/xt/grid/layers.bindings.hh
index 19a3cf496e21c9f37c112562aafa947ba0b32fa4..2a2a98311498ae0d8853b99c17bf37ae16522fee 100644
--- a/python/dune/xt/grid/layers.bindings.hh
+++ b/python/dune/xt/grid/layers.bindings.hh
@@ -45,75 +45,9 @@ struct backend_name<Backends::view>
 template <Layers layer>
 struct layer_name
 {
-  static_assert(AlwaysFalse<typename XT::Grid::internal::layer_dependent_typename<layer>::type>::value,
-                "Please add a specialization for this layer!");
-
-  static std::string value()
-  {
-    return "";
-  }
-};
-
-template <>
-struct layer_name<Layers::adaptive_leaf>
-{
-  static std::string value()
-  {
-    return "adaptive_leaf";
-  }
-};
-
-template <>
-struct layer_name<Layers::dd_subdomain>
-{
-  static std::string value()
-  {
-    return "dd_subdomain";
-  }
-};
-
-template <>
-struct layer_name<Layers::dd_subdomain_boundary>
-{
-  static std::string value()
-  {
-    return "dd_subdomain_boundary";
-  }
-};
-
-template <>
-struct layer_name<Layers::dd_subdomain_coupling>
-{
-  static std::string value()
-  {
-    return "dd_subdomain_coupling";
-  }
-};
-
-template <>
-struct layer_name<Layers::dd_subdomain_oversampled>
-{
-  static std::string value()
-  {
-    return "dd_subdomain_oversampled";
-  }
-};
-
-template <>
-struct layer_name<Layers::leaf>
-{
-  static std::string value()
-  {
-    return "leaf";
-  }
-};
-
-template <>
-struct layer_name<Layers::level>
-{
-  static std::string value()
+  DXT_DEPRECATED_MSG("use layer_names[layer] directly. 2018/7/2") static std::string value()
   {
-    return "level";
+    return layer_names[layer];
   }
 };
 
diff --git a/python/dune/xt/grid/types.py b/python/dune/xt/grid/types.py
new file mode 100644
index 0000000000000000000000000000000000000000..f8449b24aa4b9cd17a705e28de35daa1e56dc823
--- /dev/null
+++ b/python/dune/xt/grid/types.py
@@ -0,0 +1,35 @@
+from collections import namedtuple
+
+arguments = {'alu': namedtuple('alu_args', 'dim element_type refinement'),
+             'yasp': namedtuple('yasp_args', 'dim'),
+             'ug': namedtuple('ug_args', 'dim'),
+             'alberta': namedtuple('alberta_args', 'dim')}
+templates = { 'alu': 'Dune::ALUGrid<{dim},{dim},Dune::{element_type},Dune::{refinement}>',
+              'yasp': 'Dune::YaspGrid<{dim},Dune::EquidistantOffsetCoordinates<double,{dim}>>',
+              'ug': 'Dune::UGGrid<{dim}>',
+              'alberta': 'Dune::AlbertaGrid<{dim},{dim}>'}
+guards = { 'alu': 'dune-alugrid',
+           'yasp': 'dune-grid',
+           'ug': 'dune-uggrid',
+           'alberta': 'ALBERTA_FOUND'}
+
+
+def _is_usable(grid, cache):
+    return cache[guards[grid]]
+
+
+def all_args(dims):
+    two_and_three = [f for f in dims if 1 < f < 4]
+    return {'alu': [arguments['alu'](d, 'simplex', e) for e in ('nonconforming', 'conforming') for d in two_and_three] +
+                    [arguments['alu'](d, 'cube', 'nonconforming') for d in two_and_three],
+            'yasp': [arguments['yasp'](d) for d in dims if d > 0],
+            'ug': [arguments['ug'](d) for d in two_and_three],
+            'alberta': [arguments['alberta'](d) for d in two_and_three]}
+
+
+def all_types(cache, dims, gridnames=None):
+    gridnames = gridnames or templates.keys()
+    return [templates[grid].format(**arg._asdict()) \
+                for grid in  gridnames if _is_usable(grid, cache) \
+                for arg in all_args(dims)[grid]]
+
diff --git a/python/dune/xt/grid/walker.bindings.hh b/python/dune/xt/grid/walker.bindings.hh
index 70e574aaa862245c637562ba72890aa10e87f7e5..78db04ba3718f73b76574d3224513fb8fee67fe7 100644
--- a/python/dune/xt/grid/walker.bindings.hh
+++ b/python/dune/xt/grid/walker.bindings.hh
@@ -26,32 +26,19 @@ namespace Grid {
 namespace bindings {
 namespace internal {
 
-
-template <class GL>
-class Walker
+template <class WalkerOrDerivedType, class... Bases>
+static void bind_walker_functions(pybind11::class_<WalkerOrDerivedType, Bases...>& c)
 {
-  static_assert(is_layer<GL>::value, "");
-
-public:
-  typedef XT::Grid::Walker<GL> type;
-  typedef pybind11::class_<type> bound_type;
-
-  static bound_type bind(pybind11::module& m, const std::string& grid_and_layer_name)
-  {
-    namespace py = pybind11;
-    using namespace pybind11::literals;
-
-    bound_type c(m, Common::to_camel_case(std::string("walker_") + grid_and_layer_name).c_str());
-    c.def("clear", &type::clear);
-    c.def("append", [](type& self, type& other) { self.append(other); }, "other"_a, py::keep_alive<1, 2>());
-    c.def("prepare", &type::prepare);
-    c.def("finalize", &type::finalize);
-    c.def("walk", [](type& self, const bool use_tbb) { self.walk(use_tbb); }, "use_tbb"_a = false);
-
-    return c;
-  } // ... bind(...)
-}; // class Walker
+  namespace py = pybind11;
+  using namespace pybind11::literals;
+  using type = WalkerOrDerivedType;
 
+  c.def("clear", &type::clear);
+  c.def("append", [](type& self, type& other) { self.append(other); }, "other"_a, py::keep_alive<1, 2>());
+  c.def("prepare", &type::prepare);
+  c.def("finalize", &type::finalize);
+  c.def("walk", [](type& self, const bool use_tbb) { self.walk(use_tbb); }, "use_tbb"_a = false);
+} // ... bind(...)
 
 } // namespace internal
 
@@ -61,11 +48,10 @@ class Walker
 {
   static_assert(is_grid<G>::value, "");
   typedef typename Layer<G, layer, backend>::type GL;
-  using binder = internal::Walker<GL>;
 
 public:
-  using type = typename binder::type;
-  using bound_type = typename binder::bound_type;
+  using type = XT::Grid::Walker<GL>;
+  using bound_type = pybind11::class_<type>;
 
 private:
   template <bool is_dd = (layer == Layers::dd_subdomain || layer == Layers::dd_subdomain_boundary
@@ -78,7 +64,7 @@ private:
     {
       using namespace pybind11::literals;
 
-      m.def(std::string("make_walker_on_" + layer_name<layer>::value() + "_" + backend_name<backend>::value()).c_str(),
+      m.def(std::string("make_walker_on_" + layer_names[layer] + "_" + backend_name<backend>::value()).c_str(),
             [](GridProvider<G, DD::SubdomainGrid<G>>& grid_provider, const int level_or_subdomain) {
               return type(grid_provider.template layer<layer, backend>(level_or_subdomain));
             },
@@ -94,8 +80,8 @@ private:
     {
       using namespace pybind11::literals;
 
-      m.def(std::string("make_walker_on_" + layer_name<layer>::value() + "_" + backend_name<backend>::value()).c_str(),
-            [](GridProvider<G>& grid_provider, const int level) {
+      m.def(std::string("make_walker_on_" + layer_names[layer] + "_" + backend_name<backend>::value()).c_str(),
+            [](GridProvider<G, Dune::XT::Grid::none_t>& grid_provider, const int level) {
               return type(grid_provider.template layer<layer, backend>(level));
             },
             "grid_provider"_a,
@@ -111,8 +97,10 @@ public:
     // we need to add the factory methods first, since adding the class below might fail (if someone added it before)
     factory_method<>::addbind(m);
 
-    return binder::bind(
-        m, grid_name<G>::value() + "_" + layer_name<layer>::value() + "_" + backend_name<backend>::value());
+    const auto gl_name = grid_name<G>::value() + "_" + layer_names[layer] + "_" + backend_name<backend>::value();
+    bound_type c(m, Common::to_camel_case(std::string("walker_") + gl_name).c_str());
+    internal::bind_walker_functions(c);
+    return c;
   }
 }; // class Walker
 
diff --git a/python/dune/xt/grid/walker/apply-on.bindings.hh b/python/dune/xt/grid/walker/apply-on.bindings.hh
index 6b5868eb12a2f23206543e52c078babe2e2a2b1f..8403b125c1d82ac1c3b28bbf945e2cb09509618f 100644
--- a/python/dune/xt/grid/walker/apply-on.bindings.hh
+++ b/python/dune/xt/grid/walker/apply-on.bindings.hh
@@ -120,10 +120,10 @@ public:
                Dune::XT::Grid::bindings::layer_name<Dune::XT::Grid::Layers::_layer>::value() + "_"                     \
                    + Dune::XT::Grid::bindings::backend_name<Dune::XT::Grid::Backends::_backend>::value())
 
-//#if HAVE_ALBERTA
-//#define _DUNE_XT_GRID_WALKER_APPLYON_BIND_ALBERTA(_m, _W, _w, _layer, _backend, _class_name)                                   \
-//  _DUNE_XT_GRID_WALKER_APPLYON_BIND(_m, _W, _w, ALBERTA_2D, _layer, _backend, _class_name)
-//#else
+/*#if HAVE_ALBERTA
+#define _DUNE_XT_GRID_WALKER_APPLYON_BIND_ALBERTA(_m, _W, _w, _layer, _backend, _class_name) \
+  _DUNE_XT_GRID_WALKER_APPLYON_BIND(_m, _W, _w, ALBERTA_2D, _layer, _backend, _class_name)
+#else*/
 #define _DUNE_XT_GRID_WALKER_APPLYON_BIND_ALBERTA(_m, _W, _w, _layer, _backend, _class_name)
 //#endif
 
@@ -134,10 +134,10 @@ public:
 #define _DUNE_XT_GRID_WALKER_APPLYON_BIND_ALU(_m, _W, _w, _layer, _backend, _class_name)
 #endif
 
-//#if HAVE_DUNE_UGGRID
-//#define _DUNE_XT_GRID_WALKER_APPLYON_BIND_UG(_m, _W, _w, _layer, _backend, _class_name)                                        \
-//  _DUNE_XT_GRID_WALKER_APPLYON_BIND(_m, _W, _w, UG_2D, _layer, _backend, _class_name)
-//#else
+/*#if HAVE_DUNE_UGGRID
+#define _DUNE_XT_GRID_WALKER_APPLYON_BIND_UG(_m, _W, _w, _layer, _backend, _class_name) \
+  _DUNE_XT_GRID_WALKER_APPLYON_BIND(_m, _W, _w, UG_2D, _layer, _backend, _class_name)
+#else*/
 #define _DUNE_XT_GRID_WALKER_APPLYON_BIND_UG(_m, _W, _w, _layer, _backend, _class_name)
 //#endif
 
diff --git a/python/dune/xt/provider.cc b/python/dune/xt/provider.cc
new file mode 100644
index 0000000000000000000000000000000000000000..d819068e4def418d63b650d2b352f2326001ac07
--- /dev/null
+++ b/python/dune/xt/provider.cc
@@ -0,0 +1,58 @@
+// This file is part of the dune-xt-grid project:
+//   https://github.com/dune-community/dune-xt-grid
+// Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
+// License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
+//      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
+//          with "runtime exception" (http://www.dune-project.org/license.html)
+// Authors:
+//   Felix Schindler (2016 - 2017)
+//   Rene Milk       (2018)
+
+#include "config.h"
+
+#include <string>
+#include <vector>
+
+#include <dune/common/parallel/mpihelper.hh>
+
+#include <dune/pybindxi/pybind11.h>
+#include <dune/pybindxi/stl.h>
+
+#include <dune/xt/grid/dd/subdomains/grid.hh>
+#include <dune/xt/grid/grids.hh>
+#include <dune/xt/grid/layers.hh>
+
+#include <python/dune/xt/common/bindings.hh>
+#include <python/dune/xt/grid/grids.bindings.hh>
+#include <python/dune/xt/grid/gridprovider.hh>
+#include <python/dune/xt/grid/available_types.hh>
+
+template <class Tuple = Dune::XT::Grid::bindings::AvailableTypes>
+void addbind_for_Grid(pybind11::module& m)
+{
+  using namespace Dune::XT::Grid;
+  using G = typename Tuple::head_type;
+  const auto grid_id = Dune::XT::Grid::bindings::grid_name<G>::value();
+  typedef typename Layer<G, Layers::dd_subdomain, Backends::view, DD::SubdomainGrid<G>>::type DdSubdomainPart;
+
+  bind_GridProvider<G>(m, grid_id);
+  bind_make_cube_grid<G>(m, grid_id);
+
+  bind_DdSubdomainsGridProvider<G>(m, grid_id);
+  bind_make_cube_dd_subdomains_grid<G>(m, grid_id);
+
+  addbind_for_Grid<typename Tuple::tail_type>(m);
+} // ... addbind_for_Grid(...)
+
+template <>
+void addbind_for_Grid<boost::tuples::null_type>(pybind11::module& m)
+{
+}
+
+PYBIND11_MODULE(_provider, m)
+{
+  namespace py = pybind11;
+  using namespace pybind11::literals;
+
+  addbind_for_Grid(m);
+}
diff --git a/python/dune/xt/types.cc b/python/dune/xt/types.cc
new file mode 100644
index 0000000000000000000000000000000000000000..a1e15b67e33da7c633da1ab7c4377114f54eb3c1
--- /dev/null
+++ b/python/dune/xt/types.cc
@@ -0,0 +1,49 @@
+// This file is part of the dune-xt-grid project:
+//   https://github.com/dune-community/dune-xt-grid
+// Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
+// License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
+//      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
+//          with "runtime exception" (http://www.dune-project.org/license.html)
+// Authors:
+//   Felix Schindler (2016 - 2017)
+//   Rene Milk       (2018)
+
+#include "config.h"
+
+#include <string>
+#include <vector>
+
+#include <boost/tuple/tuple.hpp>
+
+#include <dune/common/parallel/mpihelper.hh>
+
+#include <dune/pybindxi/pybind11.h>
+#include <dune/pybindxi/stl.h>
+
+#include <python/dune/xt/grid/available_types.hh>
+#include <python/dune/xt/grid/grids.bindings.hh>
+
+template <class Tuple = Dune::XT::Grid::bindings::AvailableTypes>
+void addbind_for_Grid(pybind11::module& m, std::vector<std::string>& available_types)
+{
+  using G = typename Tuple::head_type;
+  const auto grid_id = Dune::XT::Grid::bindings::grid_name<G>::value();
+  available_types.push_back(grid_id);
+  addbind_for_Grid<typename Tuple::tail_type>(m, available_types);
+} // ... addbind_for_Grid(...)
+
+
+template <>
+void addbind_for_Grid<boost::tuples::null_type>(pybind11::module& m, std::vector<std::string>& available_types)
+{
+}
+
+PYBIND11_MODULE(_types, m)
+{
+  namespace py = pybind11;
+
+  py::module::import("dune.xt.common");
+  std::vector<std::string> available_types;
+  addbind_for_Grid(m, available_types);
+  m.attr("available_types") = available_types;
+}
diff --git a/python/dune/xt/walker.cc b/python/dune/xt/walker.cc
new file mode 100644
index 0000000000000000000000000000000000000000..bf8a77d79bcc4dd7cc8f858399457a939c627671
--- /dev/null
+++ b/python/dune/xt/walker.cc
@@ -0,0 +1,72 @@
+// This file is part of the dune-xt-grid project:
+//   https://github.com/dune-community/dune-xt-grid
+// Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
+// License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
+//      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
+//          with "runtime exception" (http://www.dune-project.org/license.html)
+// Authors:
+//   Felix Schindler (2016 - 2017)
+//   Rene Milk       (2018)
+
+#include "config.h"
+
+#include <string>
+#include <vector>
+
+#include <dune/common/parallel/mpihelper.hh>
+
+#include <dune/pybindxi/pybind11.h>
+#include <dune/pybindxi/stl.h>
+
+#include <python/dune/xt/common/exceptions.bindings.hh>
+
+#include <dune/xt/grid/dd/subdomains/grid.hh>
+#include <dune/xt/grid/grids.hh>
+#include <dune/xt/grid/layers.hh>
+
+#include <python/dune/xt/common/bindings.hh>
+#include <python/dune/xt/grid/boundaryinfo.bindings.hh>
+#include <python/dune/xt/grid/walker.bindings.hh>
+#include <python/dune/xt/grid/walker/apply-on.bindings.hh>
+
+#include <python/dune/xt/grid/available_types.hh>
+
+template <class G, Dune::XT::Grid::Layers layer, Dune::XT::Grid::Backends backend>
+void bind_walker(pybind11::module& m)
+{
+  try {
+    Dune::XT::Grid::bindings::Walker<G, layer, backend>::bind(m);
+  } catch (std::runtime_error&) {
+  }
+} // ... bind_walker(...)
+
+
+template <class Tuple = Dune::XT::Grid::bindings::AvailableTypes>
+void addbind_for_Grid(pybind11::module& m)
+{
+  using namespace Dune::XT::Grid;
+  using G = typename Tuple::head_type;
+
+  bind_walker<G, Layers::dd_subdomain, Backends::view>(m);
+  bind_walker<G, Layers::dd_subdomain_boundary, Backends::view>(m);
+  bind_walker<G, Layers::dd_subdomain_coupling, Backends::view>(m);
+  bind_walker<G, Layers::dd_subdomain_oversampled, Backends::view>(m);
+  bind_walker<G, Layers::leaf, Backends::view>(m);
+  bind_walker<G, Layers::level, Backends::view>(m);
+
+  addbind_for_Grid<typename Tuple::tail_type>(m);
+} // ... addbind_for_Grid(...)
+
+template <>
+void addbind_for_Grid<boost::tuples::null_type>(pybind11::module& m)
+{
+}
+
+
+PYBIND11_MODULE(_walker, m)
+{
+  namespace py = pybind11;
+  using namespace pybind11::literals;
+  addbind_for_Grid(m);
+  DUNE_XT_GRID_WALKER_APPLYON_BIND(m);
+}
diff --git a/python/setup.cfg b/python/setup.cfg
index 0a8a83b61029800f037d23ce5913eac537c9cebb..b104fd8b24537a41032532371f09c2f57f095730 100644
--- a/python/setup.cfg
+++ b/python/setup.cfg
@@ -1,3 +1,12 @@
+# ~~~
+# This file is part of the dune-xt-grid project:
+#   https://github.com/dune-community/dune-xt-grid
+# Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
+# License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
+# Authors:
+#   Rene Milk (2018)
+# ~~~
+
 [aliases]
 test = pytest
 
@@ -25,7 +34,7 @@ python_files = test/*.py
 python_class = Test
 pep8maxlinelength = 120
 pep8ignore = E221,E226,E241,E242
-addopts= --cov dune/ -p no:warnings
+addopts= --cov dune/ -p no:warnings -s
 
 [metadata]
 # this is mandatory to lave license end up in .whl
diff --git a/python/setup.py b/python/setup.py
index 1a954006fccc66ce671035712c1dabae3fb3ecae..9bfddeef625490b9404248275f78753f004c1098 100644
--- a/python/setup.py
+++ b/python/setup.py
@@ -1,15 +1,18 @@
 #!/usr/bin/env python
 #
-# This file is part of the dune-xt-common project:
-#   https://github.com/dune-community/dune-xt-common
-# Copyright 2009-2018 dune-xt-common developers and contributors. All rights reserved.
+# ~~~
+# This file is part of the dune-xt-grid project:
+#   https://github.com/dune-community/dune-xt-grid
+# Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
 # License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
 # Authors:
-#   Felix Schindler (2017)
-#   Rene Milk       (2016 - 2018)
+#   Rene Milk (2018)
+#
+# This file is part of the dune-xt-common project:
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 import sys
 from setuptools import setup, find_packages
diff --git a/python/test/base.py b/python/test/base.py
index d123f9eb9d4e25eb386305bb88fc583be0ed4be2..c1bea381de38611e55e43e358baab428b584676b 100644
--- a/python/test/base.py
+++ b/python/test/base.py
@@ -1,3 +1,11 @@
+# ~~~
+# This file is part of the dune-xt-grid project:
+#   https://github.com/dune-community/dune-xt-grid
+# Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
+# License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
+# Authors:
+#   Rene Milk (2018)
+# ~~~
 
 import pytest
 from dune.xt.common.test import load_all_submodule
diff --git a/python/test/walker.py b/python/test/walker.py
new file mode 100644
index 0000000000000000000000000000000000000000..e2ead162d23cb86e7b5e16fdc19edbc6f17d3d1d
--- /dev/null
+++ b/python/test/walker.py
@@ -0,0 +1,51 @@
+# ~~~
+# This file is part of the dune-xt-grid project:
+#   https://github.com/dune-community/dune-xt-grid
+# Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
+# License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
+# Authors:
+#   Rene Milk (2018)
+# ~~~
+
+import pytest
+import dune.xt.common as xtc
+import dune.xt.grid as xtg
+
+
+@pytest.fixture(params=xtg.available_types)
+def grid_provider(request):
+    fn = 'make_cube_grid__{}'.format(request.param)
+    maker = getattr(xtg, fn)
+    return maker()
+
+
+def test_available():
+    assert len(xtg.available_types) > 0
+
+
+def test_grid_provider(grid_provider):
+    assert grid_provider.max_level() >= 0
+    num_el = grid_provider.num_elements
+    assert num_el > 1
+    grid_provider.global_refine(1)
+    try:
+        grid_provider.visualize()
+    except xtc.DuneError as e:
+        if 'NotImplemented' not in str(e):
+            raise e
+    assert grid_provider.num_elements > num_el
+    assert grid_provider.num_subdomains == 1
+    assert grid_provider.max_entity_diameter() > 0
+    assert grid_provider.dim > 0
+
+
+def test_walker(grid_provider):
+    walker = xtg.make_walker(grid_provider)
+    walker.walk()
+    walker.clear()
+
+
+
+def test_count():
+    pass
+
diff --git a/stamp-vc b/stamp-vc
index 4819f96ae0883ae60ccffc5b8d5956d627a64d0e..698b40b3575c25964bfb0f42b39c9ef899ec0819 100644
--- a/stamp-vc
+++ b/stamp-vc
@@ -1,3 +1,4 @@
+# ~~~
 # This file is part of the dune-xt-grid project:
 #   https://github.com/dune-community/dune-xt-grid
 # Copyright 2009-2018 dune-xt-grid developers and contributors. All rights reserved.
@@ -8,5 +9,6 @@
 #
 #      or  GPL-2.0+ (http://opensource.org/licenses/gpl-license)
 #          with "runtime exception" (http://www.dune-project.org/license.html)
+# ~~~
 
 A stamp file to signify that this directory comes from a version control system, not an unpacked tarball