diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2ddb4c503866180d3aab9cfadab88b3e7eee7bc3..c08d7bad62c7101d3206f124285d4cdb5fb26305 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -10,40 +10,39 @@ workflow:
 
 default:
   before_script:
-    - mkdir -p images && mkdir -p doc/
-    - git clone https://eicweb.phy.anl.gov/EIC/detectors/accelerator.git 
-      && ln -s accelerator/eic 
-    - git clone https://eicweb.phy.anl.gov/EIC/detectors/ip6.git eic_ip6 
-      && mkdir ip6_build 
-      && cd ip6_build 
-      && cmake ../eic_ip6/. -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_PREFIX=/usr/local 
-      && make -j20 
-      && make install 
-      && cd .. 
-      && ln -s eic_ip6/ip6 || exit 1
-    - mkdir build 
-      && cd build 
-      && cmake ../. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_CXX_STANDARD=17
-      && make -j20 
-      && make install 
-      && cd .. || exit 1
+    - source .local/bin/env.sh
   artifacts:
+    expire_in: 1 week 
     paths:
-      - images/
-      - doc/
+      - .local/detector
+      - .local/lib
+      - .local/bin
+      - .local/include
+      - .local/share
+      - results
+      - config
+      - images
+      - doc
+      - juggler.env
     reports:
       dotenv: juggler.env
 
 stages:
   - config
+  - initialize
   - build
   - docs
   - test 
+  - collect
   - finalize 
   - deploy
 
-env:
-  stage: config 
+common:setup:
+  stage: config
+  rules:
+    - if: '$CI_SERVER_HOST == "eicweb.phy.anl.gov"' 
+  before_script:
+    - git clone https://eicweb.phy.anl.gov/EIC/benchmarks/common_bench.git setup 
   script:
     - export JUGGLER_DETECTOR="reference_detector"
     - |
@@ -56,15 +55,23 @@ env:
         echo "JUGGLER_DETECTOR_VERSION=$CI_COMMIT_REF_NAME" >> juggler.env
         echo "JUGGLER_DETECTOR=$JUGGLER_DETECTOR" >> juggler.env
       fi
-  artifacts:
-    reports:
-      dotenv: juggler.env
+    - source setup/bin/env.sh && ./setup/bin/install_common.sh
 
+common:detector:
+  stage: initialize
+  needs: ["common:setup"]
+  script:
+    - source .local/bin/env.sh && build_detector.sh
+    - mkdir_local_data_link sim_output
+    - mkdir -p results
+    - mkdir -p config
+    - mkdir -p doc
+    - print_env.sh
 
 compile:
   stage: build
   needs:
-    - ["env"]
+    - ["common:detector"]
   script:
     - mkdir -p build && cd build && cmake ../. -DCMAKE_INSTALL_PREFIX=/usr/local && make -j20 && make install  && cd ..
     - echo "Build successful."
@@ -72,11 +79,7 @@ compile:
 .views:
   stage: docs
   needs:
-    - ["compile"]
-  artifacts:
-    paths:
-      - images/
-      - doc/
+    - ["common:detector"]
 
 include:
   - local: 'views/view1.yml'
@@ -98,11 +101,12 @@ report:
     - view_03
     - view_06
     - view_07
+    - view_11
+    - view_12
+    - view_13
+    - view_14
+    - view_15
     - dump_constants
-  artifacts:
-    paths:
-      - images/
-      - doc/
   script:
     - pip3 install jinja2 &&  ls -lrth
     - ./bin/make_images > doc/dawn_views.md
@@ -110,28 +114,37 @@ report:
 dump_constants:
   stage: test
   needs: 
-    - ["compile"]
+    - ["common:detector"]
   script:
-    - npdet_info dump reference_detector.xml  | tee doc/constants.out 
+    - npdet_info dump ${DETECTOR_PATH}/reference_detector.xml  | tee doc/constants.out 
 
 overlap_check:
   stage: test
   needs: 
-    - ["compile"]
+    - ["common:detector"]
   script:
