diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7b0a6a84fd51884b8739d62a53b2d783dd968fec..c964774706caeb97d83c3fa7f53ace290fb82f8f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -249,7 +249,7 @@ oneapi_jug_dev:default:
       fi   
     ## Copy jug_dev files into build context
     - cp -r containers/jug/* containers/oneapi
-    - docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${INTERNAL_TAG} 
+    - docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${INTERNAL_TAG} ${CACHE_FLAG}
                    -f containers/oneapi/onedev.Dockerfile
                    --build-arg SPACK_VERSION="${SPACK_VERSION}"
                    --build-arg SPACK_CHERRYPICKS="${SPACK_CHERRYPICKS}"
@@ -273,8 +273,9 @@ oneapi_jug_xl:default:
     - cp containers/jug/setup_detectors.py containers/oneapi
     - cp detectors.yaml containers/oneapi
     - docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${INTERNAL_TAG} 
-                   -f containers/oneapi/onexl.Dockerfile
+                   -f containers/jug/xl.Dockerfile 
                    --build-arg INTERNAL_TAG=${INTERNAL_TAG}
+                   --build-arg BASEIMAGE="oneapi_jug_dev"
                    --build-arg JUGGLER_VERSION=${JUGGLER_VERSION}
                    --build-arg NPDET_VERSION=${NPDET_VERSION}
                    --build-arg JUG_VERSION=${INTERNAL_TAG}-$(git rev-parse HEAD)
@@ -297,10 +298,11 @@ oneapi_jug_xl:nightly:
     BUILD_IMAGE: "oneapi_jug_xl"
   script:
     - cp containers/jug/setup_detectors.py containers/oneapi
-    - cp detectors.yaml containers/oneapi
-    - docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${NIGHTLY_TAG} 
-                   -f containers/oneapi/onexl.Dockerfile
+    - cp detectors.yaml containers/oneapi 
+    - docker build -t ${CI_REGISTRY_IMAGE}/${BUILD_IMAGE}:${NIGHTLY_TAG}
+                   -f containers/jug/xl.Dockerfile 
                    --build-arg INTERNAL_TAG=${INTERNAL_TAG}
+                   --build-arg BASEIMAGE="oneapi_jug_dev"
                    --build-arg JUG_VERSION=nightly-$(date +%Y-%m-%d_%H-%M-%S)-${INTERNAL_TAG}-$(git rev-parse HEAD)
                    --build-arg NIGHTLY=1
                     containers/oneapi
@@ -606,8 +608,7 @@ cleanup:
   stage: finalize
   dependencies:
     - version
-  rules:
-    - when: always
+  when: always
   script:
     ## remove the pipeline specific export from eicweb if needed
     - echo "Cleaning up pipeline specific docker tags if needed"
diff --git a/containers/jug/xl.Dockerfile b/containers/jug/xl.Dockerfile
index 8df688ea22ade051f997ef305f584e2b4bfae443..0fbf26367130d4bb21813a4f7d7348c501f7c1d4 100644
--- a/containers/jug/xl.Dockerfile
+++ b/containers/jug/xl.Dockerfile
@@ -1,12 +1,13 @@
 #syntax=docker/dockerfile:1.2
 ARG DOCKER_REGISTRY="eicweb.phy.anl.gov:4567/containers/eic_container/"
-ARG INTERNAL_TAG="testing" 
+ARG INTERNAL_TAG="testing"
+ARG BASEIMAGE="jug_dev"
 
 ## ========================================================================================
 ## STAGE1: spack builder image
 ## EIC builder image with spack
 ## ========================================================================================
-FROM ${DOCKER_REGISTRY}jug_dev:${INTERNAL_TAG}
+FROM ${DOCKER_REGISTRY}${BASEIMAGE}:${INTERNAL_TAG}
 
 ARG EICWEB="https://eicweb.phy.anl.gov/api/v4/projects"
 ARG JUGGLER_VERSION="master"
diff --git a/containers/oneapi/onedev.Dockerfile b/containers/oneapi/onedev.Dockerfile
index e2eb45cbbf09c272ff8f17183aeded9b95d985eb..18c66620683b81d894220c34ea66abb8505db954 100644
--- a/containers/oneapi/onedev.Dockerfile
+++ b/containers/oneapi/onedev.Dockerfile
@@ -237,7 +237,7 @@ RUN chmod a+x /usr/local/bin/mc
 ## Use Intel's HPC-kit and Create Lean image from staging
 ## ========================================================================================
 
-FROM intel/oneapi-basekit:2022.2-devel-ubuntu20.04 AS oneapi
+FROM intel/oneapi-hpckit:2022.2-devel-ubuntu20.04 AS oneapi
 
 
 COPY bashrc /root/.bashrc
@@ -250,7 +250,7 @@ ENV CLICOLOR_FORCE=1                                                    \
 ## Install additional packages. Remove the auto-cleanup functionality
 ## for docker, as we're using the new buildkit cache instead.
 ## We install gcc-10 and g++-10 as they are not installed by default in
-## Ubuntu 20.04
+## Ubuntu 20.04.
 ## TODO: libyaml-cpp-dev is a dependency for afterburner. We can probably remove
 ##       this once afterburner is added to spack
 RUN --mount=type=cache,target=/var/cache/apt                            \
diff --git a/containers/oneapi/onexl.Dockerfile b/containers/oneapi/onexl.Dockerfile
deleted file mode 100644
index 5db29d7f55c14073660a0a88742cde0ba40378cb..0000000000000000000000000000000000000000
--- a/containers/oneapi/onexl.Dockerfile
+++ /dev/null
@@ -1,116 +0,0 @@
-#syntax=docker/dockerfile:1.2
-ARG DOCKER_REGISTRY="eicweb.phy.anl.gov:4567/containers/eic_container/"
-# Internal Tag will be set by GitLab CI
-ARG INTERNAL_TAG="testing" 
-
-## ========================================================================================
-## STAGE 1: Base XL Image off jug_dev
-## Clone repos and build using cmake
-## ========================================================================================
-FROM ${DOCKER_REGISTRY}oneapi_jug_dev:${INTERNAL_TAG}
-
-ARG EICWEB="https://eicweb.phy.anl.gov/api/v4/projects"
-ARG JUGGLER_VERSION="master"
-ARG NPDET_VERSION="master"
-
-## version will automatically bust cache for nightly, as it includes
-## the date
-ARG JUG_VERSION=1
-
-ADD ${EICWEB}/18/repository/tree?ref=${NPDET_VERSION} /tmp/18.json
-RUN cd /tmp                                                                     \
- && echo " - jug_xl: ${JUG_VERSION}" >> /etc/jug_info                           \
- && echo "INSTALLING NPDET"                                                     \
- && git clone -b ${NPDET_VERSION} --depth 1                                     \
-        https://eicweb.phy.anl.gov/EIC/NPDet.git                                \
- && cmake -B build -S NPDet -DCMAKE_CXX_STANDARD=17                             \
- && cmake --build build -j12 -- install                                         \
- && pushd NPDet                                                                 \
- && echo " - NPDet: ${NPDET_VERSION}-$(git rev-parse HEAD)">> /etc/jug_info     \
- && popd                                                                        \
- && rm -rf build NPDet
-
-ADD ${EICWEB}/369/repository/tree?ref=${JUGGLER_VERSION} /tmp/369.json
-RUN cd /tmp                                                                     \
- && echo "INSTALLING JUGGLER"                                                   \
- && git clone -b ${JUGGLER_VERSION} --depth 1                                   \
-        https://eicweb.phy.anl.gov/EIC/juggler.git                              \
- && cmake -B build -S juggler                                                   \
-          -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_PREFIX=/usr/local             \
- && cmake --build build -j12 -- install                                         \
- && pushd juggler                                                               \
- && echo " - Juggler: ${JUGGLER_VERSION}-$(git rev-parse HEAD)"                 \
-          >> /etc/jug_info                                                      \
- && popd                                                                        \
- && rm -rf build juggler
-
-## also install detector/ip geometries into opt
-ARG NIGHTLY=''
-ADD ${EICWEB}/473/repository/tree?ref=master /tmp/473.json
-ADD ${EICWEB}/452/repository/tree?ref=master /tmp/452.json
-COPY setup_detectors.py /tmp
-COPY detectors.yaml /tmp
-RUN cd /tmp                                                                     \
- && [ "z$NIGHTLY" = "z1" ] && NIGHTLY_FLAG="--nightly" || NIGHTLY_FLAG=""       \
- && /tmp/setup_detectors.py --prefix /opt/detector --config /tmp/detectors.yaml \
-                         $NIGHTLY_FLAG                                          \
- && rm /tmp/setup_detectors.py
-
-## Install benchmarks into the container
-
-ARG BENCHMARK_COM_VERSION="master"
-ARG BENCHMARK_DET_VERSION="master"
-ARG BENCHMARK_REC_VERSION="master"
-ARG BENCHMARK_PHY_VERSION="master"
-
-ADD ${EICWEB}/458/repository/tree?ref=${BENCHMARK_COM_VERSION} /tmp/485.json
-ADD ${EICWEB}/399/repository/tree?ref=${BENCHMARK_DET_VERSION} /tmp/399.json
-ADD ${EICWEB}/408/repository/tree?ref=${BENCHMARK_REC_VERSION} /tmp/408.json 
-ADD ${EICWEB}/400/repository/tree?ref=${BENCHMARK_PHY_VERSION} /tmp/400.json
-RUN mkdir -p /opt/benchmarks                                                    \
- && cd /opt/benchmarks                                                          \
- && git clone -b ${BENCHMARK_COM_VERSION} --depth 1                             \
-        https://eicweb.phy.anl.gov/EIC/benchmarks/common_bench.git              \
- && mkdir -p /opt/benchmarks                                                    \
- && cd /opt/benchmarks                                                          \
- && git clone -b ${BENCHMARK_DET_VERSION} --depth 1                             \
-        https://eicweb.phy.anl.gov/EIC/benchmarks/detector_benchmarks.git       \
- && ln -sf ../common_bench detector_benchmarks/.local                           \
- && mkdir -p /opt/benchmarks                                                    \
- && cd /opt/benchmarks                                                          \
- && git clone -b ${BENCHMARK_REC_VERSION} --depth 1                             \
-        https://eicweb.phy.anl.gov/EIC/benchmarks/reconstruction_benchmarks.git \
- && ln -sf ../common_bench reconstruction_benchmarks/.local                     \
- && mkdir -p /opt/benchmarks                                                    \
- && cd /opt/benchmarks                                                          \
- && git clone -b ${BENCHMARK_PHY_VERSION} --depth 1                             \
-        https://eicweb.phy.anl.gov/EIC/benchmarks/physics_benchmarks.git        \
- && ln -sf ../common_bench physics_benchmarks/.local
-
-## Install campaigns into the container
-
-ARG CAMPAIGNS_SINGLE_VERSION="main"
-ARG CAMPAIGNS_HEPMC3_VERSION="main"
-ARG CAMPAIGNS_CONDOR_VERSION="main"
-ARG CAMPAIGNS_SLURM_VERSION="main"
-
-ADD ${EICWEB}/482/repository/tree?ref=${CAMPAIGNS_SINGLE_VERSION} /tmp/482.json
-ADD ${EICWEB}/483/repository/tree?ref=${CAMPAIGNS_HEPMC3_VERSION} /tmp/483.json
-ADD ${EICWEB}/484/repository/tree?ref=${CAMPAIGNS_CONDOR_VERSION} /tmp/484.json
-ADD ${EICWEB}/485/repository/tree?ref=${CAMPAIGNS_SLURM_VERSION} /tmp/485.json
-RUN mkdir -p /opt/campaigns                                                     \
- && cd /opt/campaigns                                                           \
- && git clone -b ${CAMPAIGNS_SINGLE_VERSION} --depth 1                          \
-        https://eicweb.phy.anl.gov/EIC/campaigns/single.git                     \
- && mkdir -p /opt/campaigns                                                     \
- && cd /opt/campaigns                                                           \
- && git clone -b ${CAMPAIGNS_HEPMC3_VERSION} --depth 1                          \
-        https://eicweb.phy.anl.gov/EIC/campaigns/hepmc3.git                     \
- && mkdir -p /opt/campaigns                                                     \
- && cd /opt/campaigns                                                           \
- && git clone -b ${CAMPAIGNS_CONDOR_VERSION} --depth 1                          \
-        https://eicweb.phy.anl.gov/EIC/campaigns/condor.git                     \
- && mkdir -p /opt/campaigns                                                     \
- && cd /opt/campaigns                                                           \
- && git clone -b ${CAMPAIGNS_SLURM_VERSION} --depth 1                           \
-        https://eicweb.phy.anl.gov/EIC/campaigns/slurm.git