diff --git a/.build.ci.sh b/.build.ci.sh
index 7b1b8b64c464cfef2fae30e2340d3b605448946a..e0b5edb0a0a7e589a43b74b7fafc6e16334476a9 100644
--- a/.build.ci.sh
+++ b/.build.ci.sh
@@ -1,13 +1,32 @@
 #!/bin/bash
 # This is wrapper to run the build.sh on CI
 
-source setup.sh
-./build.sh >& mylog.sh &
-buildpid=$!
+echo "LCG_RELEASE: ${LCG_RELEASE}"
+
+buildpid=
+logfile=mylog.txt
+
+if [ "$LCG_RELEASE" = "KEY4HEP_STACK" ]; then
+    logfile=mylog-k4.sh
+    source /cvmfs/sw.hsf.org/key4hep/setup.sh
+    ./build-k4.sh >& ${logfile} &
+    buildpid=$!
+else
+    source setup.sh
+    ./build.sh >& ${logfile} &
+    buildpid=$!
+fi
 
 while ps -p $buildpid 2>/dev/null ; do
     sleep 60
-done
+done &
+echoer=$!
+
+trap 'kill $echoer' 0
+
+wait $buildpid
+statuspid=$?
 
-tail -n100 mylog.sh
+tail -n100 ${logfile}
 
+exit $statuspid
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
deleted file mode 100644
index cee95655bc0e1c3f9e8078c247fc183732b00d48..0000000000000000000000000000000000000000
--- a/.gitlab-ci.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-build:
-  stage: build
-  before_script:
-    - source /cvmfs/cepcsw.ihep.ac.cn/prototype/setup.sh
-  script:
-    - mkdir build
-    - cd build
-    - cmake ..
-    - make
-  artifacts:
-    paths:
-      - build/
-
-
diff --git a/.travis.yml b/.travis.yml
index 6feb6e21330928ca5867b975ab9a8a240c0f4261..3d0686a3840b2b4d67f41cd7876d0434a2c2b560 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,6 +10,7 @@ language: cpp
 env:
   matrix:
     - COMPILER=gcc;   LCG_RELEASE=LCG_96c_LS; STANDARD=17; COMPILER_VERSION=gcc8;
+    - COMPILER=gcc;   LCG_RELEASE=KEY4HEP_STACK; STANDARD=17; COMPILER_VERSION=gcc8;
 
 before_install:
   - wget --no-check-certificate https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest_all.deb
@@ -25,7 +26,7 @@ before_install:
   - echo "CVMFS_HTTP_PROXY=DIRECT"                                  | sudo tee -a  /etc/cvmfs/default.local > /dev/null
   - echo "CVMFS_CACHE_BASE='/var/lib/cvmfs'"                        | sudo tee -a  /etc/cvmfs/default.local > /dev/null
   - echo "CVMFS_FORCE_SIGNING='yes'"                                | sudo tee -a  /etc/cvmfs/default.local > /dev/null
-  - echo "CVMFS_REPOSITORIES='sft.cern.ch,sw-nightlies.hsf.org,cepcsw.ihep.ac.cn,container.ihep.ac.cn'"    | sudo tee -a  /etc/cvmfs/default.local > /dev/null
+  - echo "CVMFS_REPOSITORIES='sft.cern.ch,sft-nightlies.cern.ch,sw.hsf.org,sw-nightlies.hsf.org,cepcsw.ihep.ac.cn,container.ihep.ac.cn'"    | sudo tee -a  /etc/cvmfs/default.local > /dev/null
   - echo "CVMFS_SEND_INFO_HEADER=no"                                | sudo tee -a  /etc/cvmfs/default.local > /dev/null
   - cat /etc/cvmfs/default.local
   - # change wrt dd4hep setup: don't manually mount cvmfs folders
@@ -35,15 +36,20 @@ before_install:
   - sudo mkdir -p /cvmfs/sft.cern.ch
   - sudo mkdir -p /cvmfs/sft-nightlies.cern.ch
   - sudo mkdir -p /cvmfs/geant4.cern.ch
+  - sudo mkdir -p /cvmfs/sw.hsf.org
   - sudo mkdir -p /cvmfs/sw-nightlies.hsf.org
   - sudo mkdir -p /cvmfs/cepcsw.ihep.ac.cn
   - sudo mkdir -p /cvmfs/container.ihep.ac.cn
   - ls /cvmfs/sft.cern.ch
+  - ls /cvmfs/sft-nightlies.cern.ch
   - ls /cvmfs/geant4.cern.ch
+  - ls /cvmfs/sw.hsf.org
   - ls /cvmfs/sw-nightlies.hsf.org
   - ls /cvmfs/cepcsw.ihep.ac.cn
   - ls /cvmfs/container.ihep.ac.cn
   - export CVMFS_REPOS="-v /cvmfs/sft.cern.ch:/cvmfs/sft.cern.ch"
+  - export CVMFS_REPOS="${CVMFS_REPOS} -v /cvmfs/sft-nightlies.cern.ch:/cvmfs/sft-nightlies.cern.ch"
+  - export CVMFS_REPOS="${CVMFS_REPOS} -v /cvmfs/sw.hsf.org:/cvmfs/sw.hsf.org"
   - export CVMFS_REPOS="${CVMFS_REPOS} -v /cvmfs/sw-nightlies.hsf.org:/cvmfs/sw-nightlies.hsf.org"
   - export CVMFS_REPOS="${CVMFS_REPOS} -v /cvmfs/geant4.cern.ch:/cvmfs/geant4.cern.ch"
   - export CVMFS_REPOS="${CVMFS_REPOS} -v /cvmfs/cepcsw.ihep.ac.cn:/cvmfs/cepcsw.ihep.ac.cn"
diff --git a/README.md b/README.md
index 4946e823d2b5d28d70f84ff8813da437b267bc6e..f7c0588f22961367fbd3285b4cb3afa49ac90e7d 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@ CEPC offline software prototype based on [Key4hep](https://github.com/key4hep).
 
 ## Quick start
 
-Start the container in lxslc7 (OS: CentOS7):
+Start an SL6 container in lxslc7 (OS: CentOS7):
 ```
 $ /cvmfs/container.ihep.ac.cn/bin/hep_container shell SL6
 ```
@@ -32,9 +32,10 @@ $ ./run.sh Examples/options/helloalg.py
 
 * Simulation: Detector Simulation
 
+* Digitization: Digitization
+
 * Reconstruction: Reconstruction
 
-* Service: Common Service
 
 ## Conventions for collections
 Keep the collection names compatible between the prototype and the existing CEPC software.
diff --git a/build-k4.sh b/build-k4.sh
index b8ac7cfa82882eabfbe443cd662fc44255570a8b..f7e7560497b51e2dae4bbf8a3e6ecd0611d3c535 100755
--- a/build-k4.sh
+++ b/build-k4.sh
@@ -21,6 +21,9 @@ function error:() {
 
 function check-cepcsw-envvar() {
     source /cvmfs/sw.hsf.org/key4hep/setup.sh
+    # fix the order of compiler
+    local ccdir=$(dirname $CC)
+    export PATH=$ccdir:$PATH
 }
 
 function build-dir() {