diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 85f5fcf84d8a284f3ecfa2cf6f50ce49ca48eff5..e445f46e890219b5716455efb4769b40721a409e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -253,6 +253,7 @@ build_test-clang-8:
 ##########################################################
 # generic example template job
 # normal pipeline for each commit
+# artefacts are needed as input for python jobs
 .build_test_example:
   stage: build_test_example
   tags:
@@ -269,7 +270,7 @@ build_test-clang-8:
     - cd build_examples
     - cmake -DCMAKE_BUILD_TYPE=Debug ../install/share/corsika/examples
     - cmake --build . -- -j2
-    - cmake --build . --target run_examples -- -j2 | gzip -v -9 > examples.log.gz
+    - cmake --build . --target run_examples -- -j2 
   rules:
     - if: '$CI_MERGE_REQUEST_ID && ($CI_MERGE_REQUEST_TITLE =~ /^Draft:/ || $CI_MERGE_REQUEST_TITLE =~ /^WIP:/)'
       when: manual
@@ -286,7 +287,7 @@ build_test-clang-8:
       junit:
         - ${CI_PROJECT_DIR}/build/test_outputs/junit*.xml
     paths:
-      - ${CI_PROJECT_DIR}/build/build_examples/examples.log.gz
+      - ${CI_PROJECT_DIR}/build/build_examples/example_outputs
       - ${CI_PROJECT_DIR}/build/test_outputs/junit*.xml
 
 # build_test_example for gcc
@@ -367,7 +368,7 @@ install-clang-8:
     - cd build_examples
     - cmake -DCMAKE_BUILD_TYPE=Release ../install/share/corsika/examples
     - cmake --build . -- -j2
-    - cmake --build . --target run_examples -- -j2 | gzip -v -9 > examples.log.gz
+    - cmake --build . --target run_examples -- -j2 
   rules:
     - if: '$CI_MERGE_REQUEST_LABELS =~ /Ready for code review/' # run on merge requests, if label 'Ready for code review' is set
     - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
@@ -386,7 +387,6 @@ install-clang-8:
       junit:
         - ${CI_PROJECT_DIR}/build/test_outputs/junit*.xml
     paths:
-      - ${CI_PROJECT_DIR}/build/build_examples/examples.log.gz
       - ${CI_PROJECT_DIR}/build/test_outputs/junit*.xml
 
 # release for gcc
@@ -476,6 +476,9 @@ sanity:
       when: manual
       allow_failure: true
 
+
+######  Python ##########
+
 ##########################################################
 # template for all Python jobs
 .python:
@@ -502,8 +505,8 @@ python-3.8:
   extends: .python
   image: corsika/devel:u-18.04
   needs:
-    - job: build-u-18_04
-      artifacts: false
+    - job: build_test_example-u-18_04
+      artifacts: true
   artifacts:
     when: always
     expire_in: 1 year
diff --git a/corsika/detail/modules/ParticleCut.inl b/corsika/detail/modules/ParticleCut.inl
index a5c6dceda32463b237c6e2995c2c9151fe2b8ff0..97afbd0b360d71565296cb0d9288a1fc6c4029a1 100644
--- a/corsika/detail/modules/ParticleCut.inl
+++ b/corsika/detail/modules/ParticleCut.inl
@@ -38,7 +38,6 @@ namespace corsika {
         "hadrons = {} GeV, "
         "muons = {} GeV",
         eEleCut / 1_GeV, ePhoCut / 1_GeV, eHadCut / 1_GeV, eMuCut / 1_GeV);
-    printThresholds();
   }
 
   inline ParticleCut::ParticleCut(HEPEnergyType const eHadCut, HEPEnergyType const eMuCut,
@@ -61,7 +60,6 @@ namespace corsika {
         "setting thresholds: hadrons = {} GeV, "
         "muons = {} GeV",
         eHadCut / 1_GeV, eMuCut / 1_GeV);
-    printThresholds();
   }
 
   inline ParticleCut::ParticleCut(HEPEnergyType const eCut, bool const em, bool const inv)
@@ -76,7 +74,6 @@ namespace corsika {
     for (auto p : get_all_particles()) set_kinetic_energy_threshold(p, eCut);
     CORSIKA_LOG_DEBUG("setting kinetic energy threshold for all particles to {} GeV",
                       eCut / 1_GeV);
-    printThresholds();
   }
 
   inline ParticleCut::ParticleCut(
@@ -92,7 +89,6 @@ namespace corsika {
       , inv_count_(0) {
     set_kinetic_energy_thresholds(eCuts);
     CORSIKA_LOG_DEBUG("setting threshold particles individually");
-    printThresholds();
   }
 
   template <typename TParticle>
diff --git a/examples/cascade_proton_example.cpp b/examples/cascade_proton_example.cpp
index 5491258ac68006e5e7d483878543b85a3a1d2de8..94db3bd19bb8a7f151b0d342438071dff95ea97e 100644
--- a/examples/cascade_proton_example.cpp
+++ b/examples/cascade_proton_example.cpp
@@ -127,6 +127,7 @@ int main() {
   //  sibyll::Decay decay;
   corsika::pythia8::Decay decay;
   ParticleCut cut(60_GeV, true, true);
+  cut.printThresholds();
 
   // RNGManager::getInstance().registerRandomStream("HadronicElasticModel");
   // HadronicElasticModel::HadronicElasticInteraction