diff --git a/.ci/docker/Dockerfile b/.ci/docker/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..f01cb4620f0b9ef0e7f8b011bc301f7aa9a76082
--- /dev/null
+++ b/.ci/docker/Dockerfile
@@ -0,0 +1,7 @@
+ARG BASE
+FROM dunecommunity/$BASE
+
+ADD . ${SUPERDIR}/${MY_MODULE}/
+RUN cd ${SUPERDIR} && \
+    echo ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} all && \
+    ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} all
diff --git a/.codecov.yml b/.codecov.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b11d3bc2d592f637695e91a3bc39f36b0a376653
--- /dev/null
+++ b/.codecov.yml
@@ -0,0 +1,29 @@
+codecov:
+  notify:
+    require_ci_to_pass: yes
+
+coverage:
+  precision: 2
+  round: down
+  range: "70...100"
+
+  # https://docs.codecov.io/docs/commit-status
+  status:
+    project: no
+    patch: no
+    changes: no
+
+parsers:
+  gcov:
+    branch_detection:
+      conditional: yes
+      loop: yes
+      method: no
+      macro: no
+
+# https://docs.codecov.io/docs/pull-request-comments
+# https://docs.codecov.io/docs/graphs
+comment:
+  layout: "header, files "
+  behavior: once
+  require_changes: yes
diff --git a/.gitsuper b/.gitsuper
index 1f0d8dfe6e0228d80906a3a9da3debba150b0e8e..e690d56e6d3ce96ca302d2855f56e379091608dc 100644
--- a/.gitsuper
+++ b/.gitsuper
@@ -14,10 +14,10 @@ status = 1a3bcab04b011a5d6e44f9983cae6ff89fa695e8 bin (heads/master)
 	 741e4f8e53bdd3e1b6e19d84eb22b6e3dc48526c dune-python (remotes/origin/releases/2.5)
 	 26cc8cb4161a3a51002ab2a81b8c81d2c951ee79 dune-testtools (remotes/origin/p/renemilk/testname_listing_hack_no-skiptest)
 	 0a74e7dd0b2115778a5d490dab08a2ed07fcaa1e dune-uggrid (v2.5.2)
-	 263e4997f873692f8aa49627ee051a5df104e5db dune-xt-common (heads/dailywork_tleibner)
+	+111ee6ea9334b68ae841c04ec0b597ad17751fc3 dune-xt-common (heads/dailywork_tleibner)
 	 3e3f3bf06e21cbbf3c0a559891b44c6f5d987d0f dune-xt-data (heads/master)
-	+7cf444250f162604ecc42e592b71e9f8156da5f4 dune-xt-functions (heads/new-master)
-	+ffe1fde668438fc5a9309f9c4447f2672dd1fa5c dune-xt-grid (heads/new-master)
+	+17c0f151b54ab54cadb54217f53a8d3220ed9442 dune-xt-functions (heads/new-master)
+	+de39cd531607388f0ff3b6887d381e6a4bab2207 dune-xt-grid (heads/new-master)
 	 f6904b69f9a3ee5d45ee824d3b244e59cfed7ff4 dune-xt-la (heads/master)
 	 09d0378f616b94d68bcdd9fc6114813181849ec0 scripts (heads/master)
 commit = 11b7c1b7e4cc360ec97f4f88684d02264f0e309a
@@ -95,7 +95,7 @@ commit = 0a74e7dd0b2115778a5d490dab08a2ed07fcaa1e
 [submodule.dune-xt-common]
 remote = git@github.com:dune-community/dune-xt-common.git
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
-commit = 263e4997f873692f8aa49627ee051a5df104e5db
+commit = 111ee6ea9334b68ae841c04ec0b597ad17751fc3
 
 [submodule.dune-xt-data]
 remote = git@github.com:dune-community/dune-xt-data
@@ -105,12 +105,12 @@ commit = 3e3f3bf06e21cbbf3c0a559891b44c6f5d987d0f
 [submodule.dune-xt-functions]
 remote = git@github.com:dune-community/dune-xt-functions.git
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
-commit = 7cf444250f162604ecc42e592b71e9f8156da5f4
+commit = 17c0f151b54ab54cadb54217f53a8d3220ed9442
 
 [submodule.dune-xt-grid]
 remote = git@github.com:dune-community/dune-xt-grid.git
 status = 2424627f0ad5de7e4aaa5e7f48bc2a02414d95a1 .vcsetup (heads/master)
