diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8d5e3f2c282a420994fd09b5b8d1019024d7c2c4..3e25a31fca90ac5b15017d8ca4f4fbbfcc28d259 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -17,7 +17,7 @@ build:
   script:
     - ./gradlew --console=plain assemble
 
-testAndBenchmark:
+test:
   image: openjdk:11
   stage: test
   needs:
@@ -26,10 +26,7 @@ testAndBenchmark:
     - "[ -d ttc2018liveContest ] || git clone --depth=1 https://github.com/TransformationToolContest/ttc2018liveContest.git ttc2018liveContest"
     - ln -sf ../../../../ttc2018liveContest/models solve/src/test/resources
     - ./gradlew --console=plain test
-    - ./all-timed-benchmark.sh
   artifacts:
     when: always
     reports:
       junit: "*/build/test-results/test/**/TEST-*.xml"
-    paths:
-      - results/
diff --git a/all-timed-benchmark.sh b/all-timed-benchmark.sh
index 40ab30f1422de18d9e13929c398c2c73f83d47ad..1ea69e0528fa40044d3091ee8dbd027dc850494f 100755
--- a/all-timed-benchmark.sh
+++ b/all-timed-benchmark.sh
@@ -3,6 +3,6 @@ mkdir -p "results"
 query=2
 size=32
 for d in relast-* namelookup-xml-*; do
-  ./timedBenchmark.sh $d $query $size > results/results-${d}-${size}-Q${query}.csv
-  mv events-xml-${size}-Q${query}.csv results/events-${d}-${size}-Q${query}.csv
+  ./gradlew ":${d}:installDist"
+  ./timedBenchmark.sh "$d" $query $size > "results/results-${d}-${size}-Q${query}.csv"
 done
