diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0e7ee4d439ad251afd04c393043f2b7941b8c438..93b28dd9a0345042b61c57b1d74b00b2fc4985a4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -36,6 +36,7 @@ tests (from scratch):
     - lukas_issue095_tech_mlt-runner
   variables:
     FAILURE_THRESHOLD: 100
+    TEST_TYPE: "scratch"
   before_script:
     - chmod +x ./CI/update_badge.sh
     - ./CI/update_badge.sh > /dev/null
@@ -67,6 +68,7 @@ coverage (from scratch):
   variables:
     FAILURE_THRESHOLD: 50
     COVERAGE_PASS_THRESHOLD: 80
+    TEST_TYPE: "scratch"
   before_script:
     - chmod +x ./CI/update_badge.sh
     - ./CI/update_badge.sh > /dev/null
@@ -98,6 +100,7 @@ tests (on GPU):
     - lukas_issue095_tech_mlt-runner
   variables:
     FAILURE_THRESHOLD: 100
+    TEST_TYPE: "gpu"
   before_script:
     - chmod +x ./CI/update_badge.sh
     - ./CI/update_badge.sh > /dev/null
@@ -114,35 +117,6 @@ tests (on GPU):
       - badges/
       - test_results/
 
-coverage (on GPU):
-  tags:
-    - gpu
-    - zam347
-  stage: test
-  only:
-    - master
-    - /^release.*$/
-    - develop
-    - lukas_issue095_tech_mlt-runner
-  variables:
-    FAILURE_THRESHOLD: 50
-    COVERAGE_PASS_THRESHOLD: 80
-  before_script:
-    - chmod +x ./CI/update_badge.sh
-    - ./CI/update_badge.sh > /dev/null
-  script:
-    - pip install -r requirements.txt
-    - chmod +x ./CI/run_pytest_coverage.sh
-    - ./CI/run_pytest_coverage.sh
-  after_script:
-    - ./CI/update_badge.sh > /dev/null
-  artifacts:
-    name: pages
-    when: always
-    paths:
-      - badges/
-      - coverage/
-
 ### Tests ###
 tests:
   tags:
diff --git a/CI/run_pytest.sh b/CI/run_pytest.sh
index a7d883dcc95e0c16541af00ed0891e2d31dee82c..5da52d22d812c573b740329ac477b70e3562f5ab 100644
--- a/CI/run_pytest.sh
+++ b/CI/run_pytest.sh
@@ -1,24 +1,30 @@
 #!/bin/bash
 
 # run pytest for all run_modules
-python3 -m pytest --html=report.html --self-contained-html test/ | tee test_results.out
+python3.6 -m pytest --html=report.html --self-contained-html test/ | tee test_results.out
 
 IS_FAILED=$?
 
+if [ -z ${TEST_TYPE+x} ]; then
+    TEST_TYPE=""; else
+      TEST_TYPE="_"${TEST_TYPE};
+fi
+
 # move html test report
-mkdir test_results/
+TEST_RESULTS_DIR="test_results${TEST_TYPE}/"
+mkdir ${TEST_RESULTS_DIR}
 BRANCH_NAME=$( echo -e "${CI_COMMIT_REF_NAME////_}")
-mkdir test_results/${BRANCH_NAME}
-mkdir test_results/recent
-cp report.html test_results/${BRANCH_NAME}/.
-cp report.html test_results/recent/.
+mkdir "${TEST_RESULTS_DIR}/${BRANCH_NAME}"
+mkdir "${TEST_RESULTS_DIR}/recent"
+cp report.html "${TEST_RESULTS_DIR}/${BRANCH_NAME}/."
+cp report.html "${TEST_RESULTS_DIR}/recent/."
 if [[ "${CI_COMMIT_REF_NAME}" = "master" ]]; then
-    cp -r report.html test_results/.
+    cp -r report.html ${TEST_RESULTS_DIR}/.
 fi
 
 # exit 0 if no tests implemented
 RUN_NO_TESTS="$(grep -c 'no tests ran' test_results.out)"
-if [[ ${RUN_NO_TESTS} > 0 ]]; then
+if [[ ${RUN_NO_TESTS} -gt 0 ]]; then
     echo "no test available"
     echo "incomplete" > status.txt
     echo "no tests avail" > incomplete.txt
@@ -27,20 +33,22 @@ fi
 
 # extract if tests passed or not
 TEST_FAILED="$(grep -oP '(\d+\s{1}failed)' test_results.out)"
-TEST_FAILED="$(echo ${TEST_FAILED} | (grep -oP '\d*'))"
+TEST_FAILED="$(echo "${TEST_FAILED}" | (grep -oP '\d*'))"
 TEST_PASSED="$(grep -oP '\d+\s{1}passed' test_results.out)"
-TEST_PASSED="$(echo ${TEST_PASSED} | (grep -oP '\d*'))"
+TEST_PASSED="$(echo "${TEST_PASSED}" | (grep -oP '\d*'))"
 if [[ -z "$TEST_FAILED" ]]; then
     TEST_FAILED=0
 fi
-let "TEST_PASSED=${TEST_PASSED}-${TEST_FAILED}"
-
+#let "TEST_PASSED=${TEST_PASSED}-${TEST_FAILED}"
+(( TEST_PASSED=TEST_PASSED-TEST_FAILED ))
 # calculate metrics
-let "SUM=${TEST_FAILED}+${TEST_PASSED}"
-let "TEST_PASSED_RATIO=${TEST_PASSED}*100/${SUM}"
+(( SUM=TEST_FAILED+TEST_PASSED ))
+(( TEST_PASSED_RATIO=TEST_PASSED*100/SUM ))
+#let "SUM=${TEST_FAILED}+${TEST_PASSED}"
+#let "TEST_PASSED_RATIO=${TEST_PASSED}*100/${SUM}"
 
 # report
-if [[ ${IS_FAILED} == 0 ]]; then
+if [[ ${IS_FAILED} -eq 0 ]]; then
     if [[ ${TEST_PASSED_RATIO} -lt 100 ]]; then
         echo "only ${TEST_PASSED_RATIO}% passed"
         echo "incomplete" > status.txt
diff --git a/CI/run_pytest_coverage.sh b/CI/run_pytest_coverage.sh
index 2157192d49a15baa048968b799aa264941152c1b..0161a9c1a59264bf35667a98f3a67e7c68623989 100644
--- a/CI/run_pytest_coverage.sh
+++ b/CI/run_pytest_coverage.sh
@@ -1,8 +1,8 @@
 #!/usr/bin/env bash
 
 # run coverage twice, 1) for html deploy 2) for success evaluation
-python3 -m pytest --cov=src --cov-report html test/
-python3 -m pytest --cov=src --cov-report term test/ | tee coverage_results.out
+python3.6 -m pytest --cov=src --cov-report html test/
+python3.6 -m pytest --cov=src --cov-report term test/ | tee coverage_results.out
 
 IS_FAILED=$?