-commit = ffe1fde668438fc5a9309f9c4447f2672dd1fa5c
+commit = de39cd531607388f0ff3b6887d381e6a4bab2207
 
 [submodule.dune-xt-la]
 remote = git@github.com:dune-community/dune-xt-la.git
diff --git a/.pylicense-cpp.cfg b/.pylicense-cpp.cfg
index 74789c313586aa178c821520b01fcde5737c8706..4a4bf7e1798665e00e35b00beb273f6c7c3158d8 100644
--- a/.pylicense-cpp.cfg
+++ b/.pylicense-cpp.cfg
@@ -3,12 +3,11 @@
 #   https://github.com/dune-community/dune-xt-functions
 # Copyright 2009-2018 dune-xt-functions 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]
@@ -16,8 +15,8 @@ name = This file is part of the dune-xt-functions project:
 url = https://github.com/dune-community/dune-xt-functions
 copyright_statement = Copyright 2009-2018 dune-xt-functions 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 f582f7162ad54956283563e491860a6a4aee4eac..3a5e75f1f055d3f877dfcbd5fe005d8c4440da23 100644
--- a/.pylicense-other.cfg
+++ b/.pylicense-other.cfg
@@ -3,12 +3,11 @@
 #   https://github.com/dune-community/dune-xt-functions
 # Copyright 2009-2018 dune-xt-functions 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]
@@ -16,8 +15,8 @@ name = This file is part of the dune-xt-functions project:
 url = https://github.com/dune-community/dune-xt-functions
 copyright_statement = Copyright 2009-2018 dune-xt-functions 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 = # ~~~
diff --git a/.travis.make_env_file.py b/.travis.make_env_file.py
index f2e925bdb01bd5d371402a58d12c2bb878745fd7..e77c120910f8c5cb251fa582f8fd6e920c7a3128 100644
--- a/.travis.make_env_file.py
+++ b/.travis.make_env_file.py
@@ -5,7 +5,7 @@ from os.path import expanduser
 from shlex import quote
 home = expanduser("~")
 
-prefixes = os.environ.get('ENV_PREFIXES', 'TRAVIS CI encrypt TOKEN TESTS').split(' ')
+prefixes = os.environ.get('ENV_PREFIXES', 'TRAVIS DRONE GITLAB CODECOV CI encrypt TOKEN TESTS').split(' ')
 blacklist = ['TRAVIS_COMMIT_MESSAGE']
 env_file = os.environ.get('ENV_FILE', os.path.join(home, 'env'))
 with open(env_file, 'wt') as env:
diff --git a/.travis.script.bash b/.travis.script.bash
index 82579525536bf5dd448bde598b83e64ff588effc..a9484b0d6e7c6c474922e98cf6f50dd7311a1cbc 100755
--- a/.travis.script.bash
+++ b/.travis.script.bash
@@ -31,4 +31,21 @@ fi
 ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} install | grep -v "Installing"
 ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} package_source
 
+# clang coverage currently disabled for being to mem hungry
+if [[ ${CC} == *"clang"* ]] ; then
+    exit 0
+fi
+
+pushd ${DUNE_BUILD_DIR}/${MY_MODULE}
+COVERAGE_INFO=${PWD}/coverage.info
+lcov --directory . --output-file ${COVERAGE_INFO} -c
+for d in "dune-common" "dune-pybindxi" "dune-geometry"  "dune-istl"  "dune-grid" "dune-alugrid"  "dune-uggrid"  "dune-localfunctions" ; do
+    lcov --directory . --output-file ${COVERAGE_INFO} -r ${COVERAGE_INFO} "${SUPERDIR}/${d}/*"
+done
+lcov --directory . --output-file ${COVERAGE_INFO} -r ${COVERAGE_INFO} "${SUPERDIR}/${MY_MODULE}/dune/xt/*/test/*"
+cd ${SUPERDIR}/${MY_MODULE}
+${OLDPWD}/dune-env pip install codecov
+${OLDPWD}/dune-env codecov -v -X gcov -X coveragepy -F ctest -f ${COVERAGE_INFO} -t ${CODECOV_TOKEN}
+popd
+
 # ****** THIS FILE IS AUTOGENERATED, DO NOT EDIT **********