diff --git a/namelookup-xml-flush/build.gradle b/namelookup-xml-flush/build.gradle
index f4790d8b87d070726589952f401109fbd03a86d0..22e5a75face242d31730fcb93684f394e379709a 100644
--- a/namelookup-xml-flush/build.gradle
+++ b/namelookup-xml-flush/build.gradle
@@ -14,8 +14,8 @@ plugins {
 
 ext.relastFiles = []
 
-apply from: '../solve/gradle-parts/base.gradle'
+apply from: '../solve/gradle-parts/01-inc-flush.gradle'
 
-apply from: '../solve/gradle-parts/inc-flush.gradle'
+apply from: '../solve/gradle-parts/02-base.gradle'
 
-apply from: '../solve/gradle-parts/rel-namelookup.gradle'
+apply from: '../solve/gradle-parts/03-rel-namelookup.gradle'
diff --git a/namelookup-xml-inc/build.gradle b/namelookup-xml-inc/build.gradle
index a9982547c32aa541be4998b529b3d742935b0975..bbc3f2a466858cdbfda0451cf3e7c6b1654557ad 100644
--- a/namelookup-xml-inc/build.gradle
+++ b/namelookup-xml-inc/build.gradle
@@ -14,8 +14,8 @@ plugins {
 
 ext.relastFiles = []
 
-apply from: '../solve/gradle-parts/base.gradle'
+apply from: '../solve/gradle-parts/01-inc-incremental.gradle'
 
-apply from: '../solve/gradle-parts/inc-incremental.gradle'
+apply from: '../solve/gradle-parts/02-base.gradle'
 
-apply from: '../solve/gradle-parts/rel-namelookup.gradle'
+apply from: '../solve/gradle-parts/03-rel-namelookup.gradle'
diff --git a/relast-reusable-flush/.gitignore b/relast-reusable-flush/.gitignore
new file mode 120000
index 0000000000000000000000000000000000000000..ceb2b6936f4f0dd308fa1247836fe38f9bc624e2
--- /dev/null
+++ b/relast-reusable-flush/.gitignore
@@ -0,0 +1 @@
+../solve/.gitignore
\ No newline at end of file
diff --git a/relast-reusable-flush/build.gradle b/relast-reusable-flush/build.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..46f61fc354fe561e448f2c46e8e4e59f6f3672c0
--- /dev/null
+++ b/relast-reusable-flush/build.gradle
@@ -0,0 +1,23 @@
+buildscript {
+    repositories.mavenCentral()
+    dependencies {
+        classpath group: 'org.jastadd', name: 'jastaddgradle', version: '1.13.3'
+    }
+}
+
+plugins {
+    id 'application'
+    id 'maven'
+    id 'java'
+    id 'idea'
+}
+
+project.ext.relastFiles = ["src/main/jastadd/base/SocialNetwork.relast",
+                   "src/main/jastadd/reusable/dg/DependencyGraph.relast",
+                   "src/main/jastadd/reusable/CommentToDG.relast"]
+
+apply from: '../solve/gradle-parts/01-inc-flush.gradle'
+
+apply from: '../solve/gradle-parts/02-base.gradle'
+
+apply from: '../solve/gradle-parts/03-rel-relast.gradle'
diff --git a/relast-reusable-flush/jastadd_modules b/relast-reusable-flush/jastadd_modules
new file mode 100644
index 0000000000000000000000000000000000000000..b1c7ae2e1600ce3530b8daa89ed0d2e5297812f8
--- /dev/null
+++ b/relast-reusable-flush/jastadd_modules
@@ -0,0 +1,13 @@
+module("solve") {
+    jastadd {
+        basedir "src/"
+        include "main/jastadd/base/**/*.ast"
+        include "main/jastadd/base/**/*.jadd"
+        include "main/jastadd/base/**/*.jrag"
+        include "main/jastadd/reusable/dg/DependencyGraphReachability.jrag"
+        include "main/jastadd/reusable/CommentToDG.jrag"
+        include "main/jastadd/reusable/queriesRefined.jrag"
+        include "gen/jastadd/**/*.ast"
+        include "gen/jastadd/**/*.jadd"
+    }
+}
diff --git a/solve/gradle-parts/inc-flush.gradle b/relast-reusable-flush/src/gen/jastadd/.gitkeep
similarity index 100%
rename from solve/gradle-parts/inc-flush.gradle
rename to relast-reusable-flush/src/gen/jastadd/.gitkeep
diff --git a/relast-reusable-inc/build.gradle b/relast-reusable-inc/build.gradle
index 9b02e1faaaa51a1d0fbab15a66000287a6f5d1dd..bb719dccc27a3aaf93a5177310eb0d13033232f2 100644
--- a/relast-reusable-inc/build.gradle
+++ b/relast-reusable-inc/build.gradle
@@ -16,8 +16,8 @@ project.ext.relastFiles = ["src/main/jastadd/base/SocialNetwork.relast",
                    "src/main/jastadd/reusable/dg/DependencyGraph.relast",
                    "src/main/jastadd/reusable/CommentToDG.relast"]
 
-apply from: '../solve/gradle-parts/base.gradle'
+apply from: '../solve/gradle-parts/01-inc-incremental.gradle'
 
-apply from: '../solve/gradle-parts/inc-incremental.gradle'
+apply from: '../solve/gradle-parts/02-base.gradle'
 
-apply from: '../solve/gradle-parts/rel-relast.gradle'
+apply from: '../solve/gradle-parts/03-rel-relast.gradle'
diff --git a/relast-xml-flush/build.gradle b/relast-xml-flush/build.gradle
index cf5bca341b3400c1a12cc56fc829042a08085e04..d9215febff0607a440fda5536925ed37fe4eb9d7 100644
--- a/relast-xml-flush/build.gradle
+++ b/relast-xml-flush/build.gradle
@@ -14,8 +14,8 @@ plugins {
 
 ext.relastFiles = ["src/main/jastadd/base/SocialNetwork.relast"]
 
-apply from: '../solve/gradle-parts/base.gradle'
+apply from: '../solve/gradle-parts/01-inc-flush.gradle'
 
-apply from: '../solve/gradle-parts/inc-flush.gradle'
+apply from: '../solve/gradle-parts/02-base.gradle'
 
-apply from: '../solve/gradle-parts/rel-relast.gradle'
+apply from: '../solve/gradle-parts/03-rel-relast.gradle'
diff --git a/relast-xml-inc/build.gradle b/relast-xml-inc/build.gradle
index ac6352f69116f114e5c0557c4b271b6f1f68f8e0..851c96e148ed22f71ee719764faa7baa9bda15ae 100644
--- a/relast-xml-inc/build.gradle
+++ b/relast-xml-inc/build.gradle
@@ -14,8 +14,8 @@ plugins {
 
 ext.relastFiles = ["src/main/jastadd/base/SocialNetwork.relast"]
 
-apply from: '../solve/gradle-parts/base.gradle'
+apply from: '../solve/gradle-parts/01-inc-incremental.gradle'
 
-apply from: '../solve/gradle-parts/inc-incremental.gradle'
+apply from: '../solve/gradle-parts/02-base.gradle'
 
-apply from: '../solve/gradle-parts/rel-relast.gradle'
+apply from: '../solve/gradle-parts/03-rel-relast.gradle'
diff --git a/settings.gradle b/settings.gradle
index ba25857cff1ac0301b90839d0045490544f45076..666aad8493328e2ada80e8b2ec637599cb1d268f 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,6 +1,7 @@
 include ':solve'
 include ':namelookup-xml-flush'
 include ':namelookup-xml-inc'
+include ':relast-reusable-flush'
 include ':relast-reusable-inc'
 include ':relast-xml-flush'
 include ':relast-xml-inc'
diff --git a/solve/build.gradle b/solve/build.gradle
index ac6352f69116f114e5c0557c4b271b6f1f68f8e0..851c96e148ed22f71ee719764faa7baa9bda15ae 100644
--- a/solve/build.gradle
+++ b/solve/build.gradle
@@ -14,8 +14,8 @@ plugins {
 
 ext.relastFiles = ["src/main/jastadd/base/SocialNetwork.relast"]
 
-apply from: '../solve/gradle-parts/base.gradle'
+apply from: '../solve/gradle-parts/01-inc-incremental.gradle'
 
-apply from: '../solve/gradle-parts/inc-incremental.gradle'
+apply from: '../solve/gradle-parts/02-base.gradle'
 
-apply from: '../solve/gradle-parts/rel-relast.gradle'
+apply from: '../solve/gradle-parts/03-rel-relast.gradle'
diff --git a/solve/gradle-parts/01-inc-flush.gradle b/solve/gradle-parts/01-inc-flush.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..577b3eea510e2d985c09e21c578b5fa9f4ea1184
--- /dev/null
+++ b/solve/gradle-parts/01-inc-flush.gradle
@@ -0,0 +1,7 @@
+project.ext.extraJastAddOptions = [
+        '--lineColumnNumbers',
+        '--cache=all',
+        "--flush=full",
+        "--incremental=none",
+        "--tracing=api",
+]
diff --git a/solve/gradle-parts/01-inc-incremental.gradle b/solve/gradle-parts/01-inc-incremental.gradle
new file mode 100644
index 0000000000000000000000000000000000000000..39e8592f3522865dbc23662decfd64dfa0302dee
--- /dev/null
+++ b/solve/gradle-parts/01-inc-incremental.gradle
@@ -0,0 +1,7 @@
+project.ext.extraJastAddOptions = [
+        '--lineColumnNumbers',
+        '--cache=all',
+        "--flush=api",
+        "--incremental=param,debug",
+        "--tracing=api",
+]
diff --git a/solve/gradle-parts/base.gradle b/solve/gradle-parts/02-base.gradle
similarity index 93%
rename from solve/gradle-parts/base.gradle
rename to solve/gradle-parts/02-base.gradle
index eacb43e275cc07e081adc2a416852f1c426a6254..47fbd7426daf4fbcc63f784e9469ba77d2eedbf0 100644
--- a/solve/gradle-parts/base.gradle
+++ b/solve/gradle-parts/02-base.gradle
@@ -74,13 +74,7 @@ jastadd {
     buildInfoDir = 'src/gen-res'
 
     // default options are: '--rewrite=cnta', '--safeLazy', '--visitCheck=false', '--cacheCycle=false'
-    extraJastAddOptions = [
-            '--lineColumnNumbers',
-            '--cache=all',
-            "--flush=api",
-            "--incremental=param,debug",
-            "--tracing=api",
-    ]
+    extraJastAddOptions = project.ext.extraJastAddOptions
 }
 
 cleanGen.doFirst {
diff --git a/solve/gradle-parts/rel-relast.gradle b/solve/gradle-parts/03-rel-relast.gradle
similarity index 100%
rename from solve/gradle-parts/rel-relast.gradle
rename to solve/gradle-parts/03-rel-relast.gradle
diff --git a/solve/gradle-parts/rel-namelookup.gradle b/solve/gradle-parts/rel-namelookup.gradle
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/timedBenchmark.sh b/timedBenchmark.sh
index b509203719612ae46d7da376bd77598474c42a3a..c734c78952b6c92c4b67bffa7d1b5381e0ad364d 100755
--- a/timedBenchmark.sh
+++ b/timedBenchmark.sh
@@ -2,5 +2,4 @@
 project=$1
 query=$2
 size=$3
-./gradlew :${project}:installDist
-ChangeSet=$size ChangePath=solve/src/test/resources/models/$size/ Sequences=20 Query=Q$query java -jar $project/build/libs/solve-1.0-SNAPSHOT.jar
+ChangeSet=$size ChangePath=solve/src/test/resources/models/$size/ Sequences=20 Query=Q$query java -jar "$project/build/libs/solve-1.0-SNAPSHOT.jar"