diff --git a/README.md b/README.md
index f40a908c0467f63c91f5f195119c390bcd4072e9..d1676cdfd9730e6aa23c53a5e409c12aa20a49b9 100644
--- a/README.md
+++ b/README.md
@@ -53,5 +53,11 @@ vagrant up
 # Set up example.dev as above, and test https://example.dev in your browser
 vagrant ssh core-1
 sudo su
-/data/indiehosters/tests/main.sh
+/data/indiehosters/tests/start.sh
+exit
+exit
+vagrant reload --provision
+vagrant ssh core-1
+sudo su
+/data/indiehosters/tests/finish.sh
 ```
diff --git a/tests/clean-image.sh b/tests/clean-image.sh
index 5f667a02e34ff00322fb82454c057b3bbe4a033d..8ce4cd8a544b3931b6ba04b205da2f627c615b32 100755
--- a/tests/clean-image.sh
+++ b/tests/clean-image.sh
@@ -2,7 +2,11 @@
 
 image=$1
 
-/data/indiehosters/tests/runtime-clean-image.sh $image
+systemctl stop *@$image.test.timer
+systemctl stop *@$image.test
+systemctl reset-failed
+systemctl list-units | grep -c "$image\.test" | grep 0
+rm -rf /data/import/$image.test
+rm -rf /data/runtime/domains/$image.test
 rm -rf /data/domains/$image.test
-
-ssh core@backup.dev "rm -rf $image.test"
+systemctl disable $image@$image.test
diff --git a/tests/deep-clean.sh b/tests/deep-clean.sh
new file mode 100755
index 0000000000000000000000000000000000000000..4da3fe055edcb69c681966d0627e0dd60bdcf9e3
--- /dev/null
+++ b/tests/deep-clean.sh
@@ -0,0 +1,7 @@
+#!/bin/bash -eux
+
+image=$1
+
+/data/indiehosters/tests/clean-image.sh $image
+
+ssh core@backup.dev "rm -rf $image.test"
diff --git a/tests/finish.sh b/tests/finish.sh
new file mode 100755
index 0000000000000000000000000000000000000000..9e776d9f6f913b5227dab701a333df2993759159
--- /dev/null
+++ b/tests/finish.sh
@@ -0,0 +1,11 @@
+#!/bin/bash -eux
+
+systemctl list-units | grep failed
+
+applications=( static static-git wordpress known)
+
+for application in "${applications[@]}"
+do
+  /data/indiehosters/tests/test-image.sh $application
+  /data/indiehosters/tests/deep-clean.sh $application
+done
diff --git a/tests/image.sh b/tests/image.sh
index 0f9701ae55d5a46c824b95849645787183b64bad..f71ee41512166b9a081e05db8fb9f4198ecbdb4f 100755
--- a/tests/image.sh
+++ b/tests/image.sh
@@ -15,26 +15,15 @@ fi
 # start image from import
 systemctl start $image@$image.test
 
-if [ "$image" == "wordpress" ]; then
-  sleep 40
-else
-  sleep 10
-fi
-
 # tests
-systemctl list-units | grep "$image\.test" | grep -c failed | grep 0
-ip=`docker inspect --format {{.NetworkSettings.IPAddress}} $image-$image.test`
-curl -L $ip
+/data/indiehosters/tests/test-image.sh $image
 
 # start image from backup
-/data/indiehosters/tests/runtime-clean-image.sh $image
-if [ "$image" == "wordpress" ]; then
-  echo should fail until implementation of mysql backup importer
-fi
+## make sure to backup first
+systemctl start backup@$image.test
+/data/indiehosters/tests/clean-image.sh $image
+systemctl enable $image@$image.test
 systemctl start $image@$image.test
-sleep 10
 
 # tests
-systemctl list-units | grep "$image\.test" | grep -c failed | grep 0
-ip=`docker inspect --format {{.NetworkSettings.IPAddress}} $image-$image.test`
-curl $ip
+/data/indiehosters/tests/test-image.sh $image
diff --git a/tests/main.sh b/tests/main.sh
deleted file mode 100755
index ec4a3035442b7aa197b2a812419e118234a069d4..0000000000000000000000000000000000000000
--- a/tests/main.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash -eux
-
-# testing static
-/data/indiehosters/tests/image.sh static
-
-# clean static tests
-/data/indiehosters/tests/clean-image.sh static
-
-# testing static-git
-/data/indiehosters/tests/image.sh static-git
-
-# clean static tests
-/data/indiehosters/tests/clean-image.sh static-git
-
-# testing wordpress
-/data/indiehosters/tests/image.sh wordpress
-
-# clean static tests
-/data/indiehosters/tests/clean-image.sh wordpress
diff --git a/tests/runtime-clean-image.sh b/tests/runtime-clean-image.sh
deleted file mode 100755
index 2766ebbedb9bfebada9fad882e0e92cf48588b3a..0000000000000000000000000000000000000000
--- a/tests/runtime-clean-image.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/bash -eux
-
-image=$1
-
-systemctl stop *@$image.test.timer
-systemctl stop *@$image.test
-systemctl reset-failed
-systemctl list-units | grep -c "$image\.test" | grep 0
-rm -rf /data/import/$image.test
-rm -rf /data/runtime/domains/$image.test
diff --git a/tests/start.sh b/tests/start.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c5f9fe1dba50a3de35dadb38a77552badb2864fd
--- /dev/null
+++ b/tests/start.sh
@@ -0,0 +1,8 @@
+#!/bin/bash -eux
+
+applications=( static static-git wordpress known)
+
+for application in "${applications[@]}"
+do
+  /data/indiehosters/tests/image.sh $application
+done
diff --git a/tests/test-image.sh b/tests/test-image.sh
new file mode 100755
index 0000000000000000000000000000000000000000..ee91f9b107db1e07cf62cebf48b4d416dde8975f
--- /dev/null
+++ b/tests/test-image.sh
@@ -0,0 +1,13 @@
+#!/bin/bash -eux
+
+image=$1
+
+if [ "$image" == "wordpress" ] || [ "$image" == "known" ]; then
+  sleep 70
+else
+  sleep 10
+fi
+
+systemctl list-units | grep "$image\.test" | grep -c failed | grep 0
+ip=`docker inspect --format {{.NetworkSettings.IPAddress}} $image-$image.test`
+curl -L $ip