\ No newline at end of file
diff --git a/.travis.test_python.bash b/.travis.test_python.bash
index f7784feaa7abf2a68c233704702861dd6ec6bdfa..93c8e211dfd0315f7f7beda5fcfc1f2847593ffe 100755
--- a/.travis.test_python.bash
+++ b/.travis.test_python.bash
@@ -11,7 +11,11 @@ source ${SUPERDIR}/scripts/bash/retry_command.bash
 
 ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} configure
 ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD}
-${WAIT} ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} -v bindings
-${WAIT} ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} -v test_python
+${WAIT} ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} bindings
+${WAIT} ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} test_python
 
-# ****** THIS FILE IS AUTOGENERATED, DO NOT EDIT **********
+cd ${SUPERDIR}/${MY_MODULE}
+${DUNE_BUILD_DIR}/${MY_MODULE}/dune-env pip install codecov
+${DUNE_BUILD_DIR}/${MY_MODULE}/dune-env codecov -X gcov -F pytest -t ${CODECOV_TOKEN}
+
+# ****** THIS FILE IS AUTOGENERATED, DO NOT EDIT **********
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index f5c42e480383a891438c894df2d2fc581c39f015..b4eb200ab2234440058bffa6f59ea4762a65222e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -12,41 +12,43 @@
 #   THIS FILE IS AUTOGENERATED -- DO NOT EDIT  #
 #  Re-run .ci/templates/update.py --nd instead #
 
-sudo: false
+sudo: true
 dist: trusty
 language: generic
 services: docker
 
 before_script:
-    - export IMAGE="dunecommunity/dune-xt-functions-testing_${DOCKER_TAG}:${TRAVIS_BRANCH}"
-    # get image with fallback to master branch of the super repo
-    - docker pull ${IMAGE} || export IMAGE="dunecommunity/dune-xt-functions-testing_${DOCKER_TAG}:master" ; docker pull ${IMAGE}
-    - docker inspect -s ${IMAGE}  
     - export MY_MODULE=dune-xt-functions
+    - export BASEIMAGE="${MY_MODULE}-testing_${DOCKER_TAG}:${TRAVIS_BRANCH/\//_}"
+    - export IMAGE="dunecommunity/ci_${MY_MODULE}-testing_${DOCKER_TAG}:${TRAVIS_COMMIT}"
+    # get image with fallback to master branch of the super repo
+    - docker pull dunecommunity/${BASEIMAGE} || export BASEIMAGE="${MY_MODULE}-testing_${DOCKER_TAG}:master" ; docker pull dunecommunity/${BASEIMAGE}
+    - docker build --build-arg BASE=${BASEIMAGE} -t ${IMAGE} -f .ci/docker/Dockerfile .
+
     - export ENV_FILE=${HOME}/env
     - python3 ./.travis.make_env_file.py
-    - export DOCKER_RUN="docker run --env-file ${ENV_FILE} -v ${TRAVIS_BUILD_DIR}:/root/src/dune-xt-functions ${IMAGE}"
+    - docker inspect ${IMAGE}
+    - export DOCKER_RUN="docker run --env-file ${ENV_FILE} ${IMAGE}"
 
 script:
-    - ${DOCKER_RUN} /root/src/dune-xt-functions/.travis.script.bash
+    - ${DOCKER_RUN} /home/dune-ci/src/dune-xt-functions/.travis.script.bash
 
 # runs independent of 'script' failure/success
 after_script:
-    - ${DOCKER_RUN} /root/src/dune-xt-functions/.travis.after_script.bash
+    - ${DOCKER_RUN} /home/dune-ci/src/dune-xt-functions/.travis.after_script.bash
     # output for simpler replicability
     - docker images ${IMAGE}
     - echo ${DOCKER_RUN}
 