-    - checkOverlaps -c reference_detector.xml  | tee doc/overlap_check.out 
+    - checkOverlaps -c ${DETECTOR_PATH}/reference_detector.xml  | tee doc/overlap_check.out 
     - echo "$(cat doc/overlap_check.out | grep ovlp | wc -l) overlaps..."
     - if [[ "$(cat doc/overlap_check.out | grep ovlp | wc -l)" -gt "0" ]] ; then echo "Overlaps exist!" && false ; fi
 
 detector:config_testing:
   stage: test
   needs: 
-    - ["compile"]
+    - ["common:detector"]
   script:
-    - checkOverlaps -c reference_detector.xml  | tee doc/overlap_check.out | wc -l
+    - checkOverlaps -c ${DETECTOR_PATH}/reference_detector.xml  | tee doc/overlap_check.out | wc -l
     - cat doc/overlap_check.out
   allow_failure: true
 
+    #benchmarks:reconstruction:
+    #  stage: deploy
+    #  variables:
+    #    JUGGLER_DETECTOR: "$JUGGLER_DETECTOR"
+    #    JUGGLER_DETECTOR_VERSION: "$JUGGLER_DETECTOR_VERSION"
+    #  trigger:
+    #    project: EIC/benchmarks/reconstruction_benchmarks
+    #    strategy: depend
+    #  needs: ["env","overlap_check","report"]
     #benchmarks:reconstruction:
     #  stage: deploy
     #  variables:
diff --git a/README.md b/README.md
index 107970959d307f8a2d846b9a106397e8491b3bff..6593cdf1c91865e9b813fa28ba11667485b0c02b 100644
--- a/README.md
+++ b/README.md
@@ -30,20 +30,21 @@ Here is how to begin:
 3. Create a WIP (or draft) merge request and look at the CI output for debugging. Then go to back to 2 if changes are needed.
 4. Remove the WIP/Draft part of the merge request if you would like to see your changes merged into the master.
 
-### Compiling 
+See:
+
+- [Talk at computing round table](https://indico.jlab.org/event/420/#17-automated-workflow-for-end)
+
+### Compiling (avoid it)
 
 First, see if the use case above is best for you. It most likely is and can save a lot of time for newcomers.
 To run the simulation locally, we suggest using the singularity image.
 More details can be found at the links below: 
 
+- https://dd4hep.web.cern.ch/dd4hep/page/beginners-guide/
 - https://eic.phy.anl.gov/tutorials/eic_tutorial/
 - https://eicweb.phy.anl.gov/containers/eic_container/
 
 
-
-
-
-
 Related useful links
 --------------------
 
diff --git a/bin/make_dawn_views b/bin/make_dawn_views
index e73538794addb67366b555d321128cc9da0b6952..41ee03868fc4d874e8b12d8649a4988f73a91f01 100755
--- a/bin/make_dawn_views
+++ b/bin/make_dawn_views
@@ -35,7 +35,7 @@ SKIP_EVENTS=0
 DETECTOR_ONLY=0
 FILE_TAG="view"
 DAWN_RUN_DIR="scripts/view1"
-DETECTOR_FILE="reference_detector.xml"
+DETECTOR_FILE="${DETECTOR_PATH}/reference_detector.xml"
 
 POSITIONAL=()
 while [[ $# -gt 0 ]]
@@ -97,7 +97,9 @@ rm -f *.prim
 
 if [  "${DETECTOR_ONLY}" -eq "1" ] ; then
 
-  ./scripts/run_detector_simulation.py -i scripts/input_data/few_events.hepmc \
+  ./scripts/run_detector_simulation.py  \
+    --compact ${DETECTOR_PATH}/reference_detector.xml \
+  -i scripts/input_data/few_events.hepmc \
   -o derp.root -n 1 \
   --ui csh --vis -b -m macro/dawn_picture.mac & 
 
@@ -113,7 +115,9 @@ kill %1
 else 
 
   echo " Running simulation for tracks"
-./scripts/run_detector_simulation.py -i scripts/input_data/few_events.hepmc \
+./scripts/run_detector_simulation.py \
+    --compact ${DETECTOR_PATH}/reference_detector.xml \
+  -i scripts/input_data/few_events.hepmc \
   -o derp.root -s ${SKIP_EVENTS} -n 1 \
   --ui csh --vis -b -m macro/dawn_picture2.mac &