diff --git a/.gitsuper b/.gitsuper
index bf285779d3af75abb7eabd65b65e31462a75dee2..4654ef84fd64e000cb7e21d0b37080f66abddcfb 100644
--- a/.gitsuper
+++ b/.gitsuper
@@ -1,25 +1,26 @@
 [supermodule]
-remote = git@github.com:dune-community/dune-xt-super.git
+remote = git@github.com:dune-community/dune-gdt-super.git
 status = 1a3bcab04b011a5d6e44f9983cae6ff89fa695e8 bin (heads/master)
-	 5147d438044a772a07fd89ff142d861cfc82212e config.opts (heads/master)
+	 8bc25f171f1901e24bb88812ba222c9fa57a8f2f config.opts (heads/master)
 	 8f2c5aba441417bf2c42f22272f538c68a89cc4a dune-alugrid (remotes/origin/releases/2.5)
 	 707acf201d5a754c80f87cc4d71aa36bf29a6e3f dune-common (v2.5.1-9-g707acf20)
-	 e6350271b8d014adab51467a35b6ad8ef48212a0 dune-geometry (v2.5.1-6-ge635027)
+	+0b901bd6d29e771b6f145656be1704e3c9865529 dune-gdt (heads/new-master)
+	 390a2c503783bbed778a8ff610f8c5ca09c238d0 dune-geometry (v2.5.1-5-g390a2c5)
 	 d7b20bbc5f6fdcfc312beb0ea5d16d39ea26904e dune-grid (v2.5.1-2-gd7b20bbc5)
-	 e9d9a3336735090648637e044e279866bbea3597 dune-grid-glue (v2.4.0-60-ge9d9a33)
+	 9e29a333e8af02382d80b95335a784d5ce1ea2c8 dune-grid-glue (v2.4.0-70-g9e29a33)
 	 63df56a54f81eda308233a683eb329e77e69f0a9 dune-istl (v2.5.1rc1)
 	 0d757d65e5d57134a7ecf304e35d063f4ccc7116 dune-localfunctions (v2.5.1rc1)
 	 8a69fc68165780921bbba77da338b6932daf983c dune-pybindxi (v2.2.1-16-g8a69fc6)
 	 741e4f8e53bdd3e1b6e19d84eb22b6e3dc48526c dune-python (remotes/origin/releases/2.5)
 	 26cc8cb4161a3a51002ab2a81b8c81d2c951ee79 dune-testtools (remotes/origin/p/renemilk/testname_listing_hack_no-skiptest)
-	 8fe883e99c58c9f0c2f92457d546a0ac9f5a9bf9 dune-uggrid (v2.5.2-1-g8fe883e9)
-	+0a68a9c971451632566cb16a4f8acc7314f34d92 dune-xt-common (heads/master)
-	+7694fbeee4a57b162d404a497e6254721468a3ee dune-xt-data (heads/master)
-	+183273c3ab84ff6969a07571bea8d47db897c3bb dune-xt-functions (heads/new-master)
-	+57baa1280bc0724a005e5c00507ce8e16abe1f59 dune-xt-grid (heads/master)
-	+0974256ea7dab44cbf80e318946c08cab564aa13 dune-xt-la (heads/match-dune-gdt-refactor)
+	 0a74e7dd0b2115778a5d490dab08a2ed07fcaa1e dune-uggrid (v2.5.2)
+	 f1089d7daae1b2daef7cd33ca216c929c457f9d2 dune-xt-common (heads/master)
+	 7694fbeee4a57b162d404a497e6254721468a3ee dune-xt-data (heads/master)
+	+9abaafa3c81211bc2aecaa0c24ed19e8910003aa dune-xt-functions (heads/dailywork_tleibner)
+	 dce37865d57ea07c2532375cfb6bd1aedf984dc6 dune-xt-grid (heads/master)
+	+4d789968088d4c04eb132f5152cf72a8032247da dune-xt-la (heads/dailywork_tleibner)
 	 09d0378f616b94d68bcdd9fc6114813181849ec0 scripts (heads/master)
-commit = 2fc14026f7e772a0e6c908789d5cfb20671d62df
+commit = e9843b01757f0b6b3e50bb1aac7a3283b548241b
 
 [submodule.bin]
 remote = git@github.com:dune-community/local-bin.git
@@ -29,7 +30,7 @@ commit = 1a3bcab04b011a5d6e44f9983cae6ff89fa695e8
 [submodule.config.opts]
 remote = git@github.com:dune-community/config.opts.git
 status = 
-commit = 5147d438044a772a07fd89ff142d861cfc82212e
+commit = 8bc25f171f1901e24bb88812ba222c9fa57a8f2f
 
 [submodule.dune-alugrid]
 remote = https://github.com/dune-mirrors/dune-alugrid.git
@@ -41,28 +42,33 @@ remote = git@github.com:dune-community/dune-common.git
 status = 
 commit = 707acf201d5a754c80f87cc4d71aa36bf29a6e3f
 
+[submodule.dune-gdt]
+remote = git@github.com:dune-community/dune-gdt.git
+status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
+commit = 0b901bd6d29e771b6f145656be1704e3c9865529
+
 [submodule.dune-geometry]
-remote = http://github.com/dune-community/dune-geometry.git
+remote = git@github.com:dune-community/dune-geometry.git
 status = 
-commit = e6350271b8d014adab51467a35b6ad8ef48212a0
+commit = 390a2c503783bbed778a8ff610f8c5ca09c238d0
 
 [submodule.dune-grid]
-remote = http://github.com/dune-community/dune-grid.git
+remote = git@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
+commit = 9e29a333e8af02382d80b95335a784d5ce1ea2c8
 
 [submodule.dune-istl]
-remote = http://github.com/dune-mirrors/dune-istl.git
+remote = https://github.com/dune-mirrors/dune-istl.git
 status = 
 commit = 63df56a54f81eda308233a683eb329e77e69f0a9
 
 [submodule.dune-localfunctions]
-remote = http://github.com/dune-mirrors/dune-localfunctions.git
+remote = https://github.com/dune-mirrors/dune-localfunctions.git
 status = 
 commit = 0d757d65e5d57134a7ecf304e35d063f4ccc7116
 
@@ -84,32 +90,32 @@ commit = 26cc8cb4161a3a51002ab2a81b8c81d2c951ee79
 [submodule.dune-uggrid]
 remote = https://github.com/dune-mirrors/dune-uggrid.git
 status = 
-commit = 8fe883e99c58c9f0c2f92457d546a0ac9f5a9bf9
+commit = 0a74e7dd0b2115778a5d490dab08a2ed07fcaa1e
 
 [submodule.dune-xt-common]
 remote = git@github.com:dune-community/dune-xt-common.git
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
-commit = 0a68a9c971451632566cb16a4f8acc7314f34d92
+commit = f1089d7daae1b2daef7cd33ca216c929c457f9d2
 
 [submodule.dune-xt-data]
-remote = https://github.com/dune-community/dune-xt-data
+remote = git@github.com:dune-community/dune-xt-data
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
 commit = 7694fbeee4a57b162d404a497e6254721468a3ee
 
 [submodule.dune-xt-functions]
 remote = git@github.com:dune-community/dune-xt-functions.git
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
-commit = 183273c3ab84ff6969a07571bea8d47db897c3bb
+commit = 9abaafa3c81211bc2aecaa0c24ed19e8910003aa
 
 [submodule.dune-xt-grid]
 remote = git@github.com:dune-community/dune-xt-grid.git
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
-commit = 57baa1280bc0724a005e5c00507ce8e16abe1f59
+commit = dce37865d57ea07c2532375cfb6bd1aedf984dc6
 
 [submodule.dune-xt-la]
 remote = git@github.com:dune-community/dune-xt-la.git
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
-commit = 0974256ea7dab44cbf80e318946c08cab564aa13
+commit = 4d789968088d4c04eb132f5152cf72a8032247da
 
 [submodule.scripts]
 remote = https://github.com/wwu-numerik/scripts.git
diff --git a/dune/xt/functions/spe10/model1.hh b/dune/xt/functions/spe10/model1.hh
index daaf9d7acda3e1c2516395c275e50ca877d47df1..790076355fb02cc610f13c8c8861596973544f4f 100644
--- a/dune/xt/functions/spe10/model1.hh
+++ b/dune/xt/functions/spe10/model1.hh
@@ -14,6 +14,7 @@
 
 #include <dune/xt/common/color.hh>
 #include <dune/xt/common/configuration.hh>
+#include <dune/xt/data/paths.hh>
 
 #include "../checkerboard.hh"
 
@@ -24,7 +25,6 @@ namespace Spe10 {
 namespace internal {
 
 
-static const std::string model1_filename = "perm_case1.dat";
 static const size_t model1_x_elements = 100;
 static const size_t model1_y_elements = 1;
 static const size_t model1_z_elements = 20;
@@ -90,7 +90,7 @@ public:
   static Common::Configuration defaults()
   {
     Common::Configuration config;
-    config["filename"] = internal::model1_filename;
+    config["filename"] = XT::Data::spe10_model1_filename();
     config["lower_left"] = "[0.0 0.0]";
     config["upper_right"] =
         "[" + Common::to_string(internal::model_1_length_x) + " " + Common::to_string(internal::model_1_length_z) + "]";
diff --git a/dune/xt/functions/spe10/model2.hh b/dune/xt/functions/spe10/model2.hh
index 4b79fa0dd7c036cb8560f274ff7742c2a621eb48..056dac112643315bc250306766b5373d6be8eb49 100644
--- a/dune/xt/functions/spe10/model2.hh
+++ b/dune/xt/functions/spe10/model2.hh
@@ -14,6 +14,7 @@
 
 #include <dune/xt/common/color.hh>
 #include <dune/xt/common/configuration.hh>
+#include <dune/xt/data/paths.hh>
 
 #include "../checkerboard.hh"
 
@@ -24,7 +25,6 @@ namespace Spe10 {
 namespace internal {
 
 
-static const std::string model2_filename = "spe_perm.dat";
 static const size_t model2_x_elements = 60;
 static const size_t model2_y_elements = 220;
 static const size_t model2_z_elements = 85;
@@ -118,7 +118,7 @@ public:
   {
     Common::Configuration config;
     config["type"] = static_id();
-    config["filename"] = internal::model2_filename;
+    config["filename"] = Data::spe10_model2_filename();
     config["lower_left"] = "[0.0 0.0 0.0]";
     config["upper_right"] = "[" + Common::to_string(internal::model_2_length_x) + " "
                             + Common::to_string(internal::model_2_length_y) + " "
diff --git a/dune/xt/functions/test/CMakeLists.txt b/dune/xt/functions/test/CMakeLists.txt
index 152eae9f89f6490645aee98871e7730b9d27af50..f31e715fab090fe6524a75a335fa2beae397f5a7 100644
--- a/dune/xt/functions/test/CMakeLists.txt
+++ b/dune/xt/functions/test/CMakeLists.txt
@@ -32,33 +32,3 @@ foreach(test ${dxt_test_binaries})
     add_dune_alberta_flags(GRIDDIM 3 ${test})
   endif()
 endforeach()
-
-# link spe10 data file if present
-if(NOT ${SPE10MODEL2DATA} STREQUAL "SPE10MODEL2DATA-NOTFOUND")
-  set(SPE10MODEL2DATA_TARGET_FILENAME "${CMAKE_CURRENT_BINARY_DIR}/perm_case2a.dat")
-  if(NOT EXISTS ${SPE10MODEL2DATA_TARGET_FILENAME})
-    execute_process(COMMAND ln -s "${SPE10MODEL2DATA}" "${SPE10MODEL2DATA_TARGET_FILENAME}")
-  endif(NOT EXISTS ${SPE10MODEL2DATA_TARGET_FILENAME})
-else(NOT ${SPE10MODEL2DATA} STREQUAL "SPE10MODEL2DATA-NOTFOUND")
-  file(DOWNLOAD https://www.uni-muenster.de/AMM/mirror/spe10/model2/por_perm_case2a.zip
-                ${CMAKE_CURRENT_BINARY_DIR}/por_perm_case2a.zip
-       SHOW_PROGRESS)
-  execute_process(COMMAND unzip -o por_perm_case2a.zip WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
-  set(SPE10MODEL2DATA_TARGET_FILENAME "${CMAKE_CURRENT_BINARY_DIR}/perm_case2a.dat"
-      CACHE FILEPATH "spe10 model 2 data file")
-endif(NOT ${SPE10MODEL2DATA} STREQUAL "SPE10MODEL2DATA-NOTFOUND")
-
-# link spe10 data file if present
-if(NOT ${SPE10MODEL1DATA} STREQUAL "SPE10MODEL1DATA-NOTFOUND")
-  set(SPE10MODEL1DATA_TARGET_FILENAME "${CMAKE_CURRENT_BINARY_DIR}/perm_case1.dat")
-  if(NOT EXISTS ${SPE10MODEL1DATA_TARGET_FILENAME})
-    execute_process(COMMAND ln -s "${SPE10MODEL1DATA}" "${SPE10MODEL1DATA_TARGET_FILENAME}")
-  endif(NOT EXISTS ${SPE10MODEL1DATA_TARGET_FILENAME})
-else(NOT ${SPE10MODEL1DATA} STREQUAL "SPE10MODEL1DATA-NOTFOUND")
-  file(DOWNLOAD https://www.uni-muenster.de/AMM/mirror/spe10/model1/perm_case1.zip
-                ${CMAKE_CURRENT_BINARY_DIR}/perm_case1.zip
-       SHOW_PROGRESS)
-  execute_process(COMMAND unzip -o perm_case1.zip WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
-  set(SPE10MODEL1DATA_TARGET_FILENAME "${CMAKE_CURRENT_BINARY_DIR}/perm_case1.dat"
-      CACHE FILEPATH "spe10 model 1 data file")
-endif(NOT ${SPE10MODEL1DATA} STREQUAL "SPE10MODEL1DATA-NOTFOUND")
diff --git a/dune/xt/functions/test/spe10_model1.tpl b/dune/xt/functions/test/spe10_model1.tpl
index 2b9402a9b4b94568894c782f814dfee760f13d27..040e310409947b59467121328d3e0c5925f01d95 100644
--- a/dune/xt/functions/test/spe10_model1.tpl
+++ b/dune/xt/functions/test/spe10_model1.tpl
@@ -2,6 +2,8 @@
 
 #include <dune/xt/common/test/main.hxx>
 
+#include <dune/xt/data/paths.hh>
+
 #include <dune/xt/grid/grids.hh>
 #include <dune/geometry/quadraturerules.hh>
 #include <dune/xt/grid/gridprovider/cube.hh>
@@ -37,7 +39,7 @@ struct Spe10Model1Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}} : public ::te
 
 TEST_F(Spe10Model1Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, is_constructible)
 {
-  auto filename = Dune::XT::Functions::Spe10::internal::model1_filename;
+  auto filename = Dune::XT::Data::spe10_model1_filename();
   FunctionType function(
       filename,
       {0, 0},
@@ -65,7 +67,7 @@ TEST_F(Spe10Model1Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, is_creatable
 
 TEST_F(Spe10Model1Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, is_visualizable)
 {
-  auto filename = Dune::XT::Functions::Spe10::internal::model1_filename;
+  auto filename = Dune::XT::Data::spe10_model1_filename();
   FunctionType default_function(
       filename,
       {0, 0},
@@ -76,7 +78,7 @@ TEST_F(Spe10Model1Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, is_visualiza
 
 TEST_F(Spe10Model1Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, is_bindable)
 {
-  auto filename = Dune::XT::Functions::Spe10::internal::model1_filename;
+  auto filename = Dune::XT::Data::spe10_model1_filename();
   FunctionType default_function(
       filename,
       {0, 0},
@@ -90,7 +92,7 @@ TEST_F(Spe10Model1Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, is_bindable)
 
 TEST_F(Spe10Model1Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, local_order)
 {
-  auto filename = Dune::XT::Functions::Spe10::internal::model1_filename;
+  auto filename = Dune::XT::Data::spe10_model1_filename();
   FunctionType default_function(
       filename,
       {0, 0},
@@ -109,7 +111,7 @@ TEST_F(Spe10Model1Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, local_order)
 TEST_F(Spe10Model1Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, local_evaluate)
 {
   const auto leaf_view = grid_.leaf_view();
-  auto filename = Dune::XT::Functions::Spe10::internal::model1_filename;
+  auto filename = Dune::XT::Data::spe10_model1_filename();
   FunctionType default_function(
       filename,
       {0, 0},
@@ -134,7 +136,7 @@ TEST_F(Spe10Model1Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, local_jacobi
 {
   const auto leaf_view = grid_.leaf_view();
   const DerivativeRangeType expected_jacobian = DerivativeRangeType();
-  auto filename = Dune::XT::Functions::Spe10::internal::model1_filename;
+  auto filename = Dune::XT::Data::spe10_model1_filename();
   FunctionType default_function(
       filename,
       {0, 0},
diff --git a/dune/xt/functions/test/spe10_model2.tpl b/dune/xt/functions/test/spe10_model2.tpl
index a245b4d1bd5ed2da182c3017a610678e418be8c0..5845ce91c271e7046a4b8e65a772660571d003d6 100644
--- a/dune/xt/functions/test/spe10_model2.tpl
+++ b/dune/xt/functions/test/spe10_model2.tpl
@@ -40,7 +40,7 @@ struct Spe10Model2Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}} : public ::te
 
 TEST_F(Spe10Model2Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, is_constructible)
 {
-  FunctionType function(Dune::XT::Functions::Spe10::internal::model2_filename,
+  FunctionType function(Dune::XT::Data::spe10_model2_filename(),
                         {0, 0, 0},
                         {Dune::XT::Functions::Spe10::internal::model_2_length_x,
                          Dune::XT::Functions::Spe10::internal::model_2_length_y,
@@ -68,7 +68,7 @@ TEST_F(Spe10Model2Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, is_creatable
 
 TEST_F(Spe10Model2Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, is_visualizable)
 {
-  FunctionType function(Dune::XT::Functions::Spe10::internal::model2_filename,
+  FunctionType function(Dune::XT::Data::spe10_model2_filename(),
                         {0, 0, 0},
                         {Dune::XT::Functions::Spe10::internal::model_2_length_x,
                          Dune::XT::Functions::Spe10::internal::model_2_length_y,
@@ -80,7 +80,7 @@ TEST_F(Spe10Model2Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, is_visualiza
 
 TEST_F(Spe10Model2Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, is_bindable)
 {
-  FunctionType function(Dune::XT::Functions::Spe10::internal::model2_filename,
+  FunctionType function(Dune::XT::Data::spe10_model2_filename(),
                         {0, 0, 0},
                         {Dune::XT::Functions::Spe10::internal::model_2_length_x,
                          Dune::XT::Functions::Spe10::internal::model_2_length_y,
@@ -96,7 +96,7 @@ TEST_F(Spe10Model2Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, is_bindable)
 
 TEST_F(Spe10Model2Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, local_order)
 {
-  FunctionType function(Dune::XT::Functions::Spe10::internal::model2_filename,
+  FunctionType function(Dune::XT::Data::spe10_model2_filename(),
                         {0, 0, 0},
                         {Dune::XT::Functions::Spe10::internal::model_2_length_x,
                          Dune::XT::Functions::Spe10::internal::model_2_length_y,
@@ -116,7 +116,7 @@ TEST_F(Spe10Model2Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, local_order)
 TEST_F(Spe10Model2Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, local_evaluate)
 {
   const auto leaf_view = grid_.leaf_view();
-  FunctionType function(Dune::XT::Functions::Spe10::internal::model2_filename,
+  FunctionType function(Dune::XT::Data::spe10_model2_filename(),
                         {0, 0, 0},
                         {Dune::XT::Functions::Spe10::internal::model_2_length_x,
                          Dune::XT::Functions::Spe10::internal::model_2_length_y,
@@ -135,7 +135,7 @@ TEST_F(Spe10Model2Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, local_evalua
 
 TEST_F(Spe10Model2Function_from_{{GRIDNAME}}_to_{{r}}_times_{{rC}}, local_jacobian)
 {
-  FunctionType function(Dune::XT::Functions::Spe10::internal::model2_filename,
+  FunctionType function(Dune::XT::Data::spe10_model2_filename(),
                         {0, 0, 0},
                         {Dune::XT::Functions::Spe10::internal::model_2_length_x,
                          Dune::XT::Functions::Spe10::internal::model_2_length_y,