+after_failure:
+    - echo $DOCKER_PW | docker login --username="$DOCKER_USER" --password-stdin
+    - docker push ${IMAGE}
+    - echo "execute\n ${DOCKER_RUN} /home/dune-ci/src/dune-xt-functions/.travis.script.bash\n to examine errors"
 
 notifications:
   email:
     on_success: change
     on_failure: change
-  webhooks:
-    - https://buildtimetrend.herokuapp.com/travis
-
-#after_success:
-#- coveralls
 
 branches:
   except:
@@ -58,6 +60,17 @@ stages:
 
 jobs:
   include:
+  - stage: test_cpp
+    env: DOCKER_TAG=debian-unstable_gcc_full TESTS=0
+  - stage: test_cpp
+    env: DOCKER_TAG=debian-unstable_gcc_full TESTS=1
+  - stage: test_cpp
+    env: DOCKER_TAG=debian-unstable_gcc_full TESTS=2
+  - stage: test_cpp
+    env: DOCKER_TAG=debian-unstable_gcc_full TESTS=3
+  - stage: test_cpp
+    env: DOCKER_TAG=debian-unstable_gcc_full TESTS=4
+    
   - stage: test_cpp
     env: DOCKER_TAG=debian_gcc_full TESTS=0
   - stage: test_cpp
@@ -80,16 +93,21 @@ jobs:
   - stage: test_cpp
     env: DOCKER_TAG=debian_clang_full TESTS=4
     
+  - stage: test_python
+    env: DOCKER_TAG=debian-unstable_gcc_full
+    script: ${DOCKER_RUN} /home/dune-ci/src/dune-xt-functions/.travis.test_python.bash
+    # overwrite other global/matrix settings
+    after_script: true
   - stage: test_python
     env: DOCKER_TAG=debian_gcc_full
-    script: ${DOCKER_RUN} /root/src/dune-xt-functions/.travis.test_python.bash
+    script: ${DOCKER_RUN} /home/dune-ci/src/dune-xt-functions/.travis.test_python.bash
     # overwrite other global/matrix settings
     after_script: true
   - stage: test_python
     env: DOCKER_TAG=debian_clang_full
-    script: ${DOCKER_RUN} /root/src/dune-xt-functions/.travis.test_python.bash
+    script: ${DOCKER_RUN} /home/dune-ci/src/dune-xt-functions/.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 #
+#  Re-run .ci/templates/update.py --nd instead #
\ No newline at end of file
diff --git a/dune.module b/dune.module
index 6badb7e92ff84781dc2e1a602b0ebc9398cf9dc1..a74e5b4094954fa685d59f47e1676fb25cfda63a 100644
--- a/dune.module
+++ b/dune.module
@@ -14,4 +14,4 @@
 Module: dune-xt-functions
 Version: 18.11-dev
 Maintainer: dune-xt-dev@listserv.uni-muenster.de
-Depends: dune-common (>= 2.5) dune-testtools (>= 2.5) dune-geometry (>= 2.5) dune-grid (>= 2.5) dune-xt-common (>=2.5) dune-xt-grid (>= 2.5) dune-xt-la (>= 2.5)
+Depends: dune-common (>= 2.5) dune-testtools (>= 2.5) dune-geometry (>= 2.5) dune-grid (>= 2.5) dune-xt-common (>=2.5) dune-xt-grid (>= 2.5) dune-xt-la (>= 2.5) dune-xt-data
diff --git a/dune/xt/functions/expression/timedependent.hh b/dune/xt/functions/expression/timedependent.hh
deleted file mode 100644
index 2941d0c271feb53702214ad472c811a49bc386c6..0000000000000000000000000000000000000000
--- a/dune/xt/functions/expression/timedependent.hh
+++ /dev/null
@@ -1,16 +0,0 @@
-// This file is part of the dune-xt-functions project:
-//   https://github.com/dune-community/dune-xt-functions
-// Copyright 2009-2018 dune-xt-functions 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)
-
-#ifndef DUNE_XT_FUNCTIONS_EXPRESSION_TIMEDEPENDENT_HH
-#define DUNE_XT_FUNCTIONS_EXPRESSION_TIMEDEPENDENT_HH
-
-#warning "this header will be removed soon (2018/03/16)"
-
-#endif // DUNE_XT_FUNCTIONS_EXPRESSION_TIMEDEPENDENT_HH