diff --git a/.github/workflows/_screenshot.yml b/.github/workflows/_screenshot.yml
new file mode 100644
index 0000000000000000000000000000000000000000..146e54d3f248f4f3837e105fee50f181e07d3961
--- /dev/null
+++ b/.github/workflows/_screenshot.yml
@@ -0,0 +1,73 @@
+name: "[e2e] screenshot"
+on:
+  workflow_call:
+    inputs:
+      os:
+        required: false
+        type: string
+        default: ubuntu-latest
+      browser:
+        required: false
+        type: string
+        default: chrome
+      url:
+        required: true
+        type: string
+      screenshot-filename:
+        required: true
+        type: string
+        description: "desired filename *without* extension. .png will *always* be appended"
+    secrets:
+      client-id:
+        required: false
+      client-secret:
+        required: false
+
+jobs:
+  screenshot:
+    runs-on: ${{ inputs.os }}
+    steps:
+    - uses: actions/checkout@v4
+    - uses: actions/setup-node@v4
+      with:
+        node-version: 20
+    - name: Set variables
+      run: |
+        GIT_DIGEST=${{ github.sha }}
+        GIT_DIGEST=$(echo $GIT_DIGEST | head -c 6)
+
+        echo "mkdir -p $(dirname ${{ inputs.screenshot-filename }})"
+        mkdir -p $(dirname ${{ inputs.screenshot-filename }})
+
+        SCREENSHOT_URL=${{ inputs.url }}
+        SCREENSHOT_PATH=${{ inputs.screenshot-filename }}
+
+        echo "SCREENSHOT_URL: $SCREENSHOT_URL"
+        echo "SCREENSHOT_PATH: $SCREENSHOT_PATH"
+
+        echo "SCREENSHOT_URL=$SCREENSHOT_URL" >> $GITHUB_ENV
+        echo "SCREENSHOT_PATH=$SCREENSHOT_PATH" >> $GITHUB_ENV
+
+    - name: Install dependency
+      run: npm install cypress
+
+    - name: Run Cypress
+      uses: cypress-io/github-action@v6
+      with:
+        spec: cypress/e2e/screenshot.cy.js
+        browser: ${{ inputs.browser }}
+        
+    - uses: actions/upload-artifact@v4
+      with:
+        name: ${{ env.SCREENSHOT_PATH }}
+        path: cypress/screenshots/screenshot.cy.js/*.png
+        retention-days: 5
+
+    - continue-on-error: true
+      uses: FZJ-INM1-BDA/iav-dep-test/.github/actions/upload_dataproxy@master
+      with:
+        upload-file: cypress/screenshots/screenshot.cy.js/${{ inputs.screenshot-filename }}.png
+        bucket-name: reference-atlas-data
+        dest-path: viewere2e/${{ inputs.screenshot-filename }}.png
+        client-id: ${{ secrets.client-id }}
+        client-secret: ${{ secrets.client-secret }}
diff --git a/.github/workflows/docker_img.yml b/.github/workflows/docker_img.yml
index acd0d525a9393f0580ba06599ace4992341c3d69..fbb54a6532c59571c36ea1c8b043c1b8e30f2871 100644
--- a/.github/workflows/docker_img.yml
+++ b/.github/workflows/docker_img.yml
@@ -13,8 +13,51 @@ on:
       - 'docs/**/*'
 
 jobs:
+  set-vars:
+    runs-on: ubuntu-latest
+    outputs:
+      GIT_DIGEST: ${{ steps.set-vars-step.outputs.GIT_DIGEST }}
+      BRANCH_NAME: ${{ steps.set-vars-step.outputs.BRANCH_NAME }}
+      BUILD_TEXT: ${{ steps.set-vars-step.outputs.BUILD_TEXT }}
+      DEPLOY_ID: ${{ steps.set-vars-step.outputs.DEPLOY_ID }}
+      SXPLR_VERSION: ${{ steps.set-vars-step.outputs.SXPLR_VERSION }}
+    steps:
+    - uses: actions/checkout@v4
+    - id: 'set-vars-step'
+      name: Set variables
+      run: |
+        GIT_DIGEST=${{ github.sha }}
+        echo "Git digest: $GIT_DIGEST"
+        GIT_DIGEST=$(echo $GIT_DIGEST | grep -oP '^.{6}')
+        echo "Using first 6 chars of hash: $GIT_DIGEST"
+        echo "GIT_DIGEST=$GIT_DIGEST" >> $GITHUB_OUTPUT
+        
+        echo "Using github.ref: $GITHUB_REF"
+
+        BRANCH_NAME=${GITHUB_REF#refs/heads/}
+        echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_OUTPUT
+
+        echo "Branch is $BRANCH_NAME ."
+
+        if [[ "$BRANCH_NAME" == 'master' ]]
+        then
+          echo "BUILD_TEXT=" >> $GITHUB_OUTPUT
+        else
+          echo "BUILD_TEXT=$BRANCH_NAME" >> $GITHUB_OUTPUT
+        fi
+
+        # DEPLOY_ID == remove _ / and lowercase everything from branch
+        DEPLOY_ID=$(echo ${BRANCH_NAME//[_\/]/} | awk '{ print tolower($0) }')
+        echo "DEPLOY_ID=$DEPLOY_ID" >> $GITHUB_OUTPUT
+
+        SXPLR_VERSION=$(jq -r '.version' package.json)
+        echo "SXPLR_VERSION=$SXPLR_VERSION"
+        echo "SXPLR_VERSION=$SXPLR_VERSION" >> $GITHUB_OUTPUT
+
   build-docker-img:
     runs-on: ubuntu-latest
+    needs:
+    - set-vars
     env:
       MATOMO_ID_PROD: '12'
       MATOMO_URL_PROD: 'https://stats.humanbrainproject.eu/'
@@ -25,9 +68,6 @@ jobs:
       SIIBRA_API_RC: 'https://siibra-api-rc.apps.hbp.eu/v3_0'
       SIIBRA_API_LATEST: 'https://siibra-api-latest.apps-dev.hbp.eu/v3_0'
 
-    outputs:
-      GIT_DIGEST: ${{ steps.build-docker-image.outputs.GIT_DIGEST }}
-
     steps:
     - uses: actions/checkout@v4
       with:
@@ -65,14 +105,9 @@ jobs:
     - id: 'build-docker-image'
       name: 'Build docker image'
       run: |
-        GIT_DIGEST=${{ github.sha }}
+        GIT_DIGEST=${{ needs.set-vars.outputs.GIT_DIGEST }}
         echo "Git digest: $GIT_DIGEST"
 
-        # 62 char limit in label
-        GIT_DIGEST=$(echo $GIT_DIGEST | grep -oP '^.{6}')
-        echo "Using first 6 chars of hash: $GIT_DIGEST"
-        echo "GIT_DIGEST=$GIT_DIGEST" >> $GITHUB_OUTPUT
-
         DOCKER_BUILT_TAG=${{ env.DOCKER_REGISTRY }}siibra-explorer:$BRANCH_NAME
         echo "Building $DOCKER_BUILT_TAG"
         docker build \
@@ -106,59 +141,24 @@ jobs:
         docker tag $DOCKER_BUILT_TAG $VERSIONED_DOCKER_BUILT_TAG
         docker push $VERSIONED_DOCKER_BUILT_TAG
 
-  setting-vars:
-    if: success()
-    runs-on: ubuntu-latest
-    outputs:
-      BRANCH_NAME: ${{ steps.set-vars.outputs.BRANCH_NAME }}
-      BUILD_TEXT: ${{ steps.set-vars.outputs.BUILD_TEXT }}
-      DEPLOY_ID: ${{ steps.set-vars.outputs.DEPLOY_ID }}
-      SXPLR_VERSION: ${{ steps.set-vars.outputs.SXPLR_VERSION }}
-    steps:
-      - uses: actions/checkout@v4
-      - id: set-vars
-        name: Set vars
-        run: |
-          echo "Using github.ref: $GITHUB_REF"
-
-          BRANCH_NAME=${GITHUB_REF#refs/heads/}
-          echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_OUTPUT
-
-          echo "Branch is $BRANCH_NAME ."
-
-          if [[ "$BRANCH_NAME" == 'master' ]]
-          then
-            echo "BUILD_TEXT=" >> $GITHUB_OUTPUT
-          else
-            echo "BUILD_TEXT=$BRANCH_NAME" >> $GITHUB_OUTPUT
-          fi
-
-          # DEPLOY_ID == remove _ / and lowercase everything from branch
-          DEPLOY_ID=$(echo ${BRANCH_NAME//[_\/]/} | awk '{ print tolower($0) }')
-          echo "DEPLOY_ID=$DEPLOY_ID" >> $GITHUB_OUTPUT
-
-          SXPLR_VERSION=$(jq -r '.version' package.json)
-          echo "SXPLR_VERSION=$SXPLR_VERSION"
-          echo "SXPLR_VERSION=$SXPLR_VERSION" >> $GITHUB_OUTPUT
-
-
   trigger-deploy-rc-rancher:
-    if: ${{ needs.setting-vars.outputs.BRANCH_NAME == 'staging' && success() }}
+    if: ${{ needs.set-vars.outputs.BRANCH_NAME == 'staging' && success() }}
     needs:
       - build-docker-img
-      - setting-vars
+      - set-vars
     uses: ./.github/workflows/deploy-helm.yml
     with:
       DEPLOYMENT_NAME: rc
       IMAGE_TAG: staging
-      IMAGE_DIGEST: ${{ needs.build-docker-img.outputs.GIT_DIGEST }}
+      IMAGE_DIGEST: ${{ needs.set-vars.outputs.GIT_DIGEST }}
     secrets:
       KUBECONFIG: ${{ secrets.KUBECONFIG }}
 
-  cypress-staging:
+  cypress-staging-viewer:
+    
     needs:
     - trigger-deploy-rc-rancher
-    runs-on: ${{ matrix.os }}
+    - set-vars
     strategy:
       fail-fast: false
       matrix:
@@ -174,78 +174,64 @@ jobs:
         - webkit
         include:
         - viewer: ng
-          url: https://atlases.ebrains.eu/viewer-staging/go/human
+          saneurl: human
         - viewer: fsa
-          url: https://atlases.ebrains.eu/viewer-staging/go/fsaverage
+          saneurl: fsaverage
         exclude:
         - os: ubuntu-latest
           browser: webkit
         # - os: windows-latest
         #   browser: webkit
+    uses: ./.github/workflows/_screenshot.yml
+    with:
+      url: https://atlases.ebrains.eu/viewer-staging/go/${{ matrix.saneurl }}
+      screenshot-filename: ${{ needs.set-vars.outputs.GIT_DIGEST }}/viewer-preview/${{ matrix.viewer }}_${{ matrix.os }}_${{ matrix.browser }}
+    secrets:
+      client-id: ${{ secrets.EBRAINS_SIIBRA_EXPLORER_OIDC_CLIENTID}}
+      client-secret: ${{ secrets.EBRAINS_SIIBRA_EXPLORER_OIDC_CLIENTSECRET}}
 
-    steps:
-    - uses: actions/checkout@v4
-    - uses: actions/setup-node@v4
-      with:
-        node-version: 20
-    - name: Set variables
-      run: |
-        GIT_DIGEST=${{ github.sha }}
-        GIT_DIGEST=$(echo $GIT_DIGEST | head -c 6)
-
-        SCREENSHOT_URL=${{ matrix.url }}
-        SCREENSHOT_PATH=screenshot_"$GIT_DIGEST"_${{ matrix.viewer }}_${{ matrix.os }}_${{ matrix.browser }}
-
-        echo "SCREENSHOT_URL: $SCREENSHOT_URL"
-        echo "SCREENSHOT_PATH: $SCREENSHOT_PATH"
-
-        echo "SCREENSHOT_URL=$SCREENSHOT_URL" >> $GITHUB_ENV
-        echo "SCREENSHOT_PATH=$SCREENSHOT_PATH" >> $GITHUB_ENV
-
-    - name: Install dependency
-      run: npm install cypress
-
-    - name: Install optional dependency
-      if: ${{ matrix.browser == 'webkit' }}
-      run: |
-        npm install --save-dev playwright-webkit
-        echo "USE_SAFARI=1" >> $GITHUB_ENV
-
-    - name: Run Cypress
-      uses: cypress-io/github-action@v6
-      with:
-        spec: cypress/e2e/screenshot.cy.js
-        browser: ${{ matrix.browser }}
-        
-    - uses: actions/upload-artifact@v4
-      with:
-        name: ${{ env.SCREENSHOT_PATH }}
-        path: cypress/screenshots/screenshot.cy.js/*.png
-        retention-days: 5
+  cypress-staging-url:
+    needs:
+    - trigger-deploy-rc-rancher
+    - set-vars
+    strategy:
+      fail-fast: false
+      matrix:
+        saneurl:
+        - siibra_paper_2023_2A
+        - siibra_paper_2023_2B
+        - siibra_paper_2023_2C
+        - siibra_paper_2023_2D
+        - siibra_paper_2023_2E
+        - siibra_paper_2023_2F
+    uses: ./.github/workflows/_screenshot.yml
+    with:
+      url: https://atlases.ebrains.eu/viewer-staging/go/${{ matrix.saneurl }}
+      screenshot-filename: ${{ needs.set-vars.outputs.GIT_DIGEST }}/url-preview/${{ matrix.saneurl }}
 
 
   trigger-deploy-expmt-rancher:
-    if: ${{ needs.setting-vars.outputs.BRANCH_NAME == 'staging' && success() }}
+    if: ${{ needs.set-vars.outputs.BRANCH_NAME == 'staging' && success() }}
     needs:
       - build-docker-img
-      - setting-vars
+      - set-vars
     uses: ./.github/workflows/deploy-helm.yml
     with:
       DEPLOYMENT_NAME: expmt
       IMAGE_TAG: staging
-      IMAGE_DIGEST: ${{ needs.build-docker-img.outputs.GIT_DIGEST }}
+      IMAGE_DIGEST: ${{ needs.set-vars.outputs.GIT_DIGEST }}
     secrets:
       KUBECONFIG: ${{ secrets.KUBECONFIG }}
 
   trigger-deploy-master-rancher:
-    if: ${{ needs.setting-vars.outputs.BRANCH_NAME == 'master' && success() }}
+    if: ${{ needs.set-vars.outputs.BRANCH_NAME == 'master' && success() }}
     needs:
       - build-docker-img
-      - setting-vars
+      - set-vars
     uses: ./.github/workflows/deploy-helm.yml
     with:
       DEPLOYMENT_NAME: prod
-      IMAGE_TAG: ${{ needs.setting-vars.outputs.SXPLR_VERSION }}
-      IMAGE_DIGEST: ${{ needs.build-docker-img.outputs.GIT_DIGEST }}
+      IMAGE_TAG: ${{ needs.set-vars.outputs.SXPLR_VERSION }}
+      IMAGE_DIGEST: ${{ needs.set-vars.outputs.GIT_DIGEST }}
     secrets:
       KUBECONFIG: ${{ secrets.KUBECONFIG }}
diff --git a/docs/releases/v2.14.8.md b/docs/releases/v2.14.8.md
new file mode 100644
index 0000000000000000000000000000000000000000..07aaa2eb283730df04e71d6dddf0f4cc6341b211
--- /dev/null
+++ b/docs/releases/v2.14.8.md
@@ -0,0 +1,9 @@
+# v2.14.8
+
+## Bugfix
+
+- fixed issue of displaying statistical maps
+
+## Behind the Scenes
+
+- Minor tweak on e2e screenshots
diff --git a/mkdocs.yml b/mkdocs.yml
index d1561a7764aef3917555ae88ffb04c9c3ffb6e44..c4814abb791aa61296c65d01d467ca76b881cfe0 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -45,6 +45,7 @@ nav:
     - Differential gene expression analysis: "advanced/differential_gene_expression_analysis.md"
 
   - Release notes:
+    - v2.14.8: 'releases/v2.14.8.md'
     - v2.14.7: 'releases/v2.14.7.md'
     - v2.14.6: 'releases/v2.14.6.md'
     - v2.14.5: 'releases/v2.14.5.md'
diff --git a/package-lock.json b/package-lock.json
index 1f5725874bc3a1d6f01a7865f2270ff31ab25d3e..7f9aadb068dce973b5fd128ab693beb9de527ac9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "siibra-explorer",
-  "version": "2.14.6",
+  "version": "2.14.7",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "siibra-explorer",
-      "version": "2.14.6",
+      "version": "2.14.7",
       "license": "apache-2.0",
       "dependencies": {
         "@angular/animations": "^15.2.10",
@@ -23,7 +23,7 @@
         "@ngrx/effects": "^15.4.0",
         "@ngrx/store": "^15.4.0",
         "acorn": "^8.4.1",
-        "export-nehuba": "^0.1.9",
+        "export-nehuba": "^0.1.10",
         "file-loader": "^6.2.0",
         "jszip": "^3.6.0",
         "postcss": "^8.3.6",
@@ -7646,9 +7646,9 @@
       "dev": true
     },
     "node_modules/export-nehuba": {
-      "version": "0.1.9",
-      "resolved": "https://registry.npmjs.org/export-nehuba/-/export-nehuba-0.1.9.tgz",
-      "integrity": "sha512-59vm+BlB1zuD2ftDWUGUv6Jt0WGHjzB6egGGuD+JRR9oW4D7m9DNuOwheymSvlUxJ2GEOjMBe3I460T51m6W/A==",
+      "version": "0.1.10",
+      "resolved": "https://registry.npmjs.org/export-nehuba/-/export-nehuba-0.1.10.tgz",
+      "integrity": "sha512-CC4KnFtdtfbST4LKVxZO3DQ1p6jkmJHf9PPVaRyUrdD0UAM/Oh1Hita2vdnabsEPkAiJ0UMK1bLZ7KQ+5HLhHQ==",
       "dependencies": {
         "pako": "^1.0.6"
       }
diff --git a/package.json b/package.json
index 4654168aff06b996f84488df25690b5c3223feab..356214b9bfd02ea2a0733f12d2f30e1465d3b69e 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "siibra-explorer",
-  "version": "2.14.7",
+  "version": "2.14.8",
   "description": "siibra-explorer - explore brain atlases. Based on humanbrainproject/nehuba & google/neuroglancer. Built with angular",
   "scripts": {
     "lint": "eslint src --ext .ts",
@@ -52,7 +52,7 @@
     "@ngrx/effects": "^15.4.0",
     "@ngrx/store": "^15.4.0",
     "acorn": "^8.4.1",
-    "export-nehuba": "^0.1.9",
+    "export-nehuba": "^0.1.10",
     "file-loader": "^6.2.0",
     "jszip": "^3.6.0",
     "postcss": "^8.3.6",