diff --git a/.browserslistrc b/.browserslistrc
new file mode 100644
index 0000000000000000000000000000000000000000..5b7b5f11ac6e918e6e12b29427d9bea977a1778b
--- /dev/null
+++ b/.browserslistrc
@@ -0,0 +1,2 @@
+defaults
+not IE 11
\ No newline at end of file
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index fc7f269f857c208f90c296c969cd5925b22bb6a3..74dcb1c2cc10385207f09f25973c5629bcc919bf 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -32,7 +32,7 @@ jobs:
 
     strategy:
       matrix:
-        node-version: [10.x, 12.x, 14.x]
+        node-version: [12.x, 14.x, 16.x]
 
     env:
       NODE_ENV: test
diff --git a/Dockerfile b/Dockerfile
index 70b8bf7263a68fe846bc69ab285d306153e8f54f..2754e365f581600c4d7f2432e125b71c216150f7 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -24,6 +24,9 @@ ENV MATOMO_ID=${MATOMO_ID}
 COPY . /iv
 WORKDIR /iv
 
+# angular 12 echo the env var into src/environments/environment.prod.ts
+RUN node ./src/environments/parseEnv.js
+
 # When building in local, where node_module already exist, prebuilt binary may throw an error
 RUN rm -rf ./node_modules
 
diff --git a/angular.json b/angular.json
new file mode 100644
index 0000000000000000000000000000000000000000..381d8126cb58142d0ab49b4dabda5cd8ad15124d
--- /dev/null
+++ b/angular.json
@@ -0,0 +1,110 @@
+{
+  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
+  "version": 1,
+  "newProjectRoot": "projects",
+  "projects": {
+    "siibra-explorer": {
+      "projectType": "application",
+      "schematics": {
+        "@schematics/angular:component": {
+          "style": "sass"
+        },
+        "@schematics/angular:application": {
+          "strict": true
+        }
+      },
+      "root": "",
+      "sourceRoot": "src",
+      "prefix": "app",
+      "architect": {
+        "build": {
+          "builder": "@angular-devkit/build-angular:browser",
+          "options": {
+            "outputPath": "dist/aot",
+            "index": "src/index.html",
+            "main": "src/main-aot.ts",
+            "tsConfig": "tsconfig.app.json",
+            "inlineStyleLanguage": "css",
+            "assets": [
+              "src/favicon.ico",
+              "src/assets"
+            ],
+            "styles": [
+              "src/theme.scss",
+              "src/overwrite.scss",
+              "src/extra_styles.css"
+            ],
+            "scripts": [
+              "worker/worker.js"
+            ]
+          },
+          "configurations": {
+            "production": {
+              "fileReplacements": [
+                {
+                  "replace": "src/environments/environment.ts",
+                  "with": "src/environments/environment.prod.ts"
+                }
+              ],
+              "buildOptimizer": true,
+              "optimization": false,
+              "vendorChunk": true,
+              "extractLicenses": false,
+              "sourceMap": false,
+              "namedChunks": true
+            },
+            "development": {
+              "buildOptimizer": false,
+              "optimization": false,
+              "vendorChunk": true,
+              "extractLicenses": false,
+              "sourceMap": true,
+              "namedChunks": true
+            }
+          },
+          "defaultConfiguration": "production"
+        },
+        "serve": {
+          "builder": "@angular-devkit/build-angular:dev-server",
+          "configurations": {
+            "production": {
+              "browserTarget": "siibra-explorer:build:production"
+            },
+            "development": {
+              "browserTarget": "siibra-explorer:build:development"
+            }
+          },
+          "defaultConfiguration": "development",
+          "options": {
+            "port": 8080
+          }
+        },
+        "extract-i18n": {
+          "builder": "@angular-devkit/build-angular:extract-i18n",
+          "options": {
+            "browserTarget": "siibra-explorer:build"
+          }
+        },
+        "test": {
+          "builder": "@angular-devkit/build-angular:karma",
+          "options": {
+            "main": "spec/test.ts",
+            "tsConfig": "tsconfig.spec.json",
+            "karmaConfig": "spec/karma.conf.js",
+            "inlineStyleLanguage": "css",
+            "assets": [
+              "src/favicon.ico",
+              "src/assets"
+            ],
+            "styles": [
+              "src/theme.scss",
+              "src/extra_styles.css"
+            ],
+            "scripts": []
+          }
+        }
+      }
+    }
+  },
+  "defaultProject": "siibra-explorer"
+}
diff --git a/package.json b/package.json
index 658bddf3a53cce05cc9d0ea5ecf19a6264c062ad..f7c81800ef7b01baba1b518ecc42ea95337956e6 100644
--- a/package.json
+++ b/package.json
@@ -3,83 +3,62 @@
   "version": "2.4.0",
   "description": "HBP interactive atlas viewer. Integrating KG query, dataset previews & more. Based on humanbrainproject/nehuba & google/neuroglancer. Built with angular",
   "scripts": {
-    "build-aot": "PRODUCTION=true GIT_HASH=`node -e 'console.log(require(\"./package.json\").version)'` webpack --config ./webpack/webpack.aot.js && node ./third_party/matomo/processMatomo.js",
-    "dev-server-aot": "BACKEND_URL=${BACKEND_URL:-http://localhost:3000/} PRODUCTION=true GIT_HASH=`node -e 'console.log(require(\"./package.json\").version)'` webpack serve --config ./webpack/webpack.dev-aot.js --progress",
-    "test": "karma start spec/karma.conf.js",
-    "e2e": "protractor e2e/protractor.conf",
+    "build-aot": "VERSION=`node -e 'console.log(require(\"./package.json\").version)'` ng build && node ./third_party/matomo/processMatomo.js",
+    "dev-server-aot": "ng serve",
+    "e2e": "echo NYI && exit 1",
+    "wd": "webdriver-manager",
     "lint": "eslint src --ext .ts",
     "eslint": "eslint",
-    "wd": "webdriver-manager"
+    "ng": "ng",
+    "start": "ng serve",
+    "build": "ng build",
+    "watch": "ng build --watch --configuration development",
+    "test": "ng test"
   },
   "keywords": [],
   "author": "FZJ-INM1-BDA <inm1-bda@fz-juelich.de>",
   "license": "apache-2.0",
   "devDependencies": {
-    "@angular/animations": "^12.0.0",
-    "@angular/cdk": "^12.0.0",
-    "@angular/common": "^12.0.0",
-    "@angular/compiler": "^12.0.0",
-    "@angular/compiler-cli": "^12.1.4",
-    "@angular/core": "^12.0.0",
-    "@angular/elements": "^12.0.0",
-    "@angular/forms": "^12.0.0",
-    "@angular/language-service": "^12.0.0",
-    "@angular/material": "^12.0.0",
-    "@angular/platform-browser": "^12.0.0",
-    "@angular/platform-browser-dynamic": "^12.0.0",
-    "@angular/router": "^12.0.0",
-    "@ngtools/webpack": "^12.2.1",
-    "@types/jasmine": "^3.5.0",
-    "@types/webpack-env": "^1.13.6",
+    "@angular-devkit/build-angular": "~12.2.1",
+    "@angular/cli": "~12.2.1",
+    "@angular/compiler-cli": "~12.2.0",
+    "@types/jasmine": "~3.8.0",
+    "@types/node": "^12.11.1",
     "@typescript-eslint/eslint-plugin": "^4.29.2",
     "@typescript-eslint/parser": "^4.29.2",
-    "angular2-template-loader": "^0.6.2",
-    "browserstack-local": "^1.4.5",
-    "codelyzer": "^5.0.1",
-    "core-js": "^3.0.1",
-    "css-loader": "^3.2.0",
     "eslint": "^7.32.0",
-    "eslint-plugin-html": "^6.0.0",
-    "file-loader": "^1.1.11",
-    "glob": "^7.1.6",
-    "hammerjs": "^2.0.8",
-    "html-webpack-plugin": "^5.3.2",
-    "jasmine": "^3.1.0",
-    "jasmine-core": "^3.5.0",
-    "jasmine-marbles": "^0.6.0",
-    "jasmine-spec-reporter": "^4.2.1",
-    "json-loader": "^0.5.7",
-    "karma": "^6.3.4",
-    "karma-chrome-launcher": "^3.1.0",
-    "karma-cli": "^2.0.0",
-    "karma-jasmine": "^4.0.1",
-    "karma-typescript": "^5.5.1",
-    "karma-webpack": "^5.0.0",
-    "mini-css-extract-plugin": "^0.8.0",
-    "protractor": "^7.0.0",
-    "raw-loader": "^0.5.1",
-    "reflect-metadata": "^0.1.12",
-    "rxjs": "^6.6.0",
-    "sass": "^1.38.0",
-    "sass-loader": "^12.1.0",
-    "showdown": "^1.9.1",
-    "terser-webpack-plugin": "^3.0.1",
-    "ts-loader": "^4.3.0",
-    "ts-node": "^8.1.0",
-    "typescript": "^4.3.5",
-    "webpack": "^5.50.0",
-    "webpack-cli": "^4.8.0",
-    "webpack-closure-compiler": "^2.1.6",
-    "webpack-dev-server": "^3.11.2",
-    "webpack-merge": "^4.1.2"
+    "jasmine-core": "~3.8.0",
+    "jasmine-marbles": "^0.8.3",
+    "karma": "~6.3.0",
+    "karma-chrome-launcher": "~3.1.0",
+    "karma-coverage": "~2.0.3",
+    "karma-jasmine": "~4.0.0",
+    "karma-jasmine-html-reporter": "~1.7.0",
+    "typescript": "~4.3.5"
   },
   "dependencies": {
+    "@angular/animations": "~12.2.0",
+    "@angular/cdk": "^12.2.2",
+    "@angular/common": "~12.2.0",
+    "@angular/compiler": "~12.2.0",
+    "@angular/core": "~12.2.0",
+    "@angular/forms": "~12.2.0",
+    "@angular/material": "^12.2.2",
+    "@angular/platform-browser": "~12.2.0",
+    "@angular/platform-browser-dynamic": "~12.2.0",
+    "@angular/router": "~12.2.0",
     "@ngrx/effects": "^12.0.0",
     "@ngrx/store": "^12.0.0",
-    "@types/node": "12.12.39",
+    "acorn": "^8.4.1",
     "export-nehuba": "0.0.12",
+    "file-loader": "^6.2.0",
     "hbp-connectivity-component": "^0.4.9",
     "jszip": "^3.6.0",
-    "zone.js": "^0.11.4"
+    "postcss": "^8.3.6",
+    "raw-loader": "^4.0.2",
+    "rxjs": "~6.6.0",
+    "showdown": "^1.9.1",
+    "tslib": "^2.3.0",
+    "zone.js": "~0.11.4"
   }
 }
diff --git a/spec/karma.conf.js b/spec/karma.conf.js
index b2559dbe9d5bbcd6c6245cad2b283c70aeeece0a..c402477ed3e181da022b6cc7575361fe49874cf9 100644
--- a/spec/karma.conf.js
+++ b/spec/karma.conf.js
@@ -1,123 +1,44 @@
-// Karma configuration
-// Generated on Mon Aug 06 2018 12:37:42 GMT+0200 (CEST)
+// Karma configuration file, see link for more information
+// https://karma-runner.github.io/1.0/config/configuration-file.html
 
-const merge = require('webpack-merge')
-const webpackTest = require('../webpack/webpack.test')
-const webpackConfig = require('../webpack/webpack.aot-common')
-const { AngularWebpackPlugin } = require('@ngtools/webpack')
-const fullWebpack = merge(webpackTest, webpackConfig, {
-  plugins: [
-    new AngularWebpackPlugin({
-      tsConfigPath: 'tsconfig.spec.json',
-      // entryModule: 'src/main.module#MainModule',
-      // directTemplateLoading: true
-    }),
-  ]
-})
-
-const singleRun = process.env.NODE_ENV === 'test'
-const browsers = process.env.NODE_ENV === 'test'
-  ? ['ChromeHeadless']
-  : ['Chrome']
-
-module.exports = function(config) {
+module.exports = function (config) {
   config.set({
-
-    // base path that will be used to resolve all patterns (eg. files, exclude)
     basePath: '..',
-
-
-    // frameworks to use
-    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
-    frameworks: ['jasmine'],
-
+    frameworks: ['jasmine', '@angular-devkit/build-angular'],
+    plugins: [
+      require('karma-jasmine'),
+      require('karma-chrome-launcher'),
+      require('karma-jasmine-html-reporter'),
+      require('karma-coverage'),
+      require('@angular-devkit/build-angular/plugins/karma')
+    ],
     client: {
-      jasmine: {},
-      clearContext: false
+      jasmine: {
+        // you can add configuration options for Jasmine here
+        // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
+        // for example, you can disable the random execution with `random: false`
+        // or set a specific seed with `seed: 4321`
+      },
+      clearContext: false // leave Jasmine Spec Runner output visible in browser
     },
     jasmineHtmlReporter: {
       suppressAll: true // removes the duplicated traces
     },
-
-    // list of files / patterns to load in the browser
-    files: [
-      './spec/test.ts',
-      {
-        pattern: 'node_modules/bootstrap/dist/css/bootstrap.min.css',
-        served: true,
-        included: true
-      },
-      {
-        pattern: 'node_modules/@angular/material/prebuilt-themes/indigo-pink.css',
-        served: true,
-        included: true
-      },
-      {
-        pattern: './worker/worker.js',
-        served: true,
-        included: false
-      },
-      {
-        pattern: './src/res/css/extra_styles.css',
-        served: true,
-        included: true
-      }
-    ],
-
-
-    // list of files / patterns to exclude
-    exclude: [
-    ],
-
-
-    // preprocess matching files before serving them to the browser
-    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
-    preprocessors: {
-      './spec/test.ts' : ['webpack']
+    coverageReporter: {
+      dir: require('path').join(__dirname, './coverage/siibra-explorer'),
+      subdir: '.',
+      reporters: [
+        { type: 'html' },
+        { type: 'text-summary' }
+      ]
     },
-
-    webpack : fullWebpack,
-
-    // test results reporter to use
-    // possible values: 'dots', 'progress'
-    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
-    reporters: ['progress'],
-
-    restartOnFileChange: true,
-
-
-    // web server port
+    reporters: ['progress', 'kjhtml'],
     port: 9876,
-
-
-    // enable / disable colors in the output (reporters and logs)
     colors: true,
-
-
-    // level of logging
-    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
     logLevel: config.LOG_INFO,
-
-
-    // enable / disable watching file and executing tests whenever any file changes
     autoWatch: true,
-
-
-    // start these browsers
-    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
-    browsers,
-
-
-    // Continuous Integration mode
-    // if true, Karma captures browsers, runs the tests and exits
-    singleRun,
-
-    // Concurrency level
-    // how many browser should be started simultaneous
-    concurrency: Infinity,
-
-    mime : {
-      'text/x-typescript' : ['ts']
-    }
-  })
-}
+    browsers: ['Chrome'],
+    singleRun: false,
+    restartOnFileChange: true
+  });
+};
diff --git a/spec/test.ts b/spec/test.ts
index 79e84c02ff647ce35089fd404ba0593f3afd89c3..80d1734967ea74cc1e958106ad307ca4cc939f0f 100644
--- a/spec/test.ts
+++ b/spec/test.ts
@@ -17,10 +17,13 @@ getTestBed().initTestEnvironment(
   { teardown: { destroyAfterEach: true }},
 )
 
+declare const require: any
+
 const testContext = require.context('../src', true, /\.spec\.ts$/)
 testContext.keys().map(testContext)
 
 const workerCtx = require.context('../worker', true, /\.spec\.js$/)
 workerCtx.keys().map(workerCtx)
 
+// eslint-disable-next-line @typescript-eslint/no-var-requires
 require('../common/util.spec.js')
diff --git a/src/res/images/1-100.png b/src/assets/images/1-100.png
similarity index 100%
rename from src/res/images/1-100.png
rename to src/assets/images/1-100.png
diff --git a/src/res/images/1-200.png b/src/assets/images/1-200.png
similarity index 100%
rename from src/res/images/1-200.png
rename to src/assets/images/1-200.png
diff --git a/src/res/images/1-300.png b/src/assets/images/1-300.png
similarity index 100%
rename from src/res/images/1-300.png
rename to src/assets/images/1-300.png
diff --git a/src/res/images/1-400.png b/src/assets/images/1-400.png
similarity index 100%
rename from src/res/images/1-400.png
rename to src/assets/images/1-400.png
diff --git a/src/res/images/1.png b/src/assets/images/1.png
similarity index 100%
rename from src/res/images/1.png
rename to src/assets/images/1.png
diff --git a/src/res/images/2-100.png b/src/assets/images/2-100.png
similarity index 100%
rename from src/res/images/2-100.png
rename to src/assets/images/2-100.png
diff --git a/src/res/images/2-200.png b/src/assets/images/2-200.png
similarity index 100%
rename from src/res/images/2-200.png
rename to src/assets/images/2-200.png
diff --git a/src/res/images/2-300.png b/src/assets/images/2-300.png
similarity index 100%
rename from src/res/images/2-300.png
rename to src/assets/images/2-300.png
diff --git a/src/res/images/2-400.png b/src/assets/images/2-400.png
similarity index 100%
rename from src/res/images/2-400.png
rename to src/assets/images/2-400.png
diff --git a/src/res/images/2.png b/src/assets/images/2.png
similarity index 100%
rename from src/res/images/2.png
rename to src/assets/images/2.png
diff --git a/src/res/images/3-100.png b/src/assets/images/3-100.png
similarity index 100%
rename from src/res/images/3-100.png
rename to src/assets/images/3-100.png
diff --git a/src/res/images/3-200.png b/src/assets/images/3-200.png
similarity index 100%
rename from src/res/images/3-200.png
rename to src/assets/images/3-200.png
diff --git a/src/res/images/3-300.png b/src/assets/images/3-300.png
similarity index 100%
rename from src/res/images/3-300.png
rename to src/assets/images/3-300.png
diff --git a/src/res/images/3-400.png b/src/assets/images/3-400.png
similarity index 100%
rename from src/res/images/3-400.png
rename to src/assets/images/3-400.png
diff --git a/src/res/images/3.png b/src/assets/images/3.png
similarity index 100%
rename from src/res/images/3.png
rename to src/assets/images/3.png
diff --git a/src/res/images/AllenMouseCommonCoordinateFrameworkv32015-100.png b/src/assets/images/AllenMouseCommonCoordinateFrameworkv32015-100.png
similarity index 100%
rename from src/res/images/AllenMouseCommonCoordinateFrameworkv32015-100.png
rename to src/assets/images/AllenMouseCommonCoordinateFrameworkv32015-100.png
diff --git a/src/res/images/AllenMouseCommonCoordinateFrameworkv32015-200.png b/src/assets/images/AllenMouseCommonCoordinateFrameworkv32015-200.png
similarity index 100%
rename from src/res/images/AllenMouseCommonCoordinateFrameworkv32015-200.png
rename to src/assets/images/AllenMouseCommonCoordinateFrameworkv32015-200.png
diff --git a/src/res/images/AllenMouseCommonCoordinateFrameworkv32015-300.png b/src/assets/images/AllenMouseCommonCoordinateFrameworkv32015-300.png
similarity index 100%
rename from src/res/images/AllenMouseCommonCoordinateFrameworkv32015-300.png
rename to src/assets/images/AllenMouseCommonCoordinateFrameworkv32015-300.png
diff --git a/src/res/images/AllenMouseCommonCoordinateFrameworkv32015-400.png b/src/assets/images/AllenMouseCommonCoordinateFrameworkv32015-400.png
similarity index 100%
rename from src/res/images/AllenMouseCommonCoordinateFrameworkv32015-400.png
rename to src/assets/images/AllenMouseCommonCoordinateFrameworkv32015-400.png
diff --git a/src/res/images/AllenMouseCommonCoordinateFrameworkv32015.png b/src/assets/images/AllenMouseCommonCoordinateFrameworkv32015.png
similarity index 100%
rename from src/res/images/AllenMouseCommonCoordinateFrameworkv32015.png
rename to src/assets/images/AllenMouseCommonCoordinateFrameworkv32015.png
diff --git a/src/res/images/BigBrainHistology-100.png b/src/assets/images/BigBrainHistology-100.png
similarity index 100%
rename from src/res/images/BigBrainHistology-100.png
rename to src/assets/images/BigBrainHistology-100.png
diff --git a/src/res/images/BigBrainHistology-200.png b/src/assets/images/BigBrainHistology-200.png
similarity index 100%
rename from src/res/images/BigBrainHistology-200.png
rename to src/assets/images/BigBrainHistology-200.png
diff --git a/src/res/images/BigBrainHistology-300.png b/src/assets/images/BigBrainHistology-300.png
similarity index 100%
rename from src/res/images/BigBrainHistology-300.png
rename to src/assets/images/BigBrainHistology-300.png
diff --git a/src/res/images/BigBrainHistology-400.png b/src/assets/images/BigBrainHistology-400.png
similarity index 100%
rename from src/res/images/BigBrainHistology-400.png
rename to src/assets/images/BigBrainHistology-400.png
diff --git a/src/res/images/BigBrainHistology.png b/src/assets/images/BigBrainHistology.png
similarity index 100%
rename from src/res/images/BigBrainHistology.png
rename to src/assets/images/BigBrainHistology.png
diff --git a/src/res/images/ICBM2009cNonlinearAsymmetric-100.png b/src/assets/images/ICBM2009cNonlinearAsymmetric-100.png
similarity index 100%
rename from src/res/images/ICBM2009cNonlinearAsymmetric-100.png
rename to src/assets/images/ICBM2009cNonlinearAsymmetric-100.png
diff --git a/src/res/images/ICBM2009cNonlinearAsymmetric-200.png b/src/assets/images/ICBM2009cNonlinearAsymmetric-200.png
similarity index 100%
rename from src/res/images/ICBM2009cNonlinearAsymmetric-200.png
rename to src/assets/images/ICBM2009cNonlinearAsymmetric-200.png
diff --git a/src/res/images/ICBM2009cNonlinearAsymmetric-300.png b/src/assets/images/ICBM2009cNonlinearAsymmetric-300.png
similarity index 100%
rename from src/res/images/ICBM2009cNonlinearAsymmetric-300.png
rename to src/assets/images/ICBM2009cNonlinearAsymmetric-300.png
diff --git a/src/res/images/ICBM2009cNonlinearAsymmetric-400.png b/src/assets/images/ICBM2009cNonlinearAsymmetric-400.png
similarity index 100%
rename from src/res/images/ICBM2009cNonlinearAsymmetric-400.png
rename to src/assets/images/ICBM2009cNonlinearAsymmetric-400.png
diff --git a/src/res/images/ICBM2009cNonlinearAsymmetric.png b/src/assets/images/ICBM2009cNonlinearAsymmetric.png
similarity index 100%
rename from src/res/images/ICBM2009cNonlinearAsymmetric.png
rename to src/assets/images/ICBM2009cNonlinearAsymmetric.png
diff --git a/src/res/images/MNI152ICBM2009cNonlinearAsymmetric-100.png b/src/assets/images/MNI152ICBM2009cNonlinearAsymmetric-100.png
similarity index 100%
rename from src/res/images/MNI152ICBM2009cNonlinearAsymmetric-100.png
rename to src/assets/images/MNI152ICBM2009cNonlinearAsymmetric-100.png
diff --git a/src/res/images/MNI152ICBM2009cNonlinearAsymmetric-200.png b/src/assets/images/MNI152ICBM2009cNonlinearAsymmetric-200.png
similarity index 100%
rename from src/res/images/MNI152ICBM2009cNonlinearAsymmetric-200.png
rename to src/assets/images/MNI152ICBM2009cNonlinearAsymmetric-200.png
diff --git a/src/res/images/MNI152ICBM2009cNonlinearAsymmetric-300.png b/src/assets/images/MNI152ICBM2009cNonlinearAsymmetric-300.png
similarity index 100%
rename from src/res/images/MNI152ICBM2009cNonlinearAsymmetric-300.png
rename to src/assets/images/MNI152ICBM2009cNonlinearAsymmetric-300.png
diff --git a/src/res/images/MNI152ICBM2009cNonlinearAsymmetric-400.png b/src/assets/images/MNI152ICBM2009cNonlinearAsymmetric-400.png
similarity index 100%
rename from src/res/images/MNI152ICBM2009cNonlinearAsymmetric-400.png
rename to src/assets/images/MNI152ICBM2009cNonlinearAsymmetric-400.png
diff --git a/src/res/images/MNI152ICBM2009cNonlinearAsymmetric.png b/src/assets/images/MNI152ICBM2009cNonlinearAsymmetric.png
similarity index 100%
rename from src/res/images/MNI152ICBM2009cNonlinearAsymmetric.png
rename to src/assets/images/MNI152ICBM2009cNonlinearAsymmetric.png
diff --git a/src/res/images/MNIColin27-100.png b/src/assets/images/MNIColin27-100.png
similarity index 100%
rename from src/res/images/MNIColin27-100.png
rename to src/assets/images/MNIColin27-100.png
diff --git a/src/res/images/MNIColin27-200.png b/src/assets/images/MNIColin27-200.png
similarity index 100%
rename from src/res/images/MNIColin27-200.png
rename to src/assets/images/MNIColin27-200.png
diff --git a/src/res/images/MNIColin27-300.png b/src/assets/images/MNIColin27-300.png
similarity index 100%
rename from src/res/images/MNIColin27-300.png
rename to src/assets/images/MNIColin27-300.png
diff --git a/src/res/images/MNIColin27-400.png b/src/assets/images/MNIColin27-400.png
similarity index 100%
rename from src/res/images/MNIColin27-400.png
rename to src/assets/images/MNIColin27-400.png
diff --git a/src/res/images/MNIColin27.png b/src/assets/images/MNIColin27.png
similarity index 100%
rename from src/res/images/MNIColin27.png
rename to src/assets/images/MNIColin27.png
diff --git a/src/res/images/WaxholmSpaceratbrainMRIDTI-100.png b/src/assets/images/WaxholmSpaceratbrainMRIDTI-100.png
similarity index 100%
rename from src/res/images/WaxholmSpaceratbrainMRIDTI-100.png
rename to src/assets/images/WaxholmSpaceratbrainMRIDTI-100.png
diff --git a/src/res/images/WaxholmSpaceratbrainMRIDTI-200.png b/src/assets/images/WaxholmSpaceratbrainMRIDTI-200.png
similarity index 100%
rename from src/res/images/WaxholmSpaceratbrainMRIDTI-200.png
rename to src/assets/images/WaxholmSpaceratbrainMRIDTI-200.png
diff --git a/src/res/images/WaxholmSpaceratbrainMRIDTI-300.png b/src/assets/images/WaxholmSpaceratbrainMRIDTI-300.png
similarity index 100%
rename from src/res/images/WaxholmSpaceratbrainMRIDTI-300.png
rename to src/assets/images/WaxholmSpaceratbrainMRIDTI-300.png
diff --git a/src/res/images/WaxholmSpaceratbrainMRIDTI-400.png b/src/assets/images/WaxholmSpaceratbrainMRIDTI-400.png
similarity index 100%
rename from src/res/images/WaxholmSpaceratbrainMRIDTI-400.png
rename to src/assets/images/WaxholmSpaceratbrainMRIDTI-400.png
diff --git a/src/res/images/WaxholmSpaceratbrainMRIDTI.png b/src/assets/images/WaxholmSpaceratbrainMRIDTI.png
similarity index 100%
rename from src/res/images/WaxholmSpaceratbrainMRIDTI.png
rename to src/assets/images/WaxholmSpaceratbrainMRIDTI.png
diff --git a/src/res/images/atlas-selection/allen-mouse-2015.png b/src/assets/images/atlas-selection/allen-mouse-2015.png
similarity index 100%
rename from src/res/images/atlas-selection/allen-mouse-2015.png
rename to src/assets/images/atlas-selection/allen-mouse-2015.png
diff --git a/src/res/images/atlas-selection/allen-mouse-2017.png b/src/assets/images/atlas-selection/allen-mouse-2017.png
similarity index 100%
rename from src/res/images/atlas-selection/allen-mouse-2017.png
rename to src/assets/images/atlas-selection/allen-mouse-2017.png
diff --git a/src/res/images/atlas-selection/allen-mouse.png b/src/assets/images/atlas-selection/allen-mouse.png
similarity index 100%
rename from src/res/images/atlas-selection/allen-mouse.png
rename to src/assets/images/atlas-selection/allen-mouse.png
diff --git a/src/res/images/atlas-selection/bigbrain.png b/src/assets/images/atlas-selection/bigbrain.png
similarity index 100%
rename from src/res/images/atlas-selection/bigbrain.png
rename to src/assets/images/atlas-selection/bigbrain.png
diff --git a/src/res/images/atlas-selection/colin27.png b/src/assets/images/atlas-selection/colin27.png
similarity index 100%
rename from src/res/images/atlas-selection/colin27.png
rename to src/assets/images/atlas-selection/colin27.png
diff --git a/src/res/images/atlas-selection/cortical-layers.png b/src/assets/images/atlas-selection/cortical-layers.png
similarity index 100%
rename from src/res/images/atlas-selection/cortical-layers.png
rename to src/assets/images/atlas-selection/cortical-layers.png
diff --git a/src/res/images/atlas-selection/cytoarchitectonic-maps.png b/src/assets/images/atlas-selection/cytoarchitectonic-maps.png
similarity index 100%
rename from src/res/images/atlas-selection/cytoarchitectonic-maps.png
rename to src/assets/images/atlas-selection/cytoarchitectonic-maps.png
diff --git a/src/res/images/atlas-selection/difumo-1024.png b/src/assets/images/atlas-selection/difumo-1024.png
similarity index 100%
rename from src/res/images/atlas-selection/difumo-1024.png
rename to src/assets/images/atlas-selection/difumo-1024.png
diff --git a/src/res/images/atlas-selection/difumo-128.png b/src/assets/images/atlas-selection/difumo-128.png
similarity index 100%
rename from src/res/images/atlas-selection/difumo-128.png
rename to src/assets/images/atlas-selection/difumo-128.png
diff --git a/src/res/images/atlas-selection/difumo-256.png b/src/assets/images/atlas-selection/difumo-256.png
similarity index 100%
rename from src/res/images/atlas-selection/difumo-256.png
rename to src/assets/images/atlas-selection/difumo-256.png
diff --git a/src/res/images/atlas-selection/difumo-512.png b/src/assets/images/atlas-selection/difumo-512.png
similarity index 100%
rename from src/res/images/atlas-selection/difumo-512.png
rename to src/assets/images/atlas-selection/difumo-512.png
diff --git a/src/res/images/atlas-selection/difumo-64.png b/src/assets/images/atlas-selection/difumo-64.png
similarity index 100%
rename from src/res/images/atlas-selection/difumo-64.png
rename to src/assets/images/atlas-selection/difumo-64.png
diff --git a/src/res/images/atlas-selection/firbe-long.png b/src/assets/images/atlas-selection/firbe-long.png
similarity index 100%
rename from src/res/images/atlas-selection/firbe-long.png
rename to src/assets/images/atlas-selection/firbe-long.png
diff --git a/src/res/images/atlas-selection/firbe-short.png b/src/assets/images/atlas-selection/firbe-short.png
similarity index 100%
rename from src/res/images/atlas-selection/firbe-short.png
rename to src/assets/images/atlas-selection/firbe-short.png
diff --git a/src/res/images/atlas-selection/freesurfer.png b/src/assets/images/atlas-selection/freesurfer.png
similarity index 100%
rename from src/res/images/atlas-selection/freesurfer.png
rename to src/assets/images/atlas-selection/freesurfer.png
diff --git a/src/res/images/atlas-selection/grey-white-matter.png b/src/assets/images/atlas-selection/grey-white-matter.png
similarity index 100%
rename from src/res/images/atlas-selection/grey-white-matter.png
rename to src/assets/images/atlas-selection/grey-white-matter.png
diff --git a/src/res/images/atlas-selection/icbm2009c.png b/src/assets/images/atlas-selection/icbm2009c.png
similarity index 100%
rename from src/res/images/atlas-selection/icbm2009c.png
rename to src/assets/images/atlas-selection/icbm2009c.png
diff --git a/src/res/images/atlas-selection/short-bundle-hcp.png b/src/assets/images/atlas-selection/short-bundle-hcp.png
similarity index 100%
rename from src/res/images/atlas-selection/short-bundle-hcp.png
rename to src/assets/images/atlas-selection/short-bundle-hcp.png
diff --git a/src/res/images/atlas-selection/waxholm-v1.png b/src/assets/images/atlas-selection/waxholm-v1.png
similarity index 100%
rename from src/res/images/atlas-selection/waxholm-v1.png
rename to src/assets/images/atlas-selection/waxholm-v1.png
diff --git a/src/res/images/atlas-selection/waxholm-v2.png b/src/assets/images/atlas-selection/waxholm-v2.png
similarity index 100%
rename from src/res/images/atlas-selection/waxholm-v2.png
rename to src/assets/images/atlas-selection/waxholm-v2.png
diff --git a/src/res/images/atlas-selection/waxholm-v3.png b/src/assets/images/atlas-selection/waxholm-v3.png
similarity index 100%
rename from src/res/images/atlas-selection/waxholm-v3.png
rename to src/assets/images/atlas-selection/waxholm-v3.png
diff --git a/src/res/images/atlas-selection/waxholm.png b/src/assets/images/atlas-selection/waxholm.png
similarity index 100%
rename from src/res/images/atlas-selection/waxholm.png
rename to src/assets/images/atlas-selection/waxholm.png
diff --git a/src/res/images/big-brain.png b/src/assets/images/big-brain.png
similarity index 100%
rename from src/res/images/big-brain.png
rename to src/assets/images/big-brain.png
diff --git a/src/atlasComponents/connectivity/connectivityBrowser/connectivityBrowser.component.ts b/src/atlasComponents/connectivity/connectivityBrowser/connectivityBrowser.component.ts
index feb4d5d6c317fe8782d411984472e95e5fef37df..19aff2563fb150e456ecf41ff7828d7de17e9795 100644
--- a/src/atlasComponents/connectivity/connectivityBrowser/connectivityBrowser.component.ts
+++ b/src/atlasComponents/connectivity/connectivityBrowser/connectivityBrowser.component.ts
@@ -150,8 +150,8 @@ export class ConnectivityBrowserComponent implements OnInit, AfterViewInit, OnDe
 
     public noDataReceived = false
 
-    @ViewChild('connectivityComponent', {read: ElementRef}) public connectivityComponentElement: ElementRef<HTMLHbpConnectivityMatrixRowElement>
-    @ViewChild('fullConnectivityGrid') public fullConnectivityGridElement: ElementRef<HTMLFullConnectivityGridElement>
+    @ViewChild('connectivityComponent', {read: ElementRef}) public connectivityComponentElement: ElementRef<any>
+    @ViewChild('fullConnectivityGrid') public fullConnectivityGridElement: ElementRef<any>
 
     constructor(
         private store$: Store<any>,
@@ -281,8 +281,8 @@ export class ConnectivityBrowserComponent implements OnInit, AfterViewInit, OnDe
           .subscribe((e: CustomEvent) => {
             if (e.detail.name === 'export csv') {
               // ToDo Fix in future to use component
-              const a = document.querySelector('hbp-connectivity-matrix-row')
-              a.downloadCSV()
+              const a = document.querySelector('hbp-connectivity-matrix-row');
+              (a as any).downloadCSV()
             }
           }),
         fromEvent(this.connectivityComponentElement?.nativeElement, 'connectedRegionClicked', {capture: true})
@@ -432,8 +432,8 @@ export class ConnectivityBrowserComponent implements OnInit, AfterViewInit, OnDe
     }
 
     exportConnectivityProfile() {
-      const a = document.querySelector('hbp-connectivity-matrix-row')
-      a.downloadCSV()
+      const a = document.querySelector('hbp-connectivity-matrix-row');
+      (a as any).downloadCSV()
     }
 
     public exportFullConnectivity() {
diff --git a/src/atlasComponents/parcellationRegion/region.base.spec.ts b/src/atlasComponents/parcellationRegion/region.base.spec.ts
index c9ee2964842a9b2b61c37d2e257461157f0bde7e..ca0c1af0c60e78ba5802329c79a1a88588e92c17 100644
--- a/src/atlasComponents/parcellationRegion/region.base.spec.ts
+++ b/src/atlasComponents/parcellationRegion/region.base.spec.ts
@@ -2,7 +2,9 @@ import { TestBed } from '@angular/core/testing'
 import { MockStore, provideMockStore } from '@ngrx/store/testing'
 import { viewerStateSelectTemplateWithId } from 'src/services/state/viewerState/actions'
 import { RegionBase, regionInOtherTemplateSelector, getRegionParentParcRefSpace } from './region.base'
-const  util = require('common/util')
+
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const util = require('common/util')
 
 /**
  * regions
diff --git a/src/atlasComponents/regionalFeatures/bsFeatures/receptor/ar/autoradiograph.component.ts b/src/atlasComponents/regionalFeatures/bsFeatures/receptor/ar/autoradiograph.component.ts
index efd93a3b9e0441b325afad42b041f48b1a6b7d24..366784043a45c170fdb70f1234a310548a23d728 100644
--- a/src/atlasComponents/regionalFeatures/bsFeatures/receptor/ar/autoradiograph.component.ts
+++ b/src/atlasComponents/regionalFeatures/bsFeatures/receptor/ar/autoradiograph.component.ts
@@ -2,6 +2,7 @@ import { Component, Input, OnChanges } from "@angular/core";
 import { BsFeatureReceptorBase } from "../base";
 import { CONST } from 'common/constants'
 import { TBSDetail } from "../type";
+import { environment } from 'src/environments/environment'
 
 const { RECEPTOR_AR_CAPTION } = CONST
 
@@ -21,7 +22,7 @@ export function isAr(detail: TBSDetail, label: string){
 export class BsFeatureReceptorAR extends BsFeatureReceptorBase implements OnChanges {
 
   public RECEPTOR_AR_CAPTION = RECEPTOR_AR_CAPTION
-  private DS_PREVIEW_URL = DATASET_PREVIEW_URL
+  private DS_PREVIEW_URL = environment.DATASET_PREVIEW_URL
 
   @Input()
   bsLabel: string
diff --git a/src/atlasComponents/regionalFeatures/singleFeatures/receptorDensity/receptorDensity/receptorDensity.component.ts b/src/atlasComponents/regionalFeatures/singleFeatures/receptorDensity/receptorDensity/receptorDensity.component.ts
index a9b5f3652f04a53961f3a334f7a951ba36fa5407..52cda125d7aa02bfaa062a121b62b94d365fa612 100644
--- a/src/atlasComponents/regionalFeatures/singleFeatures/receptorDensity/receptorDensity/receptorDensity.component.ts
+++ b/src/atlasComponents/regionalFeatures/singleFeatures/receptorDensity/receptorDensity/receptorDensity.component.ts
@@ -5,6 +5,7 @@ import { PureContantService } from "src/util";
 import { RegionFeatureBase } from "../../base/regionFeature.base";
 import { ISingleFeature } from "../../interfaces";
 import { CONST } from 'common/constants'
+import { environment } from 'src/environments/environment'
 
 const {
   RECEPTOR_FP_CAPTION,
@@ -24,7 +25,7 @@ export class ReceptorDensityFeatureCmp extends RegionFeatureBase implements ISin
   public RECEPTOR_PR_CAPTION = RECEPTOR_PR_CAPTION
   public RECEPTOR_AR_CAPTION = RECEPTOR_AR_CAPTION
 
-  public DS_PREVIEW_URL = DATASET_PREVIEW_URL
+  public DS_PREVIEW_URL = environment.DATASET_PREVIEW_URL
   viewChanged: EventEmitter<null> = new EventEmitter()
 
   private WEB_COMPONENT_MOUSEOVER_EVENT_NAME = 'kg-ds-prv-regional-feature-mouseover'
diff --git a/src/atlasComponents/regionalFeatures/singleFeatures/receptorDensity/receptorDensity/receptorDensity.style.css b/src/atlasComponents/regionalFeatures/singleFeatures/receptorDensity/receptorDensity/receptorDensity.style.css
index 66b93261b6b81769c5bf5e84d0404d91822fc86e..0437be86256eb2a7039e72e33e80de0a92ea62ef 100644
--- a/src/atlasComponents/regionalFeatures/singleFeatures/receptorDensity/receptorDensity/receptorDensity.style.css
+++ b/src/atlasComponents/regionalFeatures/singleFeatures/receptorDensity/receptorDensity/receptorDensity.style.css
@@ -9,8 +9,3 @@ kg-ds-prv-regional-feature-view
   display: block;
   min-height: 20em;
 }
-
-kg-ds-prv-regional-feature-view >>> div
-{
-  min-height: 20em;
-}
diff --git a/src/atlasComponents/uiSelectors/atlasLayerSelector/atlasLayerSelector.component.ts b/src/atlasComponents/uiSelectors/atlasLayerSelector/atlasLayerSelector.component.ts
index dba91ed89252484d6d40c8f14e0baf30241d4f1c..5b8a91113356f84954f2620340cef35d11231817 100644
--- a/src/atlasComponents/uiSelectors/atlasLayerSelector/atlasLayerSelector.component.ts
+++ b/src/atlasComponents/uiSelectors/atlasLayerSelector/atlasLayerSelector.component.ts
@@ -257,28 +257,6 @@ export class AtlasLayerSelector implements OnInit {
     }
 }
 
-import "src/res/images/atlas-selection/bigbrain.png"
-import 'src/res/images/atlas-selection/icbm2009c.png'
-import 'src/res/images/atlas-selection/colin27.png'
-import 'src/res/images/atlas-selection/cytoarchitectonic-maps.png'
-import 'src/res/images/atlas-selection/cortical-layers.png'
-import 'src/res/images/atlas-selection/grey-white-matter.png'
-import 'src/res/images/atlas-selection/firbe-long.png'
-import 'src/res/images/atlas-selection/firbe-short.png'
-import 'src/res/images/atlas-selection/difumo-64.png'
-import 'src/res/images/atlas-selection/difumo-128.png'
-import 'src/res/images/atlas-selection/difumo-256.png'
-import 'src/res/images/atlas-selection/difumo-512.png'
-import 'src/res/images/atlas-selection/difumo-1024.png'
-import 'src/res/images/atlas-selection/allen-mouse.png'
-import 'src/res/images/atlas-selection/allen-mouse-2017.png'
-import 'src/res/images/atlas-selection/allen-mouse-2015.png'
-import 'src/res/images/atlas-selection/waxholm.png'
-import 'src/res/images/atlas-selection/waxholm-v3.png'
-import 'src/res/images/atlas-selection/waxholm-v2.png'
-import 'src/res/images/atlas-selection/waxholm-v1.png'
-import 'src/res/images/atlas-selection/short-bundle-hcp.png'
-import 'src/res/images/atlas-selection/freesurfer.png'
 import { OVERWRITE_SHOW_DATASET_DIALOG_TOKEN } from "src/util/interfaces";
 
 const previewImgMap = new Map([
@@ -329,6 +307,6 @@ export class GetPreviewUrlPipe implements PipeTransform{
     if (!filename) {
       console.log(tile)
     }
-    return filename && `res/image/${filename}`
+    return filename && `assets/images//atlas-selection/${filename}`
   }
 }
\ No newline at end of file
diff --git a/src/atlasComponents/userAnnotations/tools/poly/poly.style.css b/src/atlasComponents/userAnnotations/tools/poly/poly.style.css
index 35465c66c929b4586f68c6121822f345cdb8ea21..06677c5fea38a957e76e0f0e816aa9bd43bc3328 100644
--- a/src/atlasComponents/userAnnotations/tools/poly/poly.style.css
+++ b/src/atlasComponents/userAnnotations/tools/poly/poly.style.css
@@ -3,8 +3,3 @@ point-update-cmp
   width: 100%;
   display: block;
 }
-
-:host >>> .mat-chip-list-wrapper
-{
-  flex-wrap: wrap;
-}
diff --git a/src/atlasViewer/atlasViewer.component.ts b/src/atlasViewer/atlasViewer.component.ts
index 2c406866e5bf53b0005f5af699746c56e02db764..84b1b6f6e9ed4505fd193788f695bffcc8fb157a 100644
--- a/src/atlasViewer/atlasViewer.component.ts
+++ b/src/atlasViewer/atlasViewer.component.ts
@@ -35,6 +35,7 @@ import { MIN_REQ_EXPLAINER } from 'src/util/constants'
 import { SlServiceService } from "src/spotlight/sl-service.service";
 import { PureContantService } from "src/util";
 import { ClickInterceptorService } from "src/glue";
+import { environment } from 'src/environments/environment'
 
 /**
  * TODO
@@ -149,7 +150,7 @@ export class AtlasViewer implements OnDestroy, OnInit, AfterViewInit {
   public ngOnInit() {
     this.meetsRequirement = this.meetsRequirements()
 
-    if (KIOSK_MODE) {
+    if (environment.KIOSK_MODE) {
 
       this.subscriptions.push(
         merge(
@@ -330,7 +331,7 @@ If you have any comments or need further support, please contact us at [${this.p
   }
 
   @HostBinding('attr.version')
-  public _version: string = VERSION
+  public _version: string = environment.VERSION
 }
 
 export interface INgLayerInterface {
diff --git a/src/atlasViewer/atlasViewer.workerService.service.ts b/src/atlasViewer/atlasViewer.workerService.service.ts
index 45ca6fd9af0cf13cda1312602551e12a3f72c6f8..227f5f2aa1f9a7ee255ccb9dba0e0d2b57642338 100644
--- a/src/atlasViewer/atlasViewer.workerService.service.ts
+++ b/src/atlasViewer/atlasViewer.workerService.service.ts
@@ -4,8 +4,9 @@ import { filter, take } from "rxjs/operators";
 import { getUuid } from "src/util/fn";
 
 /* telling webpack to pack the worker file */
-import '../../worker/worker.js'
-import '../../worker/worker-plotly.js'
+
+import '!!file-loader?name=worker.js!worker/worker.js'
+import '!!file-loader?name=worker-plotly.js!worker/worker-plotly.js'
 
 /**
  * export the worker, so that services that does not require dependency injection can import the worker
diff --git a/src/environments/environment.common.ts b/src/environments/environment.common.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5bf60d5906fe324de2ece7d04c17db1f15e559a2
--- /dev/null
+++ b/src/environments/environment.common.ts
@@ -0,0 +1,17 @@
+export const environment = {
+
+  VERSION: 'unspecificied hash',
+  PRODUCTION: true,
+  BACKEND_URL: null,
+  DATASET_PREVIEW_URL: 'https://hbp-kg-dataset-previewer.apps.hbp.eu/v2',
+  BS_REST_URL: 'https://siibra-api-latest.apps-dev.hbp.eu/v1_0',
+  SPATIAL_TRANSFORM_BACKEND: 'https://hbp-spatial-backend.apps.hbp.eu',
+  MATOMO_URL: null,
+  MATOMO_ID: null,
+
+  // strick local hides "explore" and "download" btns, which requires internet
+  STRICT_LOCAL: false,
+
+  // invite user to touch/interact after 5 min of inactivity
+  KIOSK_MODE: false,
+}
diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a5d7ac7fbbf0e6e2915d29240b37b2ebc64721be
--- /dev/null
+++ b/src/environments/environment.prod.ts
@@ -0,0 +1,4 @@
+import { environment as commonEnv } from './environment.common'
+export const environment = {
+  ...commonEnv
+}
\ No newline at end of file
diff --git a/src/environments/environment.ts b/src/environments/environment.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a5d7ac7fbbf0e6e2915d29240b37b2ebc64721be
--- /dev/null
+++ b/src/environments/environment.ts
@@ -0,0 +1,4 @@
+import { environment as commonEnv } from './environment.common'
+export const environment = {
+  ...commonEnv
+}
\ No newline at end of file
diff --git a/src/environments/parseEnv.js b/src/environments/parseEnv.js
new file mode 100644
index 0000000000000000000000000000000000000000..293c50cbcc171ae98ef3c186fa7437d4b58b98c5
--- /dev/null
+++ b/src/environments/parseEnv.js
@@ -0,0 +1,38 @@
+const fs = require('fs')
+const path = require('path')
+const { promisify } = require('util')
+const asyncWrite = promisify(fs.writeFile)
+
+const main = async () => {
+  const pathToEnvFile = path.join(__dirname, './environment.prod.ts')
+  const {
+    BACKEND_URL,
+    DATASET_PREVIEW_URL,
+    STRICT_LOCAL,
+    MATOMO_URL,
+    MATOMO_ID,
+    BS_REST_URL,
+    VERSION,
+    GIT_HASH
+  } = process.env
+  const version = JSON.stringify(
+    VERSION || GIT_HASH || 'unspecificied hash'
+  ) 
+
+  const outputTxt = `
+import { environment as commonEnv } from './environment.common'
+export const environment = {
+  ...commonEnv,
+  VERSION: ${version},
+  BS_REST_URL: ${JSON.stringify(BS_REST_URL)},
+  BACKEND_URL: ${JSON.stringify(BACKEND_URL)},
+  DATASET_PREVIEW_URL: ${JSON.stringify(DATASET_PREVIEW_URL)},
+  STRICT_LOCAL: ${JSON.stringify(STRICT_LOCAL)},
+  MATOMO_URL: ${JSON.stringify(MATOMO_URL)},
+  MATOMO_ID: ${JSON.stringify(MATOMO_ID)},
+}
+`
+  await asyncWrite(pathToEnvFile, outputTxt, 'utf-8')
+}
+
+main()
diff --git a/src/res/css/extra_styles.css b/src/extra_styles.css
similarity index 100%
rename from src/res/css/extra_styles.css
rename to src/extra_styles.css
diff --git a/src/index.html b/src/index.html
index f7c2ab2955adf509da76f7df12a95dc993158231..bf21bf3337a37f2b6e0e3a25f5e9d85bc57b0911 100644
--- a/src/index.html
+++ b/src/index.html
@@ -7,9 +7,8 @@
   <meta http-equiv="X-UA-Compatible" content="ie=edge">
   <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
   <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
-  <link rel="stylesheet" href="extra_styles.css">
   <link rel="stylesheet" href="icons/iav-icons.css">
-  <link rel="stylesheet" href="theme.css">
+  <link rel="stylesheet" href="main.css">
   <link rel="stylesheet" href="version.css">
   <link rel="icon" type="image/png" href="res/favicons/favicon-128-light.png"/>
   
@@ -18,23 +17,6 @@
   <script src="https://unpkg.com/three-surfer@0.0.10/dist/bundle.js" defer></script>
 
   <title>Interactive Atlas Viewer</title>
-  <script type="application/ld+json">
-    {
-      "@context": "http://schema.org",
-      "@type": "Map",
-      "url": "https://interactive-viewer.apps.hbp.eu",
-      "name": "Human Brain Project Interactive Atlas Viewer",
-      "reference space": {
-        "@type": "Place",
-        "parcellation atlas": {
-          "@type": "Place",
-          "regions": [{
-            "@type": "Place"
-          }]
-        }
-      }
-    }
-  </script>
 </head>
 <body>
   <atlas-viewer>
diff --git a/src/logging/logging.service.ts b/src/logging/logging.service.ts
index 0f4d879e2bf5c1489a9ab08150d03829c6c09f98..0bc455f6a76a3a4c1fecb21e414f33626390e547 100644
--- a/src/logging/logging.service.ts
+++ b/src/logging/logging.service.ts
@@ -1,6 +1,7 @@
 // tslint:disable:no-console
 
 import { Injectable } from "@angular/core";
+import { environment } from 'src/environments/environment'
 
 @Injectable({
   providedIn: 'root',
@@ -9,7 +10,7 @@ import { Injectable } from "@angular/core";
 export class LoggingService {
 
   get loggingFlag(){
-    return window['__IAV_LOGGING_FLAG__'] || !PRODUCTION
+    return window['__IAV_LOGGING_FLAG__'] || !environment.PRODUCTION
   }
 
   public log(...arg) {
diff --git a/src/main-common.ts b/src/main-common.ts
index 9b24274a650f3eb39a39e645d26ce56530c4b833..3afe8d0ad8e5dd329f4392e4e7de3aff1228fe00 100644
--- a/src/main-common.ts
+++ b/src/main-common.ts
@@ -23,6 +23,11 @@ import '!!file-loader?context=src/res&name=icons/iav-icons.svg!src/res/icons/iav
  */
 import '!!file-loader?context=src/res/favicons&name=favicon-128-light.png!src/res/favicons/favicon-128-light.png'
 
+/**
+ * version css
+ */
+import '!!file-loader?name=version.css!src/version.css'
+
 import 'zone.js'
 import { enableProdMode } from '@angular/core';
 
@@ -30,12 +35,11 @@ import * as ConnectivityComponent from 'hbp-connectivity-component/dist/loader'
 import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'
 import { MainModule } from './main.module';
 
+import { environment } from 'src/environments/environment'
+const { PRODUCTION, VERSION } = environment
 if (PRODUCTION) enableProdMode()
 if (PRODUCTION) { console.log(`Interactive Atlas Viewer: ${VERSION}`) }
 
-const requireAll = (r: any) => {r.keys().forEach(r)}
-requireAll(require.context('./res/images', true, /\.jpg$|\.png$|\.svg$/))
-requireAll(require.context(`./plugin_examples`, true))
 
 platformBrowserDynamic().bootstrapModule(MainModule)
 
diff --git a/src/main.module.ts b/src/main.module.ts
index ae6ad290a9210e0e316dcf7b44f8ef4524ac7aa7..bfe4020d475c53317d98064505ca26cd3d79ef57 100644
--- a/src/main.module.ts
+++ b/src/main.module.ts
@@ -38,9 +38,6 @@ import { PluginModule } from './plugin/plugin.module';
 import { LoggingModule } from './logging/logging.module';
 import { AuthService } from './auth'
 
-import 'hammerjs'
-import 'src/res/css/extra_styles.css'
-import 'src/res/css/version.css'
 import 'src/theme.scss'
 import { DatasetPreviewGlue, datasetPreviewMetaReducer, IDatasetPreviewGlue, GlueEffects, ClickInterceptorService } from './glue';
 import { viewerStateHelperReducer, viewerStateMetaReducers, ViewerStateHelperEffect } from './services/state/viewerState.store.helper';
@@ -59,6 +56,7 @@ import { QuickTourModule } from './ui/quickTour';
 import { of } from 'rxjs';
 import { GET_KGDS_PREVIEW_INFO_FROM_ID_FILENAME, OVERRIDE_IAV_DATASET_PREVIEW_DATASET_FN, kgTos, IAV_DATASET_PREVIEW_ACTIVE } from './databrowser.fallback'
 import { CANCELLABLE_DIALOG } from './util/interfaces';
+import { environment } from 'src/environments/environment' 
 
 export function debug(reducer: ActionReducer<any>): ActionReducer<any> {
   return function(state, action) {
@@ -236,7 +234,7 @@ export function debug(reducer: ActionReducer<any>): ActionReducer<any> {
     },
     {
       provide: BS_ENDPOINT,
-      useValue: (BS_REST_URL || `https://siibra-api-latest.apps-dev.hbp.eu/v1_0`).replace(/\/$/, '')
+      useValue: (environment.BS_REST_URL || `https://siibra-api-latest.apps-dev.hbp.eu/v1_0`).replace(/\/$/, '')
     },
   ],
   bootstrap : [
diff --git a/src/messaging/service.ts b/src/messaging/service.ts
index 8e73122c8ce67553be6736b96c92d8912f1510a1..7739108fca2d3bab0cf4e3c6a6aed12e148a931a 100644
--- a/src/messaging/service.ts
+++ b/src/messaging/service.ts
@@ -60,7 +60,8 @@ export class MessagingService {
     }
 
     window.addEventListener('message', async ({ data, origin, source }) => {
-      
+      if (/^webpack/.test(data.type)) return
+      if (data === '') return
       const src = source as Window
       const { id } = data
       try {
diff --git a/src/overwrite.scss b/src/overwrite.scss
new file mode 100644
index 0000000000000000000000000000000000000000..9aa3141ed73802f6b6b75ecc85cade85afdbcbae
--- /dev/null
+++ b/src/overwrite.scss
@@ -0,0 +1,36 @@
+iav-cmp-viewer-container
+{
+
+  .mat-chip-list-wrapper
+  {
+    flex-wrap: nowrap;
+  }
+
+  poly-update-cmp
+  {
+    .mat-chip-list-wrapper
+    {
+      flex-wrap: wrap;
+    }
+  }
+}
+
+quick-tour-unit
+{
+  svg
+  {
+    pointer-events: none;
+    stroke-width: 3px;
+    stroke: rgb(255, 255, 255);
+    stroke-linecap: round;
+    stroke-linejoin: round;
+  }
+}
+
+kg-ds-prv-regional-feature-view
+{
+  div
+  {
+    min-height: 20em;
+  }
+}
\ No newline at end of file
diff --git a/src/res/images/receptor/3b_bm_5-HT1A.jpg b/src/res/images/receptor/3b_bm_5-HT1A.jpg
deleted file mode 100644
index f96fcf6fa80e3a5256f7bfd970fd139609f93535..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/3b_bm_5-HT1A.jpg and /dev/null differ
diff --git a/src/res/images/receptor/3b_bm_5-HT2.jpg b/src/res/images/receptor/3b_bm_5-HT2.jpg
deleted file mode 100644
index a2596f224e5a54be5760643e973ac4a862cb20c4..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/3b_bm_5-HT2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/3b_bm_AMPA.jpg b/src/res/images/receptor/3b_bm_AMPA.jpg
deleted file mode 100644
index 68126fb0f42af8c76685e641564dd9fc639d4272..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/3b_bm_AMPA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/3b_bm_BZ.jpg b/src/res/images/receptor/3b_bm_BZ.jpg
deleted file mode 100644
index 63e2005e254cf4090f7c1bcef927ba9b941dfb6b..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/3b_bm_BZ.jpg and /dev/null differ
diff --git a/src/res/images/receptor/3b_bm_D1.jpg b/src/res/images/receptor/3b_bm_D1.jpg
deleted file mode 100644
index 070147b0172f992403be88c55fe4413d53dfcdbe..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/3b_bm_D1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/3b_bm_GABAA.jpg b/src/res/images/receptor/3b_bm_GABAA.jpg
deleted file mode 100644
index 70adcc2c6a610bd05a7588b08a81a81c4009c687..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/3b_bm_GABAA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/3b_bm_GABAB.jpg b/src/res/images/receptor/3b_bm_GABAB.jpg
deleted file mode 100644
index c0b597ca820feda7215d15b301e6de77ec2b92aa..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/3b_bm_GABAB.jpg and /dev/null differ
diff --git a/src/res/images/receptor/3b_bm_M1.jpg b/src/res/images/receptor/3b_bm_M1.jpg
deleted file mode 100644
index f92f4fab47b1cad7b5c1c5112fc2952566368dfe..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/3b_bm_M1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/3b_bm_M2.jpg b/src/res/images/receptor/3b_bm_M2.jpg
deleted file mode 100644
index 6875e08ec068cd8861960b30b393a8f4661a883e..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/3b_bm_M2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/3b_bm_M3.jpg b/src/res/images/receptor/3b_bm_M3.jpg
deleted file mode 100644
index 05e0c861693ce975297750eee0f5c7a3c6671b1e..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/3b_bm_M3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/3b_bm_NMDA.jpg b/src/res/images/receptor/3b_bm_NMDA.jpg
deleted file mode 100644
index 6dd808b1a61f9ddcdf9ffceb442b4f0ccdc0ee06..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/3b_bm_NMDA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/3b_bm_alpha1.jpg b/src/res/images/receptor/3b_bm_alpha1.jpg
deleted file mode 100644
index bf0fb38276d198d487eb18d38af63d5cb9698af8..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/3b_bm_alpha1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/3b_bm_alpha2.jpg b/src/res/images/receptor/3b_bm_alpha2.jpg
deleted file mode 100644
index 2dbec61b39a9ef6405fbca02a5d0549a76661a0b..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/3b_bm_alpha2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/3b_bm_alpha4beta2.jpg b/src/res/images/receptor/3b_bm_alpha4beta2.jpg
deleted file mode 100644
index 26e2ccbcbc9fdf95d1b2a3e28be72dec8660e59e..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/3b_bm_alpha4beta2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/3b_bm_kainate.jpg b/src/res/images/receptor/3b_bm_kainate.jpg
deleted file mode 100644
index 9c7c42f69c00479eeb46e3150cb54a206f7b610b..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/3b_bm_kainate.jpg and /dev/null differ
diff --git a/src/res/images/receptor/3b_bm_mGluR2_3.jpg b/src/res/images/receptor/3b_bm_mGluR2_3.jpg
deleted file mode 100644
index 734a1851e9ecaa1a472c9ef6f15621831adfa830..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/3b_bm_mGluR2_3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/44d_bm_5-HT1A.jpg b/src/res/images/receptor/44d_bm_5-HT1A.jpg
deleted file mode 100644
index 42dce12d40ca8018e968abbdc99fb8639aa337f5..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/44d_bm_5-HT1A.jpg and /dev/null differ
diff --git a/src/res/images/receptor/44d_bm_5-HT2.jpg b/src/res/images/receptor/44d_bm_5-HT2.jpg
deleted file mode 100644
index 132a0d6f131dd8f5d0e52d74ce2eac6664db5a57..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/44d_bm_5-HT2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/44d_bm_AMPA.jpg b/src/res/images/receptor/44d_bm_AMPA.jpg
deleted file mode 100644
index b6cd211538207e8aa8ebe001be64e6f7d8f092b8..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/44d_bm_AMPA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/44d_bm_BZ.jpg b/src/res/images/receptor/44d_bm_BZ.jpg
deleted file mode 100644
index 5dc2631cfee68efb47bc21449c1b942dddb327f9..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/44d_bm_BZ.jpg and /dev/null differ
diff --git a/src/res/images/receptor/44d_bm_D1.jpg b/src/res/images/receptor/44d_bm_D1.jpg
deleted file mode 100644
index cd754cc6e1c9c212af9ba1582bdde5c1c47e174b..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/44d_bm_D1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/44d_bm_GABAA.jpg b/src/res/images/receptor/44d_bm_GABAA.jpg
deleted file mode 100644
index 82075f63d4f12f6ac5e912d3a381d78de4b0cc95..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/44d_bm_GABAA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/44d_bm_GABAB.jpg b/src/res/images/receptor/44d_bm_GABAB.jpg
deleted file mode 100644
index e52ad231af88c7ed8b95ddc7453217e8dbba0b7c..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/44d_bm_GABAB.jpg and /dev/null differ
diff --git a/src/res/images/receptor/44d_bm_M1.jpg b/src/res/images/receptor/44d_bm_M1.jpg
deleted file mode 100644
index 566964e1e55de53af25a7685c0126a656afe1d86..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/44d_bm_M1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/44d_bm_M2.jpg b/src/res/images/receptor/44d_bm_M2.jpg
deleted file mode 100644
index 9c0314f57a8b2431ae6241cb31a85302ad16332d..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/44d_bm_M2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/44d_bm_M3.jpg b/src/res/images/receptor/44d_bm_M3.jpg
deleted file mode 100644
index b0e62c06b09fe89d4c5e349ff3ddba11ea7db237..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/44d_bm_M3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/44d_bm_NMDA.jpg b/src/res/images/receptor/44d_bm_NMDA.jpg
deleted file mode 100644
index 854e1706f56d50043306ec3d260614367fe6fd6c..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/44d_bm_NMDA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/44d_bm_alpha1.jpg b/src/res/images/receptor/44d_bm_alpha1.jpg
deleted file mode 100644
index b58b2b22c908929a532758319dd1c87d9eb3ff90..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/44d_bm_alpha1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/44d_bm_alpha2.jpg b/src/res/images/receptor/44d_bm_alpha2.jpg
deleted file mode 100644
index 2758a87c52ff8a05411a055fa6c18e82b75fc9b5..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/44d_bm_alpha2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/44d_bm_alpha4beta2.jpg b/src/res/images/receptor/44d_bm_alpha4beta2.jpg
deleted file mode 100644
index 14e9c9b4ecf7562d480c6792e31607258b4a9f86..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/44d_bm_alpha4beta2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/44d_bm_kainate.jpg b/src/res/images/receptor/44d_bm_kainate.jpg
deleted file mode 100644
index b38cd981bc1e40fce6eff3813efb615904ad2411..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/44d_bm_kainate.jpg and /dev/null differ
diff --git a/src/res/images/receptor/44d_bm_mGluR2_3.jpg b/src/res/images/receptor/44d_bm_mGluR2_3.jpg
deleted file mode 100644
index ca23bcd6085d0b3d84612d0352f31a93ba75075d..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/44d_bm_mGluR2_3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/45_bm_5-HT1A.jpg b/src/res/images/receptor/45_bm_5-HT1A.jpg
deleted file mode 100644
index cbbd4fa01edee35f010c197c0865e015fd945160..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/45_bm_5-HT1A.jpg and /dev/null differ
diff --git a/src/res/images/receptor/45_bm_5-HT2.jpg b/src/res/images/receptor/45_bm_5-HT2.jpg
deleted file mode 100644
index e7f6da88d01ff59502c868c8fac91724fe5677a1..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/45_bm_5-HT2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/45_bm_AMPA.jpg b/src/res/images/receptor/45_bm_AMPA.jpg
deleted file mode 100644
index 367520555cfdd4194ef5ebe664a5a87b478626a5..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/45_bm_AMPA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/45_bm_BZ.jpg b/src/res/images/receptor/45_bm_BZ.jpg
deleted file mode 100644
index 65526e3488ba8be86b9b972ce504501709ee034e..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/45_bm_BZ.jpg and /dev/null differ
diff --git a/src/res/images/receptor/45_bm_D1.jpg b/src/res/images/receptor/45_bm_D1.jpg
deleted file mode 100644
index 5952b0819ce8eac8b9214dfad027ad75f84a8ef3..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/45_bm_D1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/45_bm_GABAA.jpg b/src/res/images/receptor/45_bm_GABAA.jpg
deleted file mode 100644
index 9b5a5ec59db977bd993a63781aa23a0441924dbe..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/45_bm_GABAA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/45_bm_GABAB.jpg b/src/res/images/receptor/45_bm_GABAB.jpg
deleted file mode 100644
index 8fb3894ffa7bf9777ee5eaff0e79973dc600ddf9..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/45_bm_GABAB.jpg and /dev/null differ
diff --git a/src/res/images/receptor/45_bm_M1.jpg b/src/res/images/receptor/45_bm_M1.jpg
deleted file mode 100644
index 9c7862b58f90515baede17e544023493a5000c02..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/45_bm_M1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/45_bm_M2.jpg b/src/res/images/receptor/45_bm_M2.jpg
deleted file mode 100644
index 6df386b46bd075e3c3e4560492c2b163144ec988..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/45_bm_M2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/45_bm_M3.jpg b/src/res/images/receptor/45_bm_M3.jpg
deleted file mode 100644
index 23759077cc0e67c6ae23d0ac85154c803600dc0c..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/45_bm_M3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/45_bm_NMDA.jpg b/src/res/images/receptor/45_bm_NMDA.jpg
deleted file mode 100644
index 1cdb62c9f7a6d8eada3f757bb319867a4062722a..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/45_bm_NMDA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/45_bm_alpha1.jpg b/src/res/images/receptor/45_bm_alpha1.jpg
deleted file mode 100644
index 588cf0f967532d388434c81ce1d4b8e5cdae0c2f..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/45_bm_alpha1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/45_bm_alpha2.jpg b/src/res/images/receptor/45_bm_alpha2.jpg
deleted file mode 100644
index 35739bf39b63126398b54f366e43876cd0b3a8b5..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/45_bm_alpha2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/45_bm_alpha4beta2.jpg b/src/res/images/receptor/45_bm_alpha4beta2.jpg
deleted file mode 100644
index dd817377c775f441a97d6577ccd50f92c725b882..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/45_bm_alpha4beta2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/45_bm_kainate.jpg b/src/res/images/receptor/45_bm_kainate.jpg
deleted file mode 100644
index 2e1da0f7bfb186838ade772bdac4d1e5baf98513..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/45_bm_kainate.jpg and /dev/null differ
diff --git a/src/res/images/receptor/45_bm_mGluR2_3.jpg b/src/res/images/receptor/45_bm_mGluR2_3.jpg
deleted file mode 100644
index 908fec09636cf9a09300d3e8e3663cf92359427c..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/45_bm_mGluR2_3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/47_bm_5-HT1A.jpg b/src/res/images/receptor/47_bm_5-HT1A.jpg
deleted file mode 100644
index e697a223dcc4c257690aa59796e6b45b29ca3e20..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/47_bm_5-HT1A.jpg and /dev/null differ
diff --git a/src/res/images/receptor/47_bm_5-HT2.jpg b/src/res/images/receptor/47_bm_5-HT2.jpg
deleted file mode 100644
index f3356ca2d42f6110cc1f9cf521ba276070891f5e..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/47_bm_5-HT2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/47_bm_AMPA.jpg b/src/res/images/receptor/47_bm_AMPA.jpg
deleted file mode 100644
index 42710e2e2738a23902f450578a679b30661f6665..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/47_bm_AMPA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/47_bm_BZ.jpg b/src/res/images/receptor/47_bm_BZ.jpg
deleted file mode 100644
index 201ceb65341f6107cd50fa89cbe0f7745248f512..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/47_bm_BZ.jpg and /dev/null differ
diff --git a/src/res/images/receptor/47_bm_D1.jpg b/src/res/images/receptor/47_bm_D1.jpg
deleted file mode 100644
index 115c7b82235c3448d9a27afa7609521327674e18..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/47_bm_D1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/47_bm_GABAA.jpg b/src/res/images/receptor/47_bm_GABAA.jpg
deleted file mode 100644
index 56b21e58f67bfcced06ba33fd185a7f0a319736a..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/47_bm_GABAA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/47_bm_GABAB.jpg b/src/res/images/receptor/47_bm_GABAB.jpg
deleted file mode 100644
index d151ee694f8f78ab831d3feae1b46db9b1bd27fe..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/47_bm_GABAB.jpg and /dev/null differ
diff --git a/src/res/images/receptor/47_bm_M1.jpg b/src/res/images/receptor/47_bm_M1.jpg
deleted file mode 100644
index ab6d6a549ffd485e9ee4e457c60b934e36217f72..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/47_bm_M1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/47_bm_M2.jpg b/src/res/images/receptor/47_bm_M2.jpg
deleted file mode 100644
index 2cfe151c11619722393e61637aa877d6648b47e7..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/47_bm_M2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/47_bm_M3.jpg b/src/res/images/receptor/47_bm_M3.jpg
deleted file mode 100644
index 0e81d0497536b3661f7754de9c2b9afd087e859a..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/47_bm_M3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/47_bm_NMDA.jpg b/src/res/images/receptor/47_bm_NMDA.jpg
deleted file mode 100644
index fa02d92243a0d5ec47d2b074795016da8f802a2c..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/47_bm_NMDA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/47_bm_alpha1.jpg b/src/res/images/receptor/47_bm_alpha1.jpg
deleted file mode 100644
index 40f4066202e6d64c97ddc555a715e34667613b3e..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/47_bm_alpha1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/47_bm_alpha2.jpg b/src/res/images/receptor/47_bm_alpha2.jpg
deleted file mode 100644
index bb39d2a552e2b5a5fb4e8200b355b81996c92267..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/47_bm_alpha2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/47_bm_alpha4beta2.jpg b/src/res/images/receptor/47_bm_alpha4beta2.jpg
deleted file mode 100644
index 1495f180908abd8acfec896fc2afd5d66874546b..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/47_bm_alpha4beta2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/47_bm_kainate.jpg b/src/res/images/receptor/47_bm_kainate.jpg
deleted file mode 100644
index 5f08d8e1b13c21e80757b3ba901b9313ee17ebff..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/47_bm_kainate.jpg and /dev/null differ
diff --git a/src/res/images/receptor/47_bm_mGluR2_3.jpg b/src/res/images/receptor/47_bm_mGluR2_3.jpg
deleted file mode 100644
index c0c0422e8958c974fbbb47abb89f7a39638dce70..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/47_bm_mGluR2_3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/4p_bm_5-HT1A.jpg b/src/res/images/receptor/4p_bm_5-HT1A.jpg
deleted file mode 100644
index 3b96a56c8dd69b43a6098a5b2c5578cc69a24a20..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/4p_bm_5-HT1A.jpg and /dev/null differ
diff --git a/src/res/images/receptor/4p_bm_5-HT2.jpg b/src/res/images/receptor/4p_bm_5-HT2.jpg
deleted file mode 100644
index e40f2f46bc9f4e67b1b08c0584c1376073bf211f..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/4p_bm_5-HT2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/4p_bm_AMPA.jpg b/src/res/images/receptor/4p_bm_AMPA.jpg
deleted file mode 100644
index b6d8e421c4a6fc0949a79cff259dfacda0fe952b..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/4p_bm_AMPA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/4p_bm_BZ.jpg b/src/res/images/receptor/4p_bm_BZ.jpg
deleted file mode 100644
index 90d4ed1b9481d205c39c181f370652d6573918ca..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/4p_bm_BZ.jpg and /dev/null differ
diff --git a/src/res/images/receptor/4p_bm_D1.jpg b/src/res/images/receptor/4p_bm_D1.jpg
deleted file mode 100644
index fae2f5cbdcd0099b12b2ad75a4895224d7f3e6b2..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/4p_bm_D1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/4p_bm_GABAA.jpg b/src/res/images/receptor/4p_bm_GABAA.jpg
deleted file mode 100644
index afea3578e993f32ced98a01994bedcfcc6cf5faf..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/4p_bm_GABAA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/4p_bm_GABAB.jpg b/src/res/images/receptor/4p_bm_GABAB.jpg
deleted file mode 100644
index 1ef79ef72faa0edf44e5bb4fd8ad2f9a1af2e7ca..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/4p_bm_GABAB.jpg and /dev/null differ
diff --git a/src/res/images/receptor/4p_bm_M1.jpg b/src/res/images/receptor/4p_bm_M1.jpg
deleted file mode 100644
index fc03cae1f5f3a5424008b6da0d8a4804d0128310..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/4p_bm_M1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/4p_bm_M2.jpg b/src/res/images/receptor/4p_bm_M2.jpg
deleted file mode 100644
index 78fd42117ae25bfc3535be5e4214bd0556327a33..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/4p_bm_M2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/4p_bm_M3.jpg b/src/res/images/receptor/4p_bm_M3.jpg
deleted file mode 100644
index 71619dbaa7c9f184ae734044ece377c0ecbc840a..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/4p_bm_M3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/4p_bm_NMDA.jpg b/src/res/images/receptor/4p_bm_NMDA.jpg
deleted file mode 100644
index 3ab8da61b88bd3d8aa8e088c047a7ea3f0309e9b..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/4p_bm_NMDA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/4p_bm_alpha1.jpg b/src/res/images/receptor/4p_bm_alpha1.jpg
deleted file mode 100644
index a167e8993d7087a68915eedddf6ba39ebf9e6d6c..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/4p_bm_alpha1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/4p_bm_alpha2.jpg b/src/res/images/receptor/4p_bm_alpha2.jpg
deleted file mode 100644
index bc6d9c56e0128e4d3f57069c9253bc30fcf2e923..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/4p_bm_alpha2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/4p_bm_alpha4beta2.jpg b/src/res/images/receptor/4p_bm_alpha4beta2.jpg
deleted file mode 100644
index e826c208c4c7fce9ccf14f3a8572cea769bfe52a..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/4p_bm_alpha4beta2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/4p_bm_kainate.jpg b/src/res/images/receptor/4p_bm_kainate.jpg
deleted file mode 100644
index 447584f7e6a5ba11526b81e8f320d3c0a2fec8e3..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/4p_bm_kainate.jpg and /dev/null differ
diff --git a/src/res/images/receptor/4p_bm_mGluR2_3.jpg b/src/res/images/receptor/4p_bm_mGluR2_3.jpg
deleted file mode 100644
index c35a9a857cd7789974a2dfb44551635dc46a5bd2..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/4p_bm_mGluR2_3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/7A_bm_5-HT1A.jpg b/src/res/images/receptor/7A_bm_5-HT1A.jpg
deleted file mode 100644
index 125b57f450dfbef245ab70e25916ce76d956ec14..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/7A_bm_5-HT1A.jpg and /dev/null differ
diff --git a/src/res/images/receptor/7A_bm_5-HT2.jpg b/src/res/images/receptor/7A_bm_5-HT2.jpg
deleted file mode 100644
index 70d59ed7ec54d44a5b7ce91368180a474eceb179..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/7A_bm_5-HT2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/7A_bm_AMPA.jpg b/src/res/images/receptor/7A_bm_AMPA.jpg
deleted file mode 100644
index b86eec85dd3c6983b883fdeea9dfbe83080cffb2..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/7A_bm_AMPA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/7A_bm_BZ.jpg b/src/res/images/receptor/7A_bm_BZ.jpg
deleted file mode 100644
index 7e7a2e5c196068a860c079e464927d77c79e597a..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/7A_bm_BZ.jpg and /dev/null differ
diff --git a/src/res/images/receptor/7A_bm_D1.jpg b/src/res/images/receptor/7A_bm_D1.jpg
deleted file mode 100644
index c5fdb34bc3ea4282121c90eb024b5a72f8c0fca6..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/7A_bm_D1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/7A_bm_GABAA.jpg b/src/res/images/receptor/7A_bm_GABAA.jpg
deleted file mode 100644
index 05a99bd5722eae5c059cf7b493236df932ca9814..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/7A_bm_GABAA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/7A_bm_GABAB.jpg b/src/res/images/receptor/7A_bm_GABAB.jpg
deleted file mode 100644
index 1a898c82280b722522efa46578f5adea771b5411..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/7A_bm_GABAB.jpg and /dev/null differ
diff --git a/src/res/images/receptor/7A_bm_M1.jpg b/src/res/images/receptor/7A_bm_M1.jpg
deleted file mode 100644
index d9ab524f9923cabbb0a43c8fc2a324e3de1bf04e..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/7A_bm_M1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/7A_bm_M2.jpg b/src/res/images/receptor/7A_bm_M2.jpg
deleted file mode 100644
index 2f0f6df8652830a8b157e6dd54b1e34b9cdb2008..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/7A_bm_M2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/7A_bm_M3.jpg b/src/res/images/receptor/7A_bm_M3.jpg
deleted file mode 100644
index d999e1ea5cb4809ec42d472f74a8ffc378f4c857..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/7A_bm_M3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/7A_bm_NMDA.jpg b/src/res/images/receptor/7A_bm_NMDA.jpg
deleted file mode 100644
index 0b5c7f6dace54b8868337aba58ab88ac0ece22d1..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/7A_bm_NMDA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/7A_bm_alpha1.jpg b/src/res/images/receptor/7A_bm_alpha1.jpg
deleted file mode 100644
index 56e90fa93d34fce1293f8420a81bf2fa01844627..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/7A_bm_alpha1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/7A_bm_alpha2.jpg b/src/res/images/receptor/7A_bm_alpha2.jpg
deleted file mode 100644
index 5469f00a9de98d448823694685ddabb14b36031d..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/7A_bm_alpha2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/7A_bm_alpha4beta2.jpg b/src/res/images/receptor/7A_bm_alpha4beta2.jpg
deleted file mode 100644
index c6a0f4728bc6e8dce9c61392e666ce5cbc8df6e1..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/7A_bm_alpha4beta2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/7A_bm_kainate.jpg b/src/res/images/receptor/7A_bm_kainate.jpg
deleted file mode 100644
index 8ada9423c8b32b661dcfb95975d8f7f9fe984ed6..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/7A_bm_kainate.jpg and /dev/null differ
diff --git a/src/res/images/receptor/7A_bm_mGluR2_3.jpg b/src/res/images/receptor/7A_bm_mGluR2_3.jpg
deleted file mode 100644
index cac552a47e8fccbffa28ca8097f4a5b8c4f10629..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/7A_bm_mGluR2_3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG1_bm_5-HT1A.jpg b/src/res/images/receptor/FG1_bm_5-HT1A.jpg
deleted file mode 100644
index 6a28fce1488ee9b3eb7c096143b7b66dd4132dfa..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG1_bm_5-HT1A.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG1_bm_5-HT2.jpg b/src/res/images/receptor/FG1_bm_5-HT2.jpg
deleted file mode 100644
index 4c8342bfccaddf89688e569de1b0bddbab244141..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG1_bm_5-HT2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG1_bm_AMPA.jpg b/src/res/images/receptor/FG1_bm_AMPA.jpg
deleted file mode 100644
index 72ccbedd67563ecc6f0f47c89a48872b82c7f67b..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG1_bm_AMPA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG1_bm_BZ.jpg b/src/res/images/receptor/FG1_bm_BZ.jpg
deleted file mode 100644
index 655706b574e0df188e622fa052c6257a42688052..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG1_bm_BZ.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG1_bm_D1.jpg b/src/res/images/receptor/FG1_bm_D1.jpg
deleted file mode 100644
index 5653c981b475e8e7bd826b2cc9055e3111785dd6..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG1_bm_D1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG1_bm_GABAA.jpg b/src/res/images/receptor/FG1_bm_GABAA.jpg
deleted file mode 100644
index 5fda65ce49e1983d052ebf7bf06bf5953621bd77..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG1_bm_GABAA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG1_bm_GABAB.jpg b/src/res/images/receptor/FG1_bm_GABAB.jpg
deleted file mode 100644
index f5f211d9fa4e6663d1b9d38e2f197f85227c3415..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG1_bm_GABAB.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG1_bm_M1.jpg b/src/res/images/receptor/FG1_bm_M1.jpg
deleted file mode 100644
index c0ef1aa5b3092c2a29aee48c77385ea7030951c6..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG1_bm_M1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG1_bm_M2.jpg b/src/res/images/receptor/FG1_bm_M2.jpg
deleted file mode 100644
index 8bf6df75670afe90146d89f3838f74df945e1dcf..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG1_bm_M2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG1_bm_M3.jpg b/src/res/images/receptor/FG1_bm_M3.jpg
deleted file mode 100644
index 8c70d1c5358d4e06443f5cfa1232759dcdf26475..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG1_bm_M3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG1_bm_NMDA.jpg b/src/res/images/receptor/FG1_bm_NMDA.jpg
deleted file mode 100644
index ce201f53ac0bfa275ba8389beaa14767ec5a8de7..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG1_bm_NMDA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG1_bm_alpha1.jpg b/src/res/images/receptor/FG1_bm_alpha1.jpg
deleted file mode 100644
index ded4ac67d48f4a512f65e89f92f61ec8e407c1a5..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG1_bm_alpha1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG1_bm_alpha2.jpg b/src/res/images/receptor/FG1_bm_alpha2.jpg
deleted file mode 100644
index 6ac8a6aeda297024b3a4cfb2db1d215be407c39e..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG1_bm_alpha2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG1_bm_alpha4beta2.jpg b/src/res/images/receptor/FG1_bm_alpha4beta2.jpg
deleted file mode 100644
index 0189e0fbb5117784667e6321a7891a822b22fe42..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG1_bm_alpha4beta2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG1_bm_kainate.jpg b/src/res/images/receptor/FG1_bm_kainate.jpg
deleted file mode 100644
index 8448a4b5157388702c7605dcd579d13fc025540e..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG1_bm_kainate.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG2_bm_5-HT1A.jpg b/src/res/images/receptor/FG2_bm_5-HT1A.jpg
deleted file mode 100644
index 2075043d74c0f05ce78faf6428bcdf8307b4dace..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG2_bm_5-HT1A.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG2_bm_5-HT2.jpg b/src/res/images/receptor/FG2_bm_5-HT2.jpg
deleted file mode 100644
index a9a6b33769c3e2af2696a019c29f30adec291994..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG2_bm_5-HT2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG2_bm_AMPA.jpg b/src/res/images/receptor/FG2_bm_AMPA.jpg
deleted file mode 100644
index f019cb4a9afce3faebe267d5305af15ba7ea1012..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG2_bm_AMPA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG2_bm_BZ.jpg b/src/res/images/receptor/FG2_bm_BZ.jpg
deleted file mode 100644
index 2c5865cd99fec73553035b98a1ef4dba785a80f4..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG2_bm_BZ.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG2_bm_D1.jpg b/src/res/images/receptor/FG2_bm_D1.jpg
deleted file mode 100644
index 7b75c193104b85703abdf83ff976afa535b516fc..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG2_bm_D1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG2_bm_GABAA.jpg b/src/res/images/receptor/FG2_bm_GABAA.jpg
deleted file mode 100644
index 00e3519598de91abd8d30ba2f506ccd0c01782b7..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG2_bm_GABAA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG2_bm_GABAB.jpg b/src/res/images/receptor/FG2_bm_GABAB.jpg
deleted file mode 100644
index 256115ea50b02e0a4788d304efa0f8dbb273ed04..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG2_bm_GABAB.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG2_bm_M1.jpg b/src/res/images/receptor/FG2_bm_M1.jpg
deleted file mode 100644
index 4f826aa0325edd927eb670fc615cff19ddd1ebcb..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG2_bm_M1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG2_bm_M2.jpg b/src/res/images/receptor/FG2_bm_M2.jpg
deleted file mode 100644
index b063080f44395344acae489b5dc81a36cd393351..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG2_bm_M2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG2_bm_M3.jpg b/src/res/images/receptor/FG2_bm_M3.jpg
deleted file mode 100644
index ddb5ebf0c369d7e194b4bfdf03a530408c01e7bf..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG2_bm_M3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG2_bm_NMDA.jpg b/src/res/images/receptor/FG2_bm_NMDA.jpg
deleted file mode 100644
index abeb384e24986730446077867947935669bdb2e5..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG2_bm_NMDA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG2_bm_alpha1.jpg b/src/res/images/receptor/FG2_bm_alpha1.jpg
deleted file mode 100644
index 77cab1d528f18d1d1254a3baa2c0d34f7361a289..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG2_bm_alpha1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG2_bm_alpha2.jpg b/src/res/images/receptor/FG2_bm_alpha2.jpg
deleted file mode 100644
index 11b3726c98eb587b2c1a1fb6a085ba83a9757bce..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG2_bm_alpha2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG2_bm_alpha4beta2.jpg b/src/res/images/receptor/FG2_bm_alpha4beta2.jpg
deleted file mode 100644
index dee0b8b45dc7498045fffd79f754d8378a3faa2f..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG2_bm_alpha4beta2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/FG2_bm_kainate.jpg b/src/res/images/receptor/FG2_bm_kainate.jpg
deleted file mode 100644
index b8efab0db90f685960bcbd2ac69167aec113648c..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/FG2_bm_kainate.jpg and /dev/null differ
diff --git a/src/res/images/receptor/PFm_bm_5-HT1A.jpg b/src/res/images/receptor/PFm_bm_5-HT1A.jpg
deleted file mode 100644
index b018e339646cb6e813c4392fffffe70d4fea8caf..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/PFm_bm_5-HT1A.jpg and /dev/null differ
diff --git a/src/res/images/receptor/PFm_bm_5-HT2.jpg b/src/res/images/receptor/PFm_bm_5-HT2.jpg
deleted file mode 100644
index 6098d8869eec364b034587ac2bd4a38c346d1a83..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/PFm_bm_5-HT2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/PFm_bm_AMPA.jpg b/src/res/images/receptor/PFm_bm_AMPA.jpg
deleted file mode 100644
index cd69587c6059c2f05a3f5ec42d853f6c72c75711..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/PFm_bm_AMPA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/PFm_bm_BZ.jpg b/src/res/images/receptor/PFm_bm_BZ.jpg
deleted file mode 100644
index de6bce0e4f0c9f038b748bfd3df95f28cf5611be..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/PFm_bm_BZ.jpg and /dev/null differ
diff --git a/src/res/images/receptor/PFm_bm_D1.jpg b/src/res/images/receptor/PFm_bm_D1.jpg
deleted file mode 100644
index 657660cdb427ac5b9cba4b64e346a77eb4494fe6..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/PFm_bm_D1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/PFm_bm_GABAA.jpg b/src/res/images/receptor/PFm_bm_GABAA.jpg
deleted file mode 100644
index 52df371b0db42119e3b19fe31ba82a84150822ce..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/PFm_bm_GABAA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/PFm_bm_GABAB.jpg b/src/res/images/receptor/PFm_bm_GABAB.jpg
deleted file mode 100644
index f6d3bf22e093509c165a8e416d1ef34dc95319ff..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/PFm_bm_GABAB.jpg and /dev/null differ
diff --git a/src/res/images/receptor/PFm_bm_M1.jpg b/src/res/images/receptor/PFm_bm_M1.jpg
deleted file mode 100644
index ab0ca69342441ed2d88fd6bda20d34da0333b792..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/PFm_bm_M1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/PFm_bm_M2.jpg b/src/res/images/receptor/PFm_bm_M2.jpg
deleted file mode 100644
index 9f16fe48bf4020c2a5169f00f34eb9f6d107b02b..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/PFm_bm_M2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/PFm_bm_M3.jpg b/src/res/images/receptor/PFm_bm_M3.jpg
deleted file mode 100644
index 46c3d579e1f89c9b304904feffd812d1030702d7..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/PFm_bm_M3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/PFm_bm_NMDA.jpg b/src/res/images/receptor/PFm_bm_NMDA.jpg
deleted file mode 100644
index f73446c6fbbbfe0cd6134cd4aee80d5ecf434642..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/PFm_bm_NMDA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/PFm_bm_alpha1.jpg b/src/res/images/receptor/PFm_bm_alpha1.jpg
deleted file mode 100644
index 35f6c4e0b3e502d9c61355a357cb548fedc40d74..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/PFm_bm_alpha1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/PFm_bm_alpha2.jpg b/src/res/images/receptor/PFm_bm_alpha2.jpg
deleted file mode 100644
index 16227676ca139d6166631f4a046c17989193029a..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/PFm_bm_alpha2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/PFm_bm_alpha4beta2.jpg b/src/res/images/receptor/PFm_bm_alpha4beta2.jpg
deleted file mode 100644
index 0a73c8e676fa2cc571ed281d08d024bd66bd3346..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/PFm_bm_alpha4beta2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/PFm_bm_kainate.jpg b/src/res/images/receptor/PFm_bm_kainate.jpg
deleted file mode 100644
index da3199e2465a1f9abadc5c9d144e557b659abafa..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/PFm_bm_kainate.jpg and /dev/null differ
diff --git a/src/res/images/receptor/PFm_bm_mGluR2_3.jpg b/src/res/images/receptor/PFm_bm_mGluR2_3.jpg
deleted file mode 100644
index c9bd51578d42e98a60e19425b19b881b20e3f059..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/PFm_bm_mGluR2_3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/hOc1_bm_5-HT1A.jpg b/src/res/images/receptor/hOc1_bm_5-HT1A.jpg
deleted file mode 100644
index 479249d5c22628e91c2d79170ff62097ed4c65e1..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/hOc1_bm_5-HT1A.jpg and /dev/null differ
diff --git a/src/res/images/receptor/hOc1_bm_5-HT2.jpg b/src/res/images/receptor/hOc1_bm_5-HT2.jpg
deleted file mode 100644
index 0727bd1a9fd8460ba0931cb409fae3e5d93f59aa..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/hOc1_bm_5-HT2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/hOc1_bm_AMPA.jpg b/src/res/images/receptor/hOc1_bm_AMPA.jpg
deleted file mode 100644
index 8d23515eb727ff7d76d362cd77c14681079827c8..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/hOc1_bm_AMPA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/hOc1_bm_BZ.jpg b/src/res/images/receptor/hOc1_bm_BZ.jpg
deleted file mode 100644
index 850643606b9fec4f00403af2f482bcd1e27ccd9e..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/hOc1_bm_BZ.jpg and /dev/null differ
diff --git a/src/res/images/receptor/hOc1_bm_D1.jpg b/src/res/images/receptor/hOc1_bm_D1.jpg
deleted file mode 100644
index 8dc16d2c9f2afc3a321e91722081ba7162cfd72d..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/hOc1_bm_D1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/hOc1_bm_GABAA.jpg b/src/res/images/receptor/hOc1_bm_GABAA.jpg
deleted file mode 100644
index c7e000215024cd574cfda507327224bd920e1ea3..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/hOc1_bm_GABAA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/hOc1_bm_GABAB.jpg b/src/res/images/receptor/hOc1_bm_GABAB.jpg
deleted file mode 100644
index cc25412664f2e54a52a50f8433a3c20ea6b5e9b0..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/hOc1_bm_GABAB.jpg and /dev/null differ
diff --git a/src/res/images/receptor/hOc1_bm_M1.jpg b/src/res/images/receptor/hOc1_bm_M1.jpg
deleted file mode 100644
index f8755085cedb23133278f183c3ae21cf19ce5af9..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/hOc1_bm_M1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/hOc1_bm_M2.jpg b/src/res/images/receptor/hOc1_bm_M2.jpg
deleted file mode 100644
index 2004941eb3f1a61cb3cb3cafd415ec86ef077626..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/hOc1_bm_M2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/hOc1_bm_M3.jpg b/src/res/images/receptor/hOc1_bm_M3.jpg
deleted file mode 100644
index 932cf273495e10a8f379841cafb5b4b82579f6ac..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/hOc1_bm_M3.jpg and /dev/null differ
diff --git a/src/res/images/receptor/hOc1_bm_NMDA.jpg b/src/res/images/receptor/hOc1_bm_NMDA.jpg
deleted file mode 100644
index 1a2eaae3a938ccb5040f50322c60acafb5bf1b59..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/hOc1_bm_NMDA.jpg and /dev/null differ
diff --git a/src/res/images/receptor/hOc1_bm_alpha1.jpg b/src/res/images/receptor/hOc1_bm_alpha1.jpg
deleted file mode 100644
index 35c7e0d1e9bc00f9e49f3cf5ef2004f3c11f4466..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/hOc1_bm_alpha1.jpg and /dev/null differ
diff --git a/src/res/images/receptor/hOc1_bm_alpha2.jpg b/src/res/images/receptor/hOc1_bm_alpha2.jpg
deleted file mode 100644
index e4f6c831bef92739d596c38407f30a24dd7cf4fe..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/hOc1_bm_alpha2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/hOc1_bm_alpha4beta2.jpg b/src/res/images/receptor/hOc1_bm_alpha4beta2.jpg
deleted file mode 100644
index a6eb35a38253746c5baa92b7877a6efb00b74589..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/hOc1_bm_alpha4beta2.jpg and /dev/null differ
diff --git a/src/res/images/receptor/hOc1_bm_kainate.jpg b/src/res/images/receptor/hOc1_bm_kainate.jpg
deleted file mode 100644
index 1fffb9bbb7f7008aa96c0ed8bc8f24b41c45c228..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/hOc1_bm_kainate.jpg and /dev/null differ
diff --git a/src/res/images/receptor/hOc1_bm_mGluR2_3.jpg b/src/res/images/receptor/hOc1_bm_mGluR2_3.jpg
deleted file mode 100644
index 0fdf35a547b81d41c65ac0c69008b813b98ff95b..0000000000000000000000000000000000000000
Binary files a/src/res/images/receptor/hOc1_bm_mGluR2_3.jpg and /dev/null differ
diff --git a/src/services/templateCoordinatesTransformation.service.ts b/src/services/templateCoordinatesTransformation.service.ts
index 2c6f4fce9048306566b50be5a0f14a25a27a5f9d..c9fcf3a9d5b191ecf9acc3b68890f06cfceb549c 100644
--- a/src/services/templateCoordinatesTransformation.service.ts
+++ b/src/services/templateCoordinatesTransformation.service.ts
@@ -2,6 +2,7 @@ import {Injectable} from "@angular/core";
 import {HttpClient, HttpHeaders, HttpErrorResponse} from "@angular/common/http";
 import { catchError, timeout, map } from "rxjs/operators";
 import { of, Observable } from "rxjs";
+import { environment } from 'src/environments/environment'
 
 export interface ITemplateCoordXformResp{
   status: 'pending' | 'error' | 'completed'
@@ -28,7 +29,7 @@ export class TemplateCoordinatesTransformation {
 
   constructor(private httpClient: HttpClient) {}
 
-  public url = `${SPATIAL_TRANSFORM_BACKEND.replace(/\/$/, '')}/v1/transform-points`
+  public url = `${environment.SPATIAL_TRANSFORM_BACKEND.replace(/\/$/, '')}/v1/transform-points`
 
   // jasmine marble cannot test promise properly
   // see https://github.com/ngrx/platform/issues/498#issuecomment-337465179
diff --git a/src/ui/cookieAgreement/cookieAgreement/cookieAgreement.component.ts b/src/ui/cookieAgreement/cookieAgreement/cookieAgreement.component.ts
index fe1643a45e2a5152199d7aea5211695183b44310..bc654d85be30e54db998a212d8d42d0254ee2c32 100644
--- a/src/ui/cookieAgreement/cookieAgreement/cookieAgreement.component.ts
+++ b/src/ui/cookieAgreement/cookieAgreement/cookieAgreement.component.ts
@@ -1,7 +1,12 @@
 import { ChangeDetectionStrategy, Component } from '@angular/core'
-import info from '!!raw-loader!../data/info.md'
-import readmore from '!!raw-loader!../data/readmore.md'
-import matomoInfo from '!!raw-loader!../data/aboutMatomo.md'
+import { environment } from 'src/environments/environment'
+
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const { default: info } = require('!!raw-loader!../data/info.md')
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const { default: readmore } = require('!!raw-loader!../data/readmore.md')
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const { default: matomoInfo } = require('!!raw-loader!../data/aboutMatomo.md')
 
 @Component({
   selector: 'cookie-agreement',
@@ -16,7 +21,7 @@ export class CookieAgreement {
   public showMore: boolean = false
   public showMamoto: boolean = false
 
-  public matomoUrl: string = MATOMO_URL
+  public matomoUrl: string = environment.MATOMO_URL
 
   public markdownInfo: string = info
   public markdownReadmore: string = readmore
diff --git a/src/ui/help/helpOnePager/helpOnePager.component.ts b/src/ui/help/helpOnePager/helpOnePager.component.ts
index 0e0cf92a6c9d4d936b9730947f95332916ca3f53..7f047318658a162397bb4d6c50133927a475c278 100644
--- a/src/ui/help/helpOnePager/helpOnePager.component.ts
+++ b/src/ui/help/helpOnePager/helpOnePager.component.ts
@@ -1,8 +1,10 @@
 import { Component, Optional } from "@angular/core";
-import QUICK_STARTER from '!!raw-loader!common/helpOnePager.md'
 import { PureContantService } from "src/util";
 import { ARIA_LABELS } from 'common/constants'
 
+// eslint-disable-next-line @typescript-eslint/no-var-requires
+const { default: QUICK_STARTER } = require('!!raw-loader!common/helpOnePager.md')
+
 @Component({
   selector: 'help-one-pager',
   templateUrl: './helpOnePager.template.html',
diff --git a/src/ui/layerbrowser/layerDetail/layerDetail.component.spec.ts b/src/ui/layerbrowser/layerDetail/layerDetail.component.spec.ts
index c73625850c028d68ff74a9aba2d64675607f8b8a..575f538b1b828342c9f290f37aab9bf2c2209556 100644
--- a/src/ui/layerbrowser/layerDetail/layerDetail.component.spec.ts
+++ b/src/ui/layerbrowser/layerDetail/layerDetail.component.spec.ts
@@ -112,10 +112,10 @@ describe('> layerDetail.component.ts', () => {
       })
   
       it('> on bind input, if input is truthy, calls get on layerService maps', () => {
-        const service = TestBed.inject(NgLayersService)
         TestBed.overrideProvider(VIEWER_INJECTION_TOKEN, {
           useValue: {}
         })
+        const service = TestBed.inject(NgLayersService)
         const {
           brightnessMapGetSpy,
           contractMapGetSpy,
diff --git a/src/ui/quickTour/quickTourComponent/quickTour.component.ts b/src/ui/quickTour/quickTourComponent/quickTour.component.ts
index 37c8dbb60827011899b04578f7eb6ddde51d382f..f6e2baaca910629a659240f9dcf94e975f2d4053 100644
--- a/src/ui/quickTour/quickTourComponent/quickTour.component.ts
+++ b/src/ui/quickTour/quickTourComponent/quickTour.component.ts
@@ -14,6 +14,7 @@ import { QuickTourThis } from "../quickTourThis.directive";
 import { clamp } from "src/util/generator";
 
 @Component({
+  selector: 'quick-tour-unit',
   templateUrl : './quickTour.template.html',
   styleUrls : [
     './quickTour.style.css'
diff --git a/src/ui/quickTour/quickTourComponent/quickTour.style.css b/src/ui/quickTour/quickTourComponent/quickTour.style.css
index cf9d9de0e4d057209c09d6ff5461d5a2844d9708..97f514e674ff2848a7b70d6267e08c53b2b53992 100644
--- a/src/ui/quickTour/quickTourComponent/quickTour.style.css
+++ b/src/ui/quickTour/quickTourComponent/quickTour.style.css
@@ -13,15 +13,6 @@ mat-card
   z-index: 10;
 }
 
-.custom-svg >>> svg
-{
-  pointer-events: none;
-  stroke-width: 3px;
-  stroke: rgb(255, 255, 255);
-  stroke-linecap: round;
-  stroke-linejoin: round;
-}
-
 .progress-dot
 {
   transition: opacity ease-in-out 300ms;
diff --git a/src/util/constants.ts b/src/util/constants.ts
index 7a8bb4a12b67fa82447a8d82749dc5d319489c87..03b462fb3e4573b084b2444b56805a3711e0d4e2 100644
--- a/src/util/constants.ts
+++ b/src/util/constants.ts
@@ -1,4 +1,5 @@
 import { HttpHeaders } from "@angular/common/http"
+import { environment } from 'src/environments/environment'
 
 export const LOCAL_STORAGE_CONST = {
   GPU_LIMIT: 'fzj.xg.iv.GPU_LIMIT',
@@ -14,8 +15,9 @@ export const LOCAL_STORAGE_CONST = {
 
 export const COOKIE_VERSION = '0.3.0'
 export const KG_TOS_VERSION = '0.3.0'
-export const DS_PREVIEW_URL = DATASET_PREVIEW_URL
+export const DS_PREVIEW_URL = environment.DATASET_PREVIEW_URL
 export const BACKENDURL = (() => {
+  const { BACKEND_URL } = environment
   if (!BACKEND_URL) return `http://localhost:3000/`
   if (/^http/.test(BACKEND_URL)) return BACKEND_URL
 
diff --git a/src/util/pureConstant.service.ts b/src/util/pureConstant.service.ts
index e3ff4e53e53f5919751e12cb7e80e961310340bf..7d83da94fbb3a2a31bb93bad4cc05a908a52f6c0 100644
--- a/src/util/pureConstant.service.ts
+++ b/src/util/pureConstant.service.ts
@@ -7,7 +7,7 @@ import { HttpClient } from "@angular/common/http";
 import { viewerStateFetchedTemplatesSelector, viewerStateSetFetchedAtlases } from "src/services/state/viewerState.store.helper";
 import { LoggingService } from "src/logging";
 import { viewerStateFetchedAtlasesSelector, viewerStateSelectedTemplateSelector } from "src/services/state/viewerState/selectors";
-import { BS_ENDPOINT } from "src/util/constants";
+import { BS_ENDPOINT, BACKENDURL } from "src/util/constants";
 import { flattenReducer } from 'common/util'
 import { TAtlas, TId, TParc, TRegion, TRegionDetail, TSpaceFull, TSpaceSummary } from "./siibraApiConstants/types";
 import { MultiDimMap, recursiveMutate } from "./fn";
@@ -178,7 +178,7 @@ Raise/track issues at github repo: <a target = "_blank" href = "${this.repoUrl}"
 
   private atlasParcSpcRegionMap = new MultiDimMap()
 
-  private _backendUrl = (BACKEND_URL && `${BACKEND_URL}/`.replace(/\/\/$/, '/')) || `${window.location.origin}${window.location.pathname}`
+  private _backendUrl = (BACKENDURL && `${BACKENDURL}/`.replace(/\/\/$/, '/')) || `${window.location.origin}${window.location.pathname}`
   get backendUrl() {
     console.warn(`something is using backendUrl`)
     return this._backendUrl
diff --git a/src/res/css/version.css b/src/version.css
similarity index 100%
rename from src/res/css/version.css
rename to src/version.css
diff --git a/src/viewerModule/nehuba/nehubaViewer/nehubaViewer.component.spec.ts b/src/viewerModule/nehuba/nehubaViewer/nehubaViewer.component.spec.ts
index f6b977efc20ceeccf1f729079e5308367a948bf5..304ef3b4b0b15be8061ffc4e614c1291e9aa07e9 100644
--- a/src/viewerModule/nehuba/nehubaViewer/nehubaViewer.component.spec.ts
+++ b/src/viewerModule/nehuba/nehubaViewer/nehubaViewer.component.spec.ts
@@ -96,13 +96,7 @@ describe('> nehubaViewer.component.ts', () => {
         providers:[
           {
             provide: IMPORT_NEHUBA_INJECT_TOKEN,
-            useFactory: importNehubaFactory,
-            deps: [ APPEND_SCRIPT_TOKEN ]
-          },
-          {
-            provide: APPEND_SCRIPT_TOKEN,
-            useFactory: appendScriptFactory,
-            deps: [ DOCUMENT ]
+            useValue: () => Promise.resolve(),
           },
           {
             provide: SET_MESHES_TO_LOAD,
@@ -185,8 +179,10 @@ describe('> nehubaViewer.component.ts', () => {
         it('> navtive loadMeshes method will not trigger loadMesh call',fakeAsync(() => {
 
           const fixture = TestBed.createComponent(NehubaViewerUnit)
+          fixture.detectChanges()
+          const setMeshToLoadSpy = jasmine.createSpy('setMeshesToLoad').and.returnValue(null)
           fixture.componentInstance.nehubaViewer = {
-            setMeshesToLoad: jasmine.createSpy('setMeshesToLoad').and.returnValue(null),
+            setMeshesToLoad: setMeshToLoadSpy,
             dispose: () => {}
           }
   
@@ -198,7 +194,7 @@ describe('> nehubaViewer.component.ts', () => {
             labelIndicies: [1,2,3]
           })
           tick(1000)
-          expect(fixture.componentInstance.nehubaViewer.setMeshesToLoad).not.toHaveBeenCalledWith([1,2,3], { name: 'foo-bar' })
+          expect(setMeshToLoadSpy).not.toHaveBeenCalledWith([1,2,3], { name: 'foo-bar' })
         }))
 
         it('> when injected obs emits, will trigger loadMesh call', fakeAsync(() => {
@@ -275,30 +271,37 @@ describe('> nehubaViewer.component.ts', () => {
           tick(640)
         }
         describe('> emits []', () => {
-          it('> call manage layers', fakeAsync(() => {
+          beforeEach(fakeAsync(() => {
             setup()
-            expect(managedLayersSpy).toHaveBeenCalled()
           }))
+          it('> call manage layers', () => {
+            expect(managedLayersSpy).toHaveBeenCalled() 
+          })
           it('> layers have visibility set off', fakeAsync(() => {
-            setup()
             expect(managedLayer.setVisible).toHaveBeenCalledWith(false)
           }))
         })
 
         describe('> emits ["something"]', () => {
-          it('> calls getLayerByname',fakeAsync(() => {
-            setup(['something'])
-            expect(layerManager.getLayerByName).toHaveBeenCalledWith('something')
-          }))
-
-          it('> if returns layer, expects setVisible to be called', fakeAsync(() => {
+          let layerSetVisibleSpy: jasmine.Spy
+          beforeEach(fakeAsync(() => {
+            layerSetVisibleSpy = jasmine.createSpy()
             const layer = {
-              setVisible: jasmine.createSpy()
+              setVisible: layerSetVisibleSpy
             }
             getLayerByNameSpy.and.returnValue(layer)
             setup(['something'])
-            expect(layer.setVisible).toHaveBeenCalledWith(true)
           }))
+          it('> calls getLayerByname', () => {
+            expect(layerManager.getLayerByName).toHaveBeenCalledWith('something')
+          })
+
+          it('> getLayerByNameSpy called', () => {
+            expect(getLayerByNameSpy).toHaveBeenCalled()
+          })
+          it('> if returns layer, expects setVisible to be called', () => {
+            expect(layerSetVisibleSpy).toHaveBeenCalledWith(true)
+          })
         })
       })
     })
@@ -313,7 +316,8 @@ describe('> nehubaViewer.component.ts', () => {
          * set nehubaViewer, since some methods check viewer is loaded
          */
          fixture.componentInstance.nehubaViewer = {
-           ngviewer: {}
+           ngviewer: {},
+           dispose: () => {}
          }
         fixture.detectChanges()
         prvSetCMSpy = spyOn<any>(fixture.componentInstance, 'setColorMap').and.callFake(() => {})
@@ -322,15 +326,21 @@ describe('> nehubaViewer.component.ts', () => {
       beforeEach(() => {
         provideSetColorObs = true
       })
-      it('> if obs does not emit, does not call setcolormap', fakeAsync(() => {
-        setup()
-        tick(320)
-        expect(prvSetCMSpy).not.toHaveBeenCalled()
-      }))
+      describe('> obs does not emit', () => {
+        beforeEach(fakeAsync(() => {
+          setup()
+          tick(320)
+        }))
+        it('> does not call set colormap', () => {
+          expect(prvSetCMSpy).not.toHaveBeenCalled()
+        })
+      })
 
       describe('> if obs does emit', () => {
-        it('> setcolormap gets called', fakeAsync(() => {
+        beforeEach(() => {
           setup()
+        })
+        it('> setcolormap gets called', fakeAsync(() => {
           setcolorMap$.next({
             'foo-bar': {
               1: { red: 100, green: 100, blue: 100 },
@@ -346,7 +356,6 @@ describe('> nehubaViewer.component.ts', () => {
         }))
 
         it('> call arg is as expected', fakeAsync(() => {
-          setup()
           setcolorMap$.next({
             'foo-bar': {
               1: { red: 100, green: 100, blue: 100 },
diff --git a/src/viewerModule/nehuba/nehubaViewer/nehubaViewer.component.ts b/src/viewerModule/nehuba/nehubaViewer/nehubaViewer.component.ts
index d6371324add9456c8600470a775a110490afa0e6..1d27731f97714e8000e71027ac174ab5473fb6de 100644
--- a/src/viewerModule/nehuba/nehubaViewer/nehubaViewer.component.ts
+++ b/src/viewerModule/nehuba/nehubaViewer/nehubaViewer.component.ts
@@ -413,12 +413,12 @@ export class NehubaViewerUnit implements OnInit, OnDestroy {
     const getCondition = (label: number) => `if(label > ${label - 0.1} && label < ${label + 0.1} ){${FRAGMENT_EMIT_RED}}`
     const newShader = `void main(){ ${labels.map(getCondition).join('else ')}else {${FRAGMENT_EMIT_WHITE}} }`
     if (!this.nehubaViewer) {
-      if (!PRODUCTION) { this.log.warn('setting special landmark selection changed failed ... nehubaViewer is not yet defined') }
+      this.log.warn('setting special landmark selection changed failed ... nehubaViewer is not yet defined')
       return
     }
     const landmarkLayer = this.nehubaViewer.ngviewer.layerManager.getLayerByName(NG_LANDMARK_LAYER_NAME)
     if (!landmarkLayer) {
-      if (!PRODUCTION) { this.log.warn('landmark layer could not be found ... will not update colour map') }
+      this.log.warn('landmark layer could not be found ... will not update colour map')
       return
     }
     if (labels.length === 0) {
diff --git a/src/viewerModule/nehuba/nehubaViewerGlue/nehubaViewerGlue.component.spec.ts b/src/viewerModule/nehuba/nehubaViewerGlue/nehubaViewerGlue.component.spec.ts
index 74176bf7d66e14e882fdba09ec35fc4b5a191db6..4e8ae068075c800928818704d06cadd611d03439 100644
--- a/src/viewerModule/nehuba/nehubaViewerGlue/nehubaViewerGlue.component.spec.ts
+++ b/src/viewerModule/nehuba/nehubaViewerGlue/nehubaViewerGlue.component.spec.ts
@@ -1,9 +1,9 @@
 import { CommonModule } from "@angular/common"
 import { Component, Directive } from "@angular/core"
-import { async, ComponentFixture, TestBed } from "@angular/core/testing"
+import { ComponentFixture, TestBed } from "@angular/core/testing"
 import { FormsModule, ReactiveFormsModule } from "@angular/forms"
 import { MockStore, provideMockStore } from "@ngrx/store/testing"
-import { NEVER, of, Subject } from "rxjs"
+import { NEVER, Subject } from "rxjs"
 import { ComponentsModule } from "src/components"
 import { ClickInterceptorService } from "src/glue"
 import { LayoutModule } from "src/layouts/layout.module"
@@ -25,6 +25,8 @@ import { selectorAuxMeshes } from "../store"
 import { TouchSideClass } from "../touchSideClass.directive"
 import { NehubaGlueCmp } from "./nehubaViewerGlue.component"
 import { HarnessLoader } from "@angular/cdk/testing"
+import { NehubaModule } from "../module"
+import { NEHUBA_VIEWER_FEATURE_KEY } from "../constants"
 
 
 @Component({
@@ -68,6 +70,7 @@ describe('> nehubaViewerGlue.component.ts', () => {
         WindowResizeModule,
         FormsModule,
         ReactiveFormsModule,
+        // NehubaModule,
       ],
       declarations: [
         NehubaGlueCmp,
diff --git a/src/viewerModule/viewerCmp/viewerCmp.component.spec.ts b/src/viewerModule/viewerCmp/viewerCmp.component.spec.ts
index dba48dfcf41e1ed1a47ac8fc1502663c0026c81c..c67f26f8dcb0be058be3f01c97138a0371dfc4d6 100644
--- a/src/viewerModule/viewerCmp/viewerCmp.component.spec.ts
+++ b/src/viewerModule/viewerCmp/viewerCmp.component.spec.ts
@@ -87,7 +87,7 @@ describe('> viewerCmp.component.ts', () => {
       // and that null is not emitted
       it('> returns as expected', () => {
         expect(returnVal).toBeObservable(
-          hot('b', {
+          hot('(ab)', {
             a: null,
             b: {
               ...mockRegion,
@@ -107,7 +107,7 @@ describe('> viewerCmp.component.ts', () => {
       it('> if getRegionDetail throws, at least return original region', () => {
         getRegionDetailSpy.and.callFake(() => throwError('blabla'))
         expect(returnVal).toBeObservable(
-          hot('b', {
+          hot('(ab)', {
             a: null,
             b: mockRegion
           })
diff --git a/src/viewerModule/viewerCmp/viewerCmp.style.css b/src/viewerModule/viewerCmp/viewerCmp.style.css
index 2f8a5085ce35e8cf8382f3d1ef01b626b14eb5fe..735eba1520dca238a3688a96a4e35bbe68e14332 100644
--- a/src/viewerModule/viewerCmp/viewerCmp.style.css
+++ b/src/viewerModule/viewerCmp/viewerCmp.style.css
@@ -41,11 +41,6 @@
   bottom: 0.5rem;
 }
 
-:host >>> .mat-chip-list-wrapper
-{
-  flex-wrap: nowrap;
-}
-
 mat-drawer
 {
   overflow-x: hidden;
diff --git a/tsconfig.json b/tsconfig.json
index 15a0003e484369a70d602ca95fa1c95174849205..99482118bf1420f2acbd875d83eba79992a3b08c 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,7 +4,7 @@
     "emitDecoratorMetadata": true,
     "moduleResolution": "node",
     "module": "esnext",
-    "target": "es2015",
+    "target": "es2020",
     "sourceMap": false,
     "baseUrl": ".",
     "paths": {
diff --git a/typings/index.d.ts b/typings/index.d.ts
index f61544924774ac285111e8c571eab5d4b659094a..9ce1e1033a926ab3fd052034deb71c3f9a84b552 100644
--- a/typings/index.d.ts
+++ b/typings/index.d.ts
@@ -10,13 +10,7 @@ declare module '*.css' {
 
 declare module '*.md'
 
-declare var VERSION : string
-declare var PRODUCTION: boolean
-declare var BACKEND_URL: string
-declare var DATASET_PREVIEW_URL: string
-declare var BS_REST_URL: string
-declare var MATOMO_URL: string
-declare var MATOMO_ID: string
-declare var STRICT_LOCAL: boolean
-declare var KIOSK_MODE: boolean
-declare var SPATIAL_TRANSFORM_BACKEND: string
+// declare module '!!raw-loader!*' {
+//   const contents: string;
+//   export = contents;
+// }
diff --git a/webpack/webpack.aot-common.js b/webpack/webpack.aot-common.js
deleted file mode 100644
index 3cff3bcc1f16439e218094165d762af1003718a8..0000000000000000000000000000000000000000
--- a/webpack/webpack.aot-common.js
+++ /dev/null
@@ -1,68 +0,0 @@
-const webpack = require('webpack')
-const path = require('path')
-const HtmlWebpackPlugin = require('html-webpack-plugin')
-const merge = require('webpack-merge')
-const staticAssets = require('./webpack.staticassets')
-
-const commonAot = {
-  module: {
-    rules: [
-      {
-        test : /third_party.*?\.js$|worker\.js|worker-\w+\.js/,
-        use : {
-          loader : 'file-loader',
-          options: {
-            name : '[name].[ext]'
-          }
-        }
-      },
-      {
-        // test: /(?:\.ngfactory\.js|\.ngstyle\.js|\.ts)$/,
-        test: /\.ts$/,
-        loader: '@ngtools/webpack',
-        exclude : /third_party|plugin_example|spec\.ts|test\.ts/
-      },
-      {
-        test : /\.(html|css)$/,
-        exclude : /export\_nehuba|index|res\/css|plugin_example|material\/prebuilt-themes/,
-        use : {
-          loader : 'raw-loader',
-        }
-      },
-      {
-        test : /res\/css.*?css$/,
-        use : {
-          loader : 'file-loader',
-          options : {
-            name : '[name].[ext]'
-          }
-        }
-      }
-    ]
-  },
-  plugins : [
-    new HtmlWebpackPlugin({
-      template : 'src/index.html'
-    }),
-    new webpack.DefinePlugin({
-      // TODO have to figure out how to set this properly
-      // needed to avoid inline eval
-      // shouldn't mode: 'production' do that already?
-      ngDevMode: false,
-      ngJitMode: false
-    })
-  ],
-  resolve : {
-    extensions : [
-      '.ts',
-      '.js',
-      '.json'
-    ],
-    alias : {
-      "third_party" : path.resolve(__dirname, '../third_party'),
-      "src" : path.resolve(__dirname, '../src')
-    }
-  }
-}
-
-module.exports = merge(staticAssets, commonAot)
\ No newline at end of file
diff --git a/webpack/webpack.aot.js b/webpack/webpack.aot.js
deleted file mode 100644
index f283f84473616846b11dc1801de3f301b619bb34..0000000000000000000000000000000000000000
--- a/webpack/webpack.aot.js
+++ /dev/null
@@ -1,6 +0,0 @@
-const merge = require('webpack-merge')
-const aotCommon = require('./webpack.aot-common')
-const inputOutput = require('./webpack.entry-output')
-module.exports = merge(inputOutput, aotCommon, {
-  mode: 'production',
-})
diff --git a/webpack/webpack.common.js b/webpack/webpack.common.js
deleted file mode 100644
index 1896b962e2e3a588987c31ddaaf02a997693859d..0000000000000000000000000000000000000000
--- a/webpack/webpack.common.js
+++ /dev/null
@@ -1,30 +0,0 @@
-const webpack = require('webpack')
-const path = require('path')
-
-module.exports = {
-  module : {
-    rules : [
-      {
-        test : /\.ts$/,
-        loaders : ['ts-loader','angular2-template-loader?keepUrl=true'],
-        exclude : /node_modules|[Ss]pec\.ts$/
-      },
-    ]
-  },
-  plugins : [
-    new webpack.ContextReplacementPlugin(/@angular(\\|\/)core(\\|\/)/,path.join(__dirname, '../src'))
-  ],
-  resolve : {
-    extensions : [
-      '.ts',
-      '.js',
-      '.json'
-    ],
-    alias : {
-      "third_party" : path.resolve(__dirname, '../third_party'),
-      "src" : path.resolve(__dirname, '../src'),
-      "common": path.resolve(__dirname, '../common'),
-      "spec": path.resolve(__dirname, '../spec')
-    }
-  },
-}
\ No newline at end of file
diff --git a/webpack/webpack.dev-aot.js b/webpack/webpack.dev-aot.js
deleted file mode 100644
index c04cc954db94b630fa0fa20bf501bbcade50125f..0000000000000000000000000000000000000000
--- a/webpack/webpack.dev-aot.js
+++ /dev/null
@@ -1,12 +0,0 @@
-const merge = require('webpack-merge')
-const aotCommon = require('./webpack.aot-common')
-const path = require('path')
-const inputOutput = require('./webpack.entry-output')
-
-module.exports = merge(inputOutput, aotCommon, {
-  mode: 'development',
-  devtool:'source-map',
-  devServer: {
-    contentBase: path.join(__dirname, '../dist/aot/')
-  }
-})
diff --git a/webpack/webpack.dev.js b/webpack/webpack.dev.js
deleted file mode 100644
index 2a4fcf203ea57027ecfc6f8c5e0b3ccdb58453cd..0000000000000000000000000000000000000000
--- a/webpack/webpack.dev.js
+++ /dev/null
@@ -1,29 +0,0 @@
-const common = require('./webpack.common.js')
-const merge = require('webpack-merge')
-const path = require('path')
-const ngAssets = require('./webpack.ngassets')
-const staticAssets = require('./webpack.staticassets')
-const HtmlWebpackPlugin = require('html-webpack-plugin')
-
-module.exports = merge(common,ngAssets,staticAssets,{
-  entry : {
-    main : './src/main.ts'
-  },
-  mode : 'development',
-  output : {
-    filename : '[name].js',
-    path : path.resolve(__dirname,'../dist/dev')
-  },
-  devtool:'source-map',
-
-  plugins : [
-    new HtmlWebpackPlugin({
-      template : 'src/index.html'
-    })
-  ],
-  devServer: {
-    headers: {
-      'Referrer-Policy': 'origin-when-cross-origin'
-    }
-  }
-})
\ No newline at end of file
diff --git a/webpack/webpack.entry-output.js b/webpack/webpack.entry-output.js
deleted file mode 100644
index 724913798492d58541b34c110f4685623921bb74..0000000000000000000000000000000000000000
--- a/webpack/webpack.entry-output.js
+++ /dev/null
@@ -1,75 +0,0 @@
-const path = require('path')
-
-const compileQuickOnePager = async () => {
-
-  const TITLE = 'Interactive Atlas Viewer Quickstart'
-
-  const showdown = require('showdown')
-  
-  const fs = require('fs')
-  const { promisify } = require('util')
-  const asyncReadfile = promisify(fs.readFile)
-  
-  const mdConverter = new showdown.Converter({
-    tables: true
-  })
-  
-  const pathToMd = path.join(__dirname, '../common/helpOnePager.md')
-  const mdData = await asyncReadfile(pathToMd, 'utf-8')
-  return `
-<!DOCTYPE html>
-<html lang="en">
-<head>
-  <meta charset="UTF-8">
-  <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
-  <script src="https://unpkg.com/dompurify@latest/dist/purify.min.js"></script>
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>${TITLE}</title>
-</head>
-<body class="p-4">
-  
-</body>
-<script>
-(() => {
-  const dirty = \`${mdConverter.makeHtml(mdData).replace(/\`/g, '\\`')}\`
-  const clean = DOMPurify.sanitize(dirty)
-  document.body.innerHTML = clean
-})()
-</script>
-</html>
-`
-}
-
-const outputPath = path.resolve(__dirname,'../dist/aot')
-
-compileQuickOnePager()
-  .then(html => {
-    const fs = require('fs')
-    const { execSync } = require('child_process')
-    const { promisify } = require('util')
-    const asyncWrite = promisify(fs.writeFile)
-    execSync(`mkdir -p ${outputPath}`)
-    return asyncWrite(path.join(outputPath, 'quickstart.html'), html, 'utf-8')
-  })
-  .catch(e => {
-    console.warn(e)
-  })
-
-const { AngularWebpackPlugin } = require('@ngtools/webpack')
-
-module.exports = {
-  entry: {
-    main: './src/main-aot.ts'
-  },
-  output : {
-    filename : '[name].js',
-    path : outputPath
-  },
-  plugins: [
-    new AngularWebpackPlugin({
-      tsConfigPath: 'tsconfig.app.json',
-      // entryModule: 'src/main.module#MainModule',
-      directTemplateLoading: true
-    }),
-  ]
-}
\ No newline at end of file
diff --git a/webpack/webpack.export.js b/webpack/webpack.export.js
deleted file mode 100644
index 1276bc1b5a12de4d22e98f5f17ffed32c6a38c25..0000000000000000000000000000000000000000
--- a/webpack/webpack.export.js
+++ /dev/null
@@ -1,28 +0,0 @@
-const merge = require('webpack-merge')
-const common = require('./webpack.common.js')
-const ngAssets = require('./webpack.ngassets')
-const path = require('path')
-const ClosureCompilerPlugin = require('webpack-closure-compiler')
-const HtmlWebpackPlugin = require('html-webpack-plugin')
-
-module.exports = merge(common,ngAssets,{
-  entry : './src/atlasViewerExports/main.export.ts',
-  mode : 'development',
-  output : {
-    filename : 'export.js',
-    path : path.resolve(__dirname,'../dist/export')
-  },
-  devtool:'source-map',
-  plugins : [
-    // new ClosureCompilerPlugin({
-    //   compiler : {
-    //     compilation_level : 'SIMPLE'
-    //   },
-    //   concurrency : 4
-    // }),
-
-    new HtmlWebpackPlugin({
-      template : './src/atlasViewerExports/export.html'
-    })
-  ]
-})
\ No newline at end of file
diff --git a/webpack/webpack.export.min.js b/webpack/webpack.export.min.js
deleted file mode 100644
index deefdbceeb145418c988df256b4fb85606dd4e7a..0000000000000000000000000000000000000000
--- a/webpack/webpack.export.min.js
+++ /dev/null
@@ -1,26 +0,0 @@
-const merge = require('webpack-merge')
-const common = require('./webpack.common.js')
-const ngAssets = require('./webpack.ngassets')
-const path = require('path')
-const ClosureCompilerPlugin = require('webpack-closure-compiler')
-const HtmlWebpackPlugin = require('html-webpack-plugin')
-
-module.exports = merge(common,ngAssets,{
-  entry : './src/atlasViewerExports/main.export.ts',
-  output : {
-    filename : 'export.js',
-    path : path.resolve(__dirname,'../dist/export-min')
-  },
-  plugins : [
-    new ClosureCompilerPlugin({
-      compiler : {
-        compilation_level : 'SIMPLE'
-      },
-      concurrency : 4
-    }),
-
-    new HtmlWebpackPlugin({
-      template : './src/atlasViewerExports/export.html'
-    })
-  ]
-})
\ No newline at end of file
diff --git a/webpack/webpack.ngassets.js b/webpack/webpack.ngassets.js
deleted file mode 100644
index de3c6bfd3608b77d072a9ea64aa06b39282f8ae0..0000000000000000000000000000000000000000
--- a/webpack/webpack.ngassets.js
+++ /dev/null
@@ -1,16 +0,0 @@
-module.exports = {
-  module : {
-    rules : [
-      {
-        test : /(html|css)$/,
-        exclude : /export\_nehuba|index|plugin\_examples|indigo-pink\.css/,
-        use : {
-          loader : 'file-loader',
-          options : {
-            name : '[name].[ext]'
-          }
-        }
-      }
-    ]
-  }
-}
\ No newline at end of file
diff --git a/webpack/webpack.prod.js b/webpack/webpack.prod.js
deleted file mode 100644
index 63e48c203bc1c9f34c1b540ec6e3060517e67955..0000000000000000000000000000000000000000
--- a/webpack/webpack.prod.js
+++ /dev/null
@@ -1,27 +0,0 @@
-const common = require('./webpack.common.js')
-const merge = require('webpack-merge')
-const path = require('path')
-const ClosureCompilerPlugin = require('webpack-closure-compiler')
-const ngAssets = require('./webpack.ngassets')
-const staticAssets = require('./webpack.staticassets')
-const HtmlWebpackPlugin = require('html-webpack-plugin')
-
-module.exports = merge(common,ngAssets,staticAssets,{
-  entry : './src/main.ts',
-  output : {
-    filename : 'main.js',
-    path : path.resolve(__dirname,'../dist/prod')
-  },
-  plugins : [
-    new ClosureCompilerPlugin({
-      compiler : {
-        compilation_level : 'SIMPLE'
-      },
-      concurrency : 4
-    }),
-
-    new HtmlWebpackPlugin({
-      template : 'src/index.html'
-    })
-  ]
-})
\ No newline at end of file
diff --git a/webpack/webpack.staticassets.js b/webpack/webpack.staticassets.js
deleted file mode 100644
index a5d7ef3eeb12982fcb10716bf747027327e11e1b..0000000000000000000000000000000000000000
--- a/webpack/webpack.staticassets.js
+++ /dev/null
@@ -1,87 +0,0 @@
-const webpack = require('webpack')
-const MiniCssExtractPlugin = require('mini-css-extract-plugin')
-
-module.exports = {
-  module : {
-    rules : [
-      {
-        test: /\.scss$/,
-        use: [
-          {
-            loader: MiniCssExtractPlugin.loader
-          },
-          'css-loader',
-          'sass-loader'
-        ]
-      },
-      {
-        test : /\.jpg$|\.png$|\.svg$/,
-        exclude : /export\_nehuba|index/,
-        use : {
-          loader : 'file-loader',
-          options : {
-            name : 'res/image/[name].[ext]'
-          }
-        }
-      },
-      {
-        type : 'javascript/auto',
-        test : /ext.*?\.json/,
-        exclude : /plugin_examples/,
-        use : [{
-          loader : 'file-loader',
-          options : {
-            name (resourcePath, resourceQuery) {
-              const appendAtlas = /res\/ext\/atlas\//.test(resourcePath)
-              return `${appendAtlas ? 'atlas/' : ''}[name].[ext]`
-            },
-            outputPath : 'res/json'
-          }
-        }]
-      },
-      {
-        type : 'javascript/auto',
-        test : /plugin_examples/,
-        use : [{
-          loader : 'file-loader',
-          options : {
-            name : '[path][name].[ext]',
-            outputPath : 'res',
-            context : 'src'
-          }
-        }]
-      }
-    ]
-  },
-  plugins : [
-    new MiniCssExtractPlugin({
-      filename: 'theme.css'
-    }),
-    new webpack.DefinePlugin({
-
-      VERSION: process.env.VERSION
-        ? JSON.stringify(process.env.VERSION)
-        : process.env.GIT_HASH
-          ? JSON.stringify(process.env.GIT_HASH)
-          : JSON.stringify('unspecificied hash'),
-      PRODUCTION: !!process.env.PRODUCTION,
-      BACKEND_URL: (process.env.BACKEND_URL && JSON.stringify(process.env.BACKEND_URL)) || 'null',
-      DATASET_PREVIEW_URL: JSON.stringify(process.env.DATASET_PREVIEW_URL || 'https://hbp-kg-dataset-previewer.apps.hbp.eu/v2'),
-      BS_REST_URL: JSON.stringify(process.env.BS_REST_URL || 'https://siibra-api-latest.apps-dev.hbp.eu/v1_0'),
-      SPATIAL_TRANSFORM_BACKEND: JSON.stringify(process.env.SPATIAL_TRANSFORM_BACKEND || 'https://hbp-spatial-backend.apps.hbp.eu'),
-      MATOMO_URL: JSON.stringify(process.env.MATOMO_URL || null),
-      MATOMO_ID: JSON.stringify(process.env.MATOMO_ID || null),
-
-      // strick local hides "explore" and "download" btns, which requires internet
-      STRICT_LOCAL: process.env.STRICT_LOCAL === 'true' ? 'true' : 'false',
-
-      // invite user to touch/interact after 5 min of inactivity
-      KIOSK_MODE: process.env.KIOSK_MODE === 'true' ? 'true' : 'false',
-    })
-  ],
-  resolve: {
-    extensions: [
-      '.scss'
-    ]
-  }
-}
diff --git a/webpack/webpack.test.js b/webpack/webpack.test.js
deleted file mode 100644
index 971e133e612a7a68a769ea79d16a2e9de4058a63..0000000000000000000000000000000000000000
--- a/webpack/webpack.test.js
+++ /dev/null
@@ -1,12 +0,0 @@
-module.exports = {
-  module : {
-    rules : [{
-      test: /spec\.ts$/,
-      loader : 'ts-loader',
-      exclude : /node_modules|third_party/
-    }]
-  },
-  resolve:{
-    extensions: ['.js','.ts']
-  }
-}
\ No newline at end of file
diff --git a/worker/worker.js b/worker/worker.js
index 2c73c75676964ed3df742e9d412aa329badc4258..ef24f040c13260bc6fd9183a8376e9b326f52539 100644
--- a/worker/worker.js
+++ b/worker/worker.js
@@ -229,6 +229,8 @@ const getuserLandmarksVtk = (action) => {
 let plotyVtkUrl
 
 onmessage = (message) => {
+  // in dev environment, webpack ok is sent
+  if (message.data.type === 'webpackOk') return
 
   if (message.data.method && VALID_METHODS.indexOf(message.data.method) >= 0) {
     const { id } = message.data