diff --git a/.gitignore b/.gitignore
index 0a3b7f8735c7d35dc3f41e205ef535385079078e..202483f20b4c9c40df2adaae5ca2e5e127fbd198 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,10 @@
 build/
+lib/
 
 node_modules/
 debug.log
 npm-debug.log
+tsconfig.tsbuildinfo
 
 *.sublime-workspace
 .idea
diff --git a/package.json b/package.json
index 6b9b892807e53451b820a0c0144989a84a168838..f47f69c03e1099b596416415df5042401241b3be 100644
--- a/package.json
+++ b/package.json
@@ -13,15 +13,15 @@
   "scripts": {
     "lint": "tslint src/**/*.ts",
     "test": "npm run lint && jest",
-    "build": "cpx \"src/**/*.{scss,woff,woff2,ttf,otf,eot,svg,html,gql}\" build/src/ && tsc -b",
+    "build": "cpx \"src/**/*.{scss,woff,woff2,ttf,otf,eot,svg,html,gql}\" lib/ && tsc -b",
     "postinstall": "npm run build",
     "watch": "concurrently --kill-others \"npm:watch-ts\" \"npm:watch-extra\" \"npm:watch-webpack\"",
     "watch-ts": "tsc -watch",
-    "watch-extra": "cpx \"src/**/*.{scss,woff,woff2,ttf,otf,eot,svg,html,gql}\" build/src/ --watch",
+    "watch-extra": "cpx \"src/**/*.{scss,woff,woff2,ttf,otf,eot,svg,html,gql}\" lib/ --watch",
     "build-webpack": "webpack --mode production",
     "watch-webpack": "webpack -w --mode development --display minimal",
-    "model-server": "node build/src/servers/model/server.js",
-    "model-server-watch": "nodemon --watch build/src build/src/servers/model/server.js"
+    "model-server": "node lib/servers/model/server.js",
+    "model-server-watch": "nodemon --watch lib lib/servers/model/server.js"
   },
   "nodemonConfig": {
     "ignoreRoot": [
@@ -41,29 +41,9 @@
     },
     "moduleDirectories": [
       "node_modules",
-      "build/src"
+      "lib"
     ],
     "testURL": "http://localhost/",
-    "moduleNameMapper": {
-      "mol-app($|/.*)": "<rootDir>/src/mol-app$1",
-      "mol-data($|/.*)": "<rootDir>/src/mol-data$1",
-      "mol-geo($|/.*)": "<rootDir>/src/mol-geo$1",
-      "mol-gl($|/.*)": "<rootDir>/src/mol-gl$1",
-      "mol-io($|/.*)": "<rootDir>/src/mol-io$1",
-      "mol-math($|/.*)": "<rootDir>/src/mol-math$1",
-      "mol-model($|/.*)": "<rootDir>/src/mol-model$1",
-      "mol-model-props($|/.*)": "<rootDir>/src/mol-model-props$1",
-      "mol-model-formats($|/.*)": "<rootDir>/src/mol-model-formats$1",
-      "mol-plugin($|/.*)": "<rootDir>/src/mol-plugin$1",
-      "mol-ql($|/.*)": "<rootDir>/src/mol-ql$1",
-      "mol-repr($|/.*)": "<rootDir>/src/mol-repr$1",
-      "mol-script($|/.*)": "<rootDir>/src/mol-script$1",
-      "mol-state($|/.*)": "<rootDir>/src/mol-state$1",
-      "mol-task($|/.*)": "<rootDir>/src/mol-task$1",
-      "mol-theme($|/.*)": "<rootDir>/src/mol-theme$1",
-      "mol-util($|/.*)": "<rootDir>/src/mol-util$1",
-      "mol-canvas3d($|/.*)": "<rootDir>/src/mol-canvas3d$1"
-    },
     "testRegex": "\\.spec\\.ts$"
   },
   "author": "Mol* Contributors",
diff --git a/src/apps/basic-wrapper/coloring.ts b/src/apps/basic-wrapper/coloring.ts
index 54c89117c7f78c5209364fab76dcd1d35f3f7599..ccad3798fadc71446dedc2cf435d5e15698a46d2 100644
--- a/src/apps/basic-wrapper/coloring.ts
+++ b/src/apps/basic-wrapper/coloring.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { CustomElementProperty } from 'mol-model-props/common/custom-element-property';
-import { Model, ElementIndex } from 'mol-model/structure';
-import { Color } from 'mol-util/color';
+import { CustomElementProperty } from '../../mol-model-props/common/custom-element-property';
+import { Model, ElementIndex } from '../../mol-model/structure';
+import { Color } from '../../mol-util/color';
 
 export const StripedResidues = CustomElementProperty.create<number>({
     isStatic: true,
diff --git a/src/apps/basic-wrapper/controls.tsx b/src/apps/basic-wrapper/controls.tsx
index e3b144fd9deae3808d82ce56c3554b4d530c0b11..d7b678f29e13f5b2644978d344d27ff3c2e4026a 100644
--- a/src/apps/basic-wrapper/controls.tsx
+++ b/src/apps/basic-wrapper/controls.tsx
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { PluginUIComponent } from 'mol-plugin/ui/base';
+import { PluginUIComponent } from '../../mol-plugin/ui/base';
 import * as React from 'react';
-import { TransformUpdaterControl } from 'mol-plugin/ui/state/update-transform';
+import { TransformUpdaterControl } from '../../mol-plugin/ui/state/update-transform';
 
 export class BasicWrapperControls extends PluginUIComponent {
 
diff --git a/src/apps/basic-wrapper/helpers.ts b/src/apps/basic-wrapper/helpers.ts
index 342325ee87e6abca504e1e7be3e018d1acc0f9a7..f888876e342a9f3344825fcc57e7856370bc6003 100644
--- a/src/apps/basic-wrapper/helpers.ts
+++ b/src/apps/basic-wrapper/helpers.ts
@@ -4,15 +4,15 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Mat4, Vec3 } from 'mol-math/linear-algebra';
-import { PluginContext } from 'mol-plugin/context';
-import { PluginStateObject as PSO } from 'mol-plugin/state/objects';
-import { StateTransforms } from 'mol-plugin/state/transforms';
-import { StructureRepresentation3DHelpers } from 'mol-plugin/state/transforms/representation';
-import { MolScriptBuilder as MS } from 'mol-script/language/builder';
-import { StateBuilder } from 'mol-state';
-import Expression from 'mol-script/language/expression';
-import { BuiltInColorThemeName } from 'mol-theme/color';
+import { Mat4, Vec3 } from '../../mol-math/linear-algebra';
+import { PluginContext } from '../../mol-plugin/context';
+import { PluginStateObject as PSO } from '../../mol-plugin/state/objects';
+import { StateTransforms } from '../../mol-plugin/state/transforms';
+import { StructureRepresentation3DHelpers } from '../../mol-plugin/state/transforms/representation';
+import { MolScriptBuilder as MS } from '../../mol-script/language/builder';
+import { StateBuilder } from '../../mol-state';
+import Expression from '../../mol-script/language/expression';
+import { BuiltInColorThemeName } from '../../mol-theme/color';
 type SupportedFormats = 'cif' | 'pdb'
 
 export namespace StateHelper {
diff --git a/src/apps/basic-wrapper/index.ts b/src/apps/basic-wrapper/index.ts
index 3520372ac8610ce0941c8138accb15731126e4c6..4629abcf45c4a15cc44e56979a266eb4549cdacc 100644
--- a/src/apps/basic-wrapper/index.ts
+++ b/src/apps/basic-wrapper/index.ts
@@ -4,16 +4,16 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { createPlugin, DefaultPluginSpec } from 'mol-plugin';
+import { createPlugin, DefaultPluginSpec } from '../../mol-plugin';
 import './index.html'
-import { PluginContext } from 'mol-plugin/context';
-import { PluginCommands } from 'mol-plugin/command';
-import { StateTransforms } from 'mol-plugin/state/transforms';
-import { StructureRepresentation3DHelpers } from 'mol-plugin/state/transforms/representation';
-import { Color } from 'mol-util/color';
-import { PluginStateObject as PSO } from 'mol-plugin/state/objects';
-import { AnimateModelIndex } from 'mol-plugin/state/animation/built-in';
-import { StateBuilder, StateTransform } from 'mol-state';
+import { PluginContext } from '../../mol-plugin/context';
+import { PluginCommands } from '../../mol-plugin/command';
+import { StateTransforms } from '../../mol-plugin/state/transforms';
+import { StructureRepresentation3DHelpers } from '../../mol-plugin/state/transforms/representation';
+import { Color } from '../../mol-util/color';
+import { PluginStateObject as PSO } from '../../mol-plugin/state/objects';
+import { AnimateModelIndex } from '../../mol-plugin/state/animation/built-in';
+import { StateBuilder, StateTransform } from '../../mol-state';
 import { StripedResidues } from './coloring';
 // import { BasicWrapperControls } from './controls';
 import { StaticSuperpositionTestData, buildStaticSuperposition, dynamicSuperpositionTest } from './superposition';
diff --git a/src/apps/basic-wrapper/superposition.ts b/src/apps/basic-wrapper/superposition.ts
index c2b190603746e2c6df06641baa2dfcceeee8f6d1..b18e62435a2c6ad26e957897973cba4c0932d8ee 100644
--- a/src/apps/basic-wrapper/superposition.ts
+++ b/src/apps/basic-wrapper/superposition.ts
@@ -6,17 +6,17 @@
 
 // TODO: move to an "example"
 
-import { PluginContext } from 'mol-plugin/context';
-import { Mat4 } from 'mol-math/linear-algebra';
+import { PluginContext } from '../../mol-plugin/context';
+import { Mat4 } from '../../mol-math/linear-algebra';
 import { StateHelper } from './helpers';
-import { PluginCommands } from 'mol-plugin/command';
-import { StateSelection, StateBuilder } from 'mol-state';
-import { PluginStateObject as PSO } from 'mol-plugin/state/objects';
-import { MolScriptBuilder as MS } from 'mol-script/language/builder';
-import { compile } from 'mol-script/runtime/query/compiler';
-import { StructureSelection, QueryContext } from 'mol-model/structure';
-import { superposeStructures } from 'mol-model/structure/structure/util/superposition';
-import Expression from 'mol-script/language/expression';
+import { PluginCommands } from '../../mol-plugin/command';
+import { StateSelection, StateBuilder } from '../../mol-state';
+import { PluginStateObject as PSO } from '../../mol-plugin/state/objects';
+import { MolScriptBuilder as MS } from '../../mol-script/language/builder';
+import { compile } from '../../mol-script/runtime/query/compiler';
+import { StructureSelection, QueryContext } from '../../mol-model/structure';
+import { superposeStructures } from '../../mol-model/structure/structure/util/superposition';
+import Expression from '../../mol-script/language/expression';
 
 export type SuperpositionTestInput = {
     pdbId: string,
diff --git a/src/apps/chem-comp-bond/create-table.ts b/src/apps/chem-comp-bond/create-table.ts
index 28dc5000fc972af9ced1ef12f1205c068006eaf4..cc29af24a60f6490751d22ec1b4101d68cb3665e 100644
--- a/src/apps/chem-comp-bond/create-table.ts
+++ b/src/apps/chem-comp-bond/create-table.ts
@@ -14,13 +14,13 @@ require('util.promisify').shim()
 const readFile = util.promisify(fs.readFile)
 const writeFile = util.promisify(fs.writeFile)
 
-import { Progress } from 'mol-task'
-import { Database, Table, DatabaseCollection, Column } from 'mol-data/db'
-import CIF from 'mol-io/reader/cif'
-import { CifWriter } from 'mol-io/writer/cif'
-import { CCD_Schema } from 'mol-io/reader/cif/schema/ccd'
-import { SetUtils } from 'mol-util/set'
-import { DefaultMap } from 'mol-util/map'
+import { Progress } from '../../mol-task'
+import { Database, Table, DatabaseCollection, Column } from '../../mol-data/db'
+import { CIF } from '../../mol-io/reader/cif'
+import { CifWriter } from '../../mol-io/writer/cif'
+import { CCD_Schema } from '../../mol-io/reader/cif/schema/ccd'
+import { SetUtils } from '../../mol-util/set'
+import { DefaultMap } from '../../mol-util/map'
 
 export async function ensureAvailable(path: string, url: string) {
     if (FORCE_DOWNLOAD || !fs.existsSync(path)) {
diff --git a/src/apps/cif2bcif/converter.ts b/src/apps/cif2bcif/converter.ts
index 386bba5b5826153f1a9ee212b44141dc176fd619..40808aa0959b50a3546faae98b28252ebb678385 100644
--- a/src/apps/cif2bcif/converter.ts
+++ b/src/apps/cif2bcif/converter.ts
@@ -4,11 +4,11 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import CIF, { CifCategory, getCifFieldType, CifField } from 'mol-io/reader/cif'
-import { CifWriter } from 'mol-io/writer/cif'
+import { CIF, CifCategory, getCifFieldType, CifField } from '../../mol-io/reader/cif'
+import { CifWriter } from '../../mol-io/writer/cif'
 import * as fs from 'fs'
-import { Progress, Task, RuntimeContext } from 'mol-task';
-import { classifyFloatArray, classifyIntArray } from 'mol-io/common/binary-cif';
+import { Progress, Task, RuntimeContext } from '../../mol-task';
+import { classifyFloatArray, classifyIntArray } from '../../mol-io/common/binary-cif';
 
 function showProgress(p: Progress) {
     process.stdout.write(`\r${new Array(80).join(' ')}`);
diff --git a/src/apps/domain-annotation-server/mapping.ts b/src/apps/domain-annotation-server/mapping.ts
index 1a8c64e01011dc39d5eb307ece2176bc156d7849..094ccf7d29e6c8174c51ebb5c827a5f48b9fd48c 100644
--- a/src/apps/domain-annotation-server/mapping.ts
+++ b/src/apps/domain-annotation-server/mapping.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Table } from 'mol-data/db'
-import { CifWriter } from 'mol-io/writer/cif'
+import { Table } from '../../mol-data/db'
+import { CifWriter } from '../../mol-io/writer/cif'
 import * as S from './schemas'
-//import { getCategoryInstanceProvider } from './utils'
+// import { getCategoryInstanceProvider } from './utils'
 
 export default function create(allData: any) {
     const mols = Object.keys(allData);
diff --git a/src/apps/domain-annotation-server/schemas.ts b/src/apps/domain-annotation-server/schemas.ts
index e6caffdac60c92bc2d8f364b0f89120edf011941..3384e77795f11ce41c624a9100032a44a1f76021 100644
--- a/src/apps/domain-annotation-server/schemas.ts
+++ b/src/apps/domain-annotation-server/schemas.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Column } from 'mol-data/db'
+import { Column } from '../../mol-data/db'
 
 import Type = Column.Schema
 
diff --git a/src/apps/image-generator/index.ts b/src/apps/image-generator/index.ts
index 0b54b2af3b37d6a655d32a0f149a4b6c356a9690..84493899078509eff37a955505594827fa9ae379 100644
--- a/src/apps/image-generator/index.ts
+++ b/src/apps/image-generator/index.ts
@@ -8,16 +8,16 @@ import * as argparse from 'argparse'
 import createContext = require('gl')
 import fs = require('fs')
 import { PNG } from 'pngjs'
-import { Canvas3D, Canvas3DParams } from 'mol-canvas3d/canvas3d';
-import InputObserver from 'mol-util/input/input-observer';
-import { ColorTheme } from 'mol-theme/color';
-import { SizeTheme } from 'mol-theme/size';
-import { CartoonRepresentationProvider } from 'mol-repr/structure/representation/cartoon';
-import CIF, { CifFrame } from 'mol-io/reader/cif'
-import { trajectoryFromMmCIF } from 'mol-model-formats/structure/mmcif';
-import { Model, Structure } from 'mol-model/structure';
-import { ajaxGet } from 'mol-util/data-source';
-import { ColorNames } from 'mol-util/color/tables';
+import { Canvas3D, Canvas3DParams } from '../../mol-canvas3d/canvas3d';
+import InputObserver from '../../mol-util/input/input-observer';
+import { ColorTheme } from '../../mol-theme/color';
+import { SizeTheme } from '../../mol-theme/size';
+import { CartoonRepresentationProvider } from '../../mol-repr/structure/representation/cartoon';
+import { CIF, CifFrame } from '../../mol-io/reader/cif'
+import { trajectoryFromMmCIF } from '../../mol-model-formats/structure/mmcif';
+import { Model, Structure } from '../../mol-model/structure';
+import { ajaxGet } from '../../mol-util/data-source';
+import { ColorNames } from '../../mol-util/color/tables';
 
 const width = 2048
 const height = 1536
diff --git a/src/apps/schema-generator/schema-from-cif-dic.ts b/src/apps/schema-generator/schema-from-cif-dic.ts
index 5fd4d778e8e7cb86aa1c0bb16188c15b1691cc49..aa95df845228c7ac5e79e8e5628ae00217953f18 100644
--- a/src/apps/schema-generator/schema-from-cif-dic.ts
+++ b/src/apps/schema-generator/schema-from-cif-dic.ts
@@ -9,8 +9,8 @@ import * as argparse from 'argparse'
 import * as fs from 'fs'
 import fetch from 'node-fetch'
 
-import Csv from 'mol-io/reader/csv/parser'
-import CIF, { CifFrame } from 'mol-io/reader/cif'
+import { parseCsv } from '../../mol-io/reader/csv/parser'
+import { CIF, CifFrame } from '../../mol-io/reader/cif'
 import { generateSchema } from './util/cif-dic'
 import { generate } from './util/generate'
 import { Filter } from './util/schema'
@@ -52,7 +52,7 @@ async function runGenerateSchema(name: string, fieldNamesPath?: string, typescri
 
 async function getFieldNamesFilter(fieldNamesPath: string): Promise<Filter> {
     const fieldNamesStr = fs.readFileSync(fieldNamesPath, 'utf8')
-    const parsed = await Csv(fieldNamesStr, { noColumnNames: true }).run();
+    const parsed = await parseCsv(fieldNamesStr, { noColumnNames: true }).run();
     if (parsed.isError) throw parser.error
     const csvFile = parsed.result;
 
diff --git a/src/apps/schema-generator/util/cif-dic.ts b/src/apps/schema-generator/util/cif-dic.ts
index befaea5a5ea61c021fd8492b3ea74035ee50fe78..292d3987e87864939745d218baeeccdc10758bf1 100644
--- a/src/apps/schema-generator/util/cif-dic.ts
+++ b/src/apps/schema-generator/util/cif-dic.ts
@@ -5,8 +5,8 @@
  */
 
 import { Database, Column, EnumCol, StrCol, IntCol, ListCol, FloatCol, CoordCol, MatrixCol, VectorCol } from './schema'
-import * as Data from 'mol-io/reader/cif/data-model'
-import { CifFrame } from 'mol-io/reader/cif/data-model';
+import * as Data from '../../../mol-io/reader/cif/data-model'
+import { CifFrame } from '../../../mol-io/reader/cif/data-model';
 
 export function getFieldType (type: string, description: string, values?: string[]): Column {
     switch (type) {
diff --git a/src/apps/schema-generator/util/generate.ts b/src/apps/schema-generator/util/generate.ts
index 439867d65f2576cd0e85834ab2095113fdce9f0c..73c7f4bb93e8463a96a1c6f9205c238769e33302 100644
--- a/src/apps/schema-generator/util/generate.ts
+++ b/src/apps/schema-generator/util/generate.ts
@@ -5,7 +5,7 @@
  */
 
 import { Database, Filter, Column } from './schema'
-import { indentString } from 'mol-util/string';
+import { indentString } from '../../../mol-util/string';
 
 function header (name: string, info: string, importDatabasePath = 'mol-data/db') {
     return `/**
diff --git a/src/apps/state-docs/index.ts b/src/apps/state-docs/index.ts
index 1cd02da05e62fae0441d5f98c27f2bdf887a8bab..833acf0b7e2a5802854b2e6527b6fd7d2ee5ef57 100644
--- a/src/apps/state-docs/index.ts
+++ b/src/apps/state-docs/index.ts
@@ -4,13 +4,13 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import * as _ from 'mol-plugin/state/transforms'
-import { StateTransformer, StateObject } from 'mol-state';
-import { StringBuilder } from 'mol-util';
+import * as _ from '../../mol-plugin/state/transforms'
+import { StateTransformer, StateObject } from '../../mol-state';
+import { StringBuilder } from '../../mol-util';
 import * as fs from 'fs';
 import { paramsToMd } from './pd-to-md';
-import { PluginContext } from 'mol-plugin/context';
-import { ParamDefinition } from 'mol-util/param-definition';
+import { PluginContext } from '../../mol-plugin/context';
+import { ParamDefinition } from '../../mol-util/param-definition';
 
 // force the transform to be evaluated
 _.StateTransforms.Data.Download.id
diff --git a/src/apps/state-docs/pd-to-md.ts b/src/apps/state-docs/pd-to-md.ts
index b04c25e3a26a0fdcbed5bc7a958b00a0174cca37..b068acaaf33f02d271d1bd8fe82f13e2aa90e1b9 100644
--- a/src/apps/state-docs/pd-to-md.ts
+++ b/src/apps/state-docs/pd-to-md.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
 
 export function paramsToMd(params: PD.Params) {
     return getParams(params, 0);
diff --git a/src/apps/structure-info/helpers.ts b/src/apps/structure-info/helpers.ts
index f4a86d9a67ac824988e4fbe0fffd13ced8b2aac5..be1a7aac0c7a15a92744becd5b631fb4d13660f7 100644
--- a/src/apps/structure-info/helpers.ts
+++ b/src/apps/structure-info/helpers.ts
@@ -9,8 +9,8 @@ import * as fs from 'fs'
 import fetch from 'node-fetch'
 require('util.promisify').shim();
 
-import CIF from 'mol-io/reader/cif'
-import { Progress } from 'mol-task'
+import { CIF } from '../../mol-io/reader/cif'
+import { Progress } from '../../mol-task'
 
 const readFileAsync = util.promisify(fs.readFile);
 
diff --git a/src/apps/structure-info/model.ts b/src/apps/structure-info/model.ts
index 58c76c69f32b3202f852b75bf5d1a54126eb3de4..6ffb3c324ebf39d80cb4b4a77423bf22b4dee6ec 100644
--- a/src/apps/structure-info/model.ts
+++ b/src/apps/structure-info/model.ts
@@ -8,13 +8,13 @@
 import * as argparse from 'argparse'
 require('util.promisify').shim();
 
-import { CifFrame } from 'mol-io/reader/cif'
-import { Model, Structure, StructureElement, Unit, StructureProperties, UnitRing } from 'mol-model/structure'
-// import { Run, Progress } from 'mol-task'
-import { OrderedSet } from 'mol-data/int';
+import { CifFrame } from '../../mol-io/reader/cif'
+import { Model, Structure, StructureElement, Unit, StructureProperties, UnitRing } from '../../mol-model/structure'
+// import { Run, Progress } from '../../mol-task'
+import { OrderedSet } from '../../mol-data/int';
 import { openCif, downloadCif } from './helpers';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { trajectoryFromMmCIF } from 'mol-model-formats/structure/mmcif';
+import { Vec3 } from '../../mol-math/linear-algebra';
+import { trajectoryFromMmCIF } from '../../mol-model-formats/structure/mmcif';
 
 
 async function downloadFromPdb(pdb: string) {
diff --git a/src/apps/structure-info/volume.ts b/src/apps/structure-info/volume.ts
index c432e83fd27d5582d36613e2c20f6e9ca4d5873b..68e5b98963532d0f54733dfdb889a6838b36e936 100644
--- a/src/apps/structure-info/volume.ts
+++ b/src/apps/structure-info/volume.ts
@@ -8,16 +8,16 @@ import * as fs from 'fs'
 import * as argparse from 'argparse'
 import * as util from 'util'
 
-import { VolumeData, VolumeIsoValue } from 'mol-model/volume'
+import { VolumeData, VolumeIsoValue } from '../../mol-model/volume'
 import { downloadCif } from './helpers'
-import CIF from 'mol-io/reader/cif'
-import { DensityServer_Data_Database } from 'mol-io/reader/cif/schema/density-server';
-import { Table } from 'mol-data/db';
-import { StringBuilder } from 'mol-util';
-import { Task } from 'mol-task';
-import { createVolumeIsosurfaceMesh } from 'mol-repr/volume/isosurface';
-import { createEmptyTheme } from 'mol-theme/theme';
-import { volumeFromDensityServerData } from 'mol-model-formats/volume/density-server';
+import { CIF } from '../../mol-io/reader/cif'
+import { DensityServer_Data_Database } from '../../mol-io/reader/cif/schema/density-server';
+import { Table } from '../../mol-data/db';
+import { StringBuilder } from '../../mol-util';
+import { Task } from '../../mol-task';
+import { createVolumeIsosurfaceMesh } from '../../mol-repr/volume/isosurface';
+import { createEmptyTheme } from '../../mol-theme/theme';
+import { volumeFromDensityServerData } from '../../mol-model-formats/volume/density-server';
 
 require('util.promisify').shim();
 const writeFileAsync = util.promisify(fs.writeFile);
diff --git a/src/apps/viewer/extensions/jolecule.ts b/src/apps/viewer/extensions/jolecule.ts
index 1ce9c969a9a05c522b3f14044ce81b56be030abf..ca058c307e0f4dd52a64eb048292c6b3bd25e60f 100644
--- a/src/apps/viewer/extensions/jolecule.ts
+++ b/src/apps/viewer/extensions/jolecule.ts
@@ -4,21 +4,21 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { StateTree, StateBuilder, StateAction, State } from 'mol-state';
-import { StateTransforms } from 'mol-plugin/state/transforms';
-import { createModelTree, complexRepresentation } from 'mol-plugin/state/actions/structure';
-import { PluginContext } from 'mol-plugin/context';
-import { PluginStateObject } from 'mol-plugin/state/objects';
-import { ParamDefinition } from 'mol-util/param-definition';
-import { PluginCommands } from 'mol-plugin/command';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { PluginStateSnapshotManager } from 'mol-plugin/state/snapshots';
-import { MolScriptBuilder as MS } from 'mol-script/language/builder';
-import { Text } from 'mol-geo/geometry/text/text';
-import { UUID } from 'mol-util';
-import { ColorNames } from 'mol-util/color/tables';
-import { Camera } from 'mol-canvas3d/camera';
-import { StructureRepresentation3DHelpers } from 'mol-plugin/state/transforms/representation';
+import { StateTree, StateBuilder, StateAction, State } from '../../../mol-state';
+import { StateTransforms } from '../../../mol-plugin/state/transforms';
+import { createModelTree, complexRepresentation } from '../../../mol-plugin/state/actions/structure';
+import { PluginContext } from '../../../mol-plugin/context';
+import { PluginStateObject } from '../../../mol-plugin/state/objects';
+import { ParamDefinition } from '../../../mol-util/param-definition';
+import { PluginCommands } from '../../../mol-plugin/command';
+import { Vec3 } from '../../../mol-math/linear-algebra';
+import { PluginStateSnapshotManager } from '../../../mol-plugin/state/snapshots';
+import { MolScriptBuilder as MS } from '../../../mol-script/language/builder';
+import { Text } from '../../../mol-geo/geometry/text/text';
+import { UUID } from '../../../mol-util';
+import { ColorNames } from '../../../mol-util/color/tables';
+import { Camera } from '../../../mol-canvas3d/camera';
+import { StructureRepresentation3DHelpers } from '../../../mol-plugin/state/transforms/representation';
 
 export const CreateJoleculeState = StateAction.build({
     display: { name: 'Jolecule State Import' },
diff --git a/src/apps/viewer/index.ts b/src/apps/viewer/index.ts
index a40a21b7d0cc9ea2c0e4af763b4485d6eb2cb948..f99f91a1b76c5823f88c81af70bb9c4eb7e688db 100644
--- a/src/apps/viewer/index.ts
+++ b/src/apps/viewer/index.ts
@@ -4,11 +4,11 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { createPlugin, DefaultPluginSpec } from 'mol-plugin';
+import { createPlugin, DefaultPluginSpec } from '../../mol-plugin';
 import './index.html'
-import { PluginContext } from 'mol-plugin/context';
-import { PluginCommands } from 'mol-plugin/command';
-import { PluginSpec } from 'mol-plugin/spec';
+import { PluginContext } from '../../mol-plugin/context';
+import { PluginCommands } from '../../mol-plugin/command';
+import { PluginSpec } from '../../mol-plugin/spec';
 import { CreateJoleculeState } from './extensions/jolecule';
 require('mol-plugin/skin/light.scss')
 
diff --git a/src/examples/proteopedia-wrapper/annotation.ts b/src/examples/proteopedia-wrapper/annotation.ts
index 66bf2ea7c0ceaec0d6eabfd6268bc4364df71713..d628f628a21cb6354ec0588459e66097c238ee93 100644
--- a/src/examples/proteopedia-wrapper/annotation.ts
+++ b/src/examples/proteopedia-wrapper/annotation.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { CustomElementProperty } from 'mol-model-props/common/custom-element-property';
-import { Model, ElementIndex, ResidueIndex } from 'mol-model/structure';
-import { Color } from 'mol-util/color';
+import { CustomElementProperty } from '../../mol-model-props/common/custom-element-property';
+import { Model, ElementIndex, ResidueIndex } from '../../mol-model/structure';
+import { Color } from '../../mol-util/color';
 
 const EvolutionaryConservationPalette: Color[] = [
     [255, 255, 129], // insufficient
diff --git a/src/examples/proteopedia-wrapper/coloring.ts b/src/examples/proteopedia-wrapper/coloring.ts
index a2199b6edbc72f94989016b1e97de943d467e6aa..829a28b5323f015379cf7836b3bf71fbdba8edb3 100644
--- a/src/examples/proteopedia-wrapper/coloring.ts
+++ b/src/examples/proteopedia-wrapper/coloring.ts
@@ -6,14 +6,14 @@
  */
 
 
-import { Unit, StructureProperties, StructureElement, Link } from 'mol-model/structure';
+import { Unit, StructureProperties, StructureElement, Link } from '../../mol-model/structure';
 
-import { Color } from 'mol-util/color';
-import { Location } from 'mol-model/location';
-import { ColorTheme, LocationColor } from 'mol-theme/color';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { ThemeDataContext } from 'mol-theme/theme';
-import { Column } from 'mol-data/db';
+import { Color } from '../../mol-util/color';
+import { Location } from '../../mol-model/location';
+import { ColorTheme, LocationColor } from '../../mol-theme/color';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
+import { ThemeDataContext } from '../../mol-theme/theme';
+import { Column } from '../../mol-data/db';
 
 const Description = 'Gives every chain a color from a list based on its `asym_id` value.'
 
diff --git a/src/examples/proteopedia-wrapper/helpers.ts b/src/examples/proteopedia-wrapper/helpers.ts
index 17082c93c22762304fcf3c7357e623bd6e3524c3..a15bcca86c8d9c3d20d16417680c583f3cc5f4a1 100644
--- a/src/examples/proteopedia-wrapper/helpers.ts
+++ b/src/examples/proteopedia-wrapper/helpers.ts
@@ -4,11 +4,11 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { ResidueIndex, Model } from 'mol-model/structure';
-import { BuiltInStructureRepresentationsName } from 'mol-repr/structure/registry';
-import { BuiltInColorThemeName } from 'mol-theme/color';
-import { AminoAcidNames } from 'mol-model/structure/model/types';
-import { PluginContext } from 'mol-plugin/context';
+import { ResidueIndex, Model } from '../../mol-model/structure';
+import { BuiltInStructureRepresentationsName } from '../../mol-repr/structure/registry';
+import { BuiltInColorThemeName } from '../../mol-theme/color';
+import { AminoAcidNames } from '../../mol-model/structure/model/types';
+import { PluginContext } from '../../mol-plugin/context';
 
 export interface ModelInfo {
     hetResidues: { name: string, indices: ResidueIndex[] }[],
diff --git a/src/examples/proteopedia-wrapper/index.ts b/src/examples/proteopedia-wrapper/index.ts
index c72a1adbe4107474d221a2d29694de44a00b7fe6..bd9d4447f5a85563525caff904748792d1fdaa98 100644
--- a/src/examples/proteopedia-wrapper/index.ts
+++ b/src/examples/proteopedia-wrapper/index.ts
@@ -4,32 +4,32 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { createPlugin, DefaultPluginSpec } from 'mol-plugin';
+import { createPlugin, DefaultPluginSpec } from '../../mol-plugin';
 import './index.html'
-import { PluginContext } from 'mol-plugin/context';
-import { PluginCommands } from 'mol-plugin/command';
-import { StateTransforms } from 'mol-plugin/state/transforms';
-import { StructureRepresentation3DHelpers } from 'mol-plugin/state/transforms/representation';
-import { Color } from 'mol-util/color';
-import { PluginStateObject as PSO, PluginStateObject } from 'mol-plugin/state/objects';
-import { AnimateModelIndex } from 'mol-plugin/state/animation/built-in';
-import { StateBuilder, StateObject } from 'mol-state';
+import { PluginContext } from '../../mol-plugin/context';
+import { PluginCommands } from '../../mol-plugin/command';
+import { StateTransforms } from '../../mol-plugin/state/transforms';
+import { StructureRepresentation3DHelpers } from '../../mol-plugin/state/transforms/representation';
+import { Color } from '../../mol-util/color';
+import { PluginStateObject as PSO, PluginStateObject } from '../../mol-plugin/state/objects';
+import { AnimateModelIndex } from '../../mol-plugin/state/animation/built-in';
+import { StateBuilder, StateObject } from '../../mol-state';
 import { EvolutionaryConservation } from './annotation';
 import { LoadParams, SupportedFormats, RepresentationStyle, ModelInfo, StateElements } from './helpers';
-import { RxEventHelper } from 'mol-util/rx-event-helper';
+import { RxEventHelper } from '../../mol-util/rx-event-helper';
 import { ControlsWrapper } from './ui/controls';
-import { PluginState } from 'mol-plugin/state';
-import { Scheduler } from 'mol-task';
+import { PluginState } from '../../mol-plugin/state';
+import { Scheduler } from '../../mol-task';
 import { createProteopediaCustomTheme } from './coloring';
-import { MolScriptBuilder as MS } from 'mol-script/language/builder';
-import { BuiltInStructureRepresentations } from 'mol-repr/structure/registry';
-import { BuiltInColorThemes } from 'mol-theme/color';
-import { BuiltInSizeThemes } from 'mol-theme/size';
-import { ColorNames } from 'mol-util/color/tables';
+import { MolScriptBuilder as MS } from '../../mol-script/language/builder';
+import { BuiltInStructureRepresentations } from '../../mol-repr/structure/registry';
+import { BuiltInColorThemes } from '../../mol-theme/color';
+import { BuiltInSizeThemes } from '../../mol-theme/size';
+import { ColorNames } from '../../mol-util/color/tables';
 // import { Vec3 } from 'mol-math/linear-algebra';
 // import { ParamDefinition } from 'mol-util/param-definition';
 // import { Text } from 'mol-geo/geometry/text/text';
-require('mol-plugin/skin/light.scss')
+require('../../mol-plugin/skin/light.scss')
 
 class MolStarProteopediaWrapper {
     static VERSION_MAJOR = 3;
diff --git a/src/examples/proteopedia-wrapper/ui/controls.tsx b/src/examples/proteopedia-wrapper/ui/controls.tsx
index d2a79e61b59b5df991b610381e77c7d9e4fe8ecc..3de24ed90c969ad5902bea4443149ef48901e9a2 100644
--- a/src/examples/proteopedia-wrapper/ui/controls.tsx
+++ b/src/examples/proteopedia-wrapper/ui/controls.tsx
@@ -5,10 +5,10 @@
  */
 
 import * as React from 'react';
-import { PluginUIComponent } from 'mol-plugin/ui/base';
-import { CurrentObject } from 'mol-plugin/ui/plugin';
-import { AnimationControls } from 'mol-plugin/ui/state/animation';
-import { CameraSnapshots } from 'mol-plugin/ui/camera';
+import { PluginUIComponent } from '../../../mol-plugin/ui/base';
+import { CurrentObject } from '../../../mol-plugin/ui/plugin';
+import { AnimationControls } from '../../../mol-plugin/ui/state/animation';
+import { CameraSnapshots } from '../../../mol-plugin/ui/camera';
 
 export class ControlsWrapper extends PluginUIComponent {
     render() {
diff --git a/src/examples/task.ts b/src/examples/task.ts
index ffee5dc037dcc3a9f82dfeb74ce51f881feaa03f..7ca6955129de1402051380c3f2daf564d9a60618 100644
--- a/src/examples/task.ts
+++ b/src/examples/task.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Task, Progress, Scheduler, MultistepTask, chunkedSubtask } from 'mol-task'
-import { now } from 'mol-util/now';
+import { Task, Progress, Scheduler, MultistepTask, chunkedSubtask } from '../mol-task'
+import { now } from '../mol-util/now';
 
 export async function test1() {
     const t = Task.create('test', async () => 1);
diff --git a/src/mol-app/component/color-theme.tsx b/src/mol-app/component/color-theme.tsx
index bf3c58078c39ac4674b18d09dd7be1a865c705f2..a98f423fe3f590df91363083f7c24b8dad7b65cb 100644
--- a/src/mol-app/component/color-theme.tsx
+++ b/src/mol-app/component/color-theme.tsx
@@ -5,8 +5,8 @@
  */
 
 import * as React from 'react'
-import { ColorTheme } from 'mol-theme/color';
-import { Color } from 'mol-util/color';
+import { ColorTheme } from '../../mol-theme/color';
+import { Color } from '../../mol-util/color';
 
 export interface ColorThemeComponentProps {
     colorTheme: ColorTheme<any>
diff --git a/src/mol-app/component/parameter/boolean.tsx b/src/mol-app/component/parameter/boolean.tsx
index c8eff666f30a3a26d03c68eace34b4a763d8073a..d5ec7529ed8a225b07904a37d7cbf54c64856b68 100644
--- a/src/mol-app/component/parameter/boolean.tsx
+++ b/src/mol-app/component/parameter/boolean.tsx
@@ -5,7 +5,7 @@
  */
 
 import * as React from 'react'
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 
 export interface BooleanParamComponentProps {
     label: string
diff --git a/src/mol-app/component/parameter/color.tsx b/src/mol-app/component/parameter/color.tsx
index a5c08374c65047b741e7c66d3796ed1bcd55e194..9835fa360a33e2efb261f022c8e625ea14fca932 100644
--- a/src/mol-app/component/parameter/color.tsx
+++ b/src/mol-app/component/parameter/color.tsx
@@ -5,9 +5,9 @@
  */
 
 import * as React from 'react'
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { ColorNames } from 'mol-util/color/tables';
-import { Color } from 'mol-util/color';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { ColorNames } from '../../../mol-util/color/tables';
+import { Color } from '../../../mol-util/color';
 
 export interface ColorParamComponentProps {
     label: string
diff --git a/src/mol-app/component/parameter/multi-select.tsx b/src/mol-app/component/parameter/multi-select.tsx
index 6db9c0c41f85fd224187a8676b4e3b57bcefc2a6..8ce2406b69112a4c1348fbb82e6de4c20aa60e65 100644
--- a/src/mol-app/component/parameter/multi-select.tsx
+++ b/src/mol-app/component/parameter/multi-select.tsx
@@ -5,7 +5,7 @@
  */
 
 import * as React from 'react'
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 
 export interface MultiSelectParamComponentProps<T extends string> {
     label: string
diff --git a/src/mol-app/component/parameter/number.tsx b/src/mol-app/component/parameter/number.tsx
index f8509b18ce23b6bf757c664448f158b68d9a2d90..493f33957ed8e042f2cc6b7d318cdee9da8de776 100644
--- a/src/mol-app/component/parameter/number.tsx
+++ b/src/mol-app/component/parameter/number.tsx
@@ -5,7 +5,7 @@
  */
 
 import * as React from 'react'
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 
 export interface NumberParamComponentProps {
     label: string
diff --git a/src/mol-app/component/parameter/select.tsx b/src/mol-app/component/parameter/select.tsx
index 9a2ab105e99a8b304becb452a830ff23fd30d107..6299292c8df0a0b34d612e281e60d820b39b12ef 100644
--- a/src/mol-app/component/parameter/select.tsx
+++ b/src/mol-app/component/parameter/select.tsx
@@ -5,7 +5,7 @@
  */
 
 import * as React from 'react'
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 
 export interface SelectParamComponentProps<T extends string> {
     label: string
diff --git a/src/mol-app/component/parameter/text.tsx b/src/mol-app/component/parameter/text.tsx
index d07252794e4d2282c169c5da924750f6c04cd47d..5a577b1cf0cf45cd31152b9a4c3164d5b1dc47bd 100644
--- a/src/mol-app/component/parameter/text.tsx
+++ b/src/mol-app/component/parameter/text.tsx
@@ -5,7 +5,7 @@
  */
 
 import * as React from 'react'
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 
 export interface TextParamComponentProps {
     label: string
diff --git a/src/mol-app/component/parameters.tsx b/src/mol-app/component/parameters.tsx
index b719707ffbd6f485ce86ad961d472f9ef4906f76..7370392d73c789108313dba039046353631e1a01 100644
--- a/src/mol-app/component/parameters.tsx
+++ b/src/mol-app/component/parameters.tsx
@@ -5,14 +5,14 @@
  */
 
 import * as React from 'react'
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
 import { BooleanParamComponent } from './parameter/boolean';
 import { NumberParamComponent } from './parameter/number';
 import { SelectParamComponent } from './parameter/select';
 import { MultiSelectParamComponent } from './parameter/multi-select';
 import { TextParamComponent } from './parameter/text';
 import { ColorParamComponent } from './parameter/color';
-import { camelCaseToWords } from 'mol-util/string';
+import { camelCaseToWords } from '../../mol-util/string';
 
 interface ParametersProps<P extends PD.Params> {
     params: P
diff --git a/src/mol-canvas3d/camera.ts b/src/mol-canvas3d/camera.ts
index 5e3cbbabbf3b0402659fac398ed9723a37d56083..92d489e0bc2ea0a0946f8fda1fddd0444c7b3e41 100644
--- a/src/mol-canvas3d/camera.ts
+++ b/src/mol-canvas3d/camera.ts
@@ -5,9 +5,9 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Mat4, Vec3, Vec4, EPSILON } from 'mol-math/linear-algebra'
+import { Mat4, Vec3, Vec4, EPSILON } from '../mol-math/linear-algebra'
 import { Viewport, cameraProject, cameraUnproject } from './camera/util';
-import { Object3D } from 'mol-gl/object3d';
+import { Object3D } from '../mol-gl/object3d';
 import { BehaviorSubject } from 'rxjs';
 import { CameraTransitionManager } from './camera/transition';
 
diff --git a/src/mol-canvas3d/camera/transition.ts b/src/mol-canvas3d/camera/transition.ts
index 469446c547bb31fc3444c69cce5e1462569489b6..8e9f31a04b7212cfffce06f93b1238ad8c3ef964 100644
--- a/src/mol-canvas3d/camera/transition.ts
+++ b/src/mol-canvas3d/camera/transition.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Camera } from 'mol-canvas3d/camera';
-import { Quat, Vec3 } from 'mol-math/linear-algebra';
-import { lerp } from 'mol-math/interpolate';
+import { Camera } from '../camera';
+import { Quat, Vec3 } from '../../mol-math/linear-algebra';
+import { lerp } from '../../mol-math/interpolate';
 
 export { CameraTransitionManager }
 
diff --git a/src/mol-canvas3d/camera/util.ts b/src/mol-canvas3d/camera/util.ts
index 488999370a4d42ab2ad196bafdbb0f9b1f11f12f..8109567a0b2f01261d59250e9670c170ed402623 100644
--- a/src/mol-canvas3d/camera/util.ts
+++ b/src/mol-canvas3d/camera/util.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Mat4, Vec3, Vec4, EPSILON } from 'mol-math/linear-algebra'
+import { Mat4, Vec3, Vec4, EPSILON } from '../../mol-math/linear-algebra'
 
 export { Viewport }
 
diff --git a/src/mol-canvas3d/canvas3d.ts b/src/mol-canvas3d/canvas3d.ts
index b19e9d6d932d05b311c0d73f60a045a8ddb06167..db8512d8abcb07ed09580837cf711f493de61788 100644
--- a/src/mol-canvas3d/canvas3d.ts
+++ b/src/mol-canvas3d/canvas3d.ts
@@ -5,30 +5,30 @@
  */
 
 import { BehaviorSubject, Subscription } from 'rxjs';
-import { now } from 'mol-util/now';
-import { Vec3 } from 'mol-math/linear-algebra'
-import InputObserver, { ModifiersKeys, ButtonsType } from 'mol-util/input/input-observer'
-import Renderer, { RendererStats, RendererParams } from 'mol-gl/renderer'
-import { GraphicsRenderObject } from 'mol-gl/render-object'
+import { now } from '../mol-util/now';
+import { Vec3 } from '../mol-math/linear-algebra'
+import InputObserver, { ModifiersKeys, ButtonsType } from '../mol-util/input/input-observer'
+import Renderer, { RendererStats, RendererParams } from '../mol-gl/renderer'
+import { GraphicsRenderObject } from '../mol-gl/render-object'
 import { TrackballControls, TrackballControlsParams } from './controls/trackball'
 import { Viewport } from './camera/util'
-import { createContext, WebGLContext, getGLContext } from 'mol-gl/webgl/context';
-import { Representation } from 'mol-repr/representation';
-import Scene from 'mol-gl/scene';
-import { GraphicsRenderVariant } from 'mol-gl/webgl/render-item';
-import { PickingId } from 'mol-geo/geometry/picking';
-import { MarkerAction } from 'mol-geo/geometry/marker-data';
-import { Loci, EmptyLoci, isEmptyLoci } from 'mol-model/loci';
+import { createContext, WebGLContext, getGLContext } from '../mol-gl/webgl/context';
+import { Representation } from '../mol-repr/representation';
+import Scene from '../mol-gl/scene';
+import { GraphicsRenderVariant } from '../mol-gl/webgl/render-item';
+import { PickingId } from '../mol-geo/geometry/picking';
+import { MarkerAction } from '../mol-geo/geometry/marker-data';
+import { Loci, EmptyLoci, isEmptyLoci } from '../mol-model/loci';
 import { Camera } from './camera';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../mol-util/param-definition';
 import { BoundingSphereHelper, DebugHelperParams } from './helper/bounding-sphere-helper';
-import { SetUtils } from 'mol-util/set';
+import { SetUtils } from '../mol-util/set';
 import { Canvas3dInteractionHelper } from './helper/interaction-events';
 import { PostprocessingParams, PostprocessingPass } from './passes/postprocessing';
 import { MultiSampleParams, MultiSamplePass } from './passes/multi-sample';
-import { GLRenderingContext } from 'mol-gl/webgl/compat';
-import { PixelData } from 'mol-util/image';
-import { readTexture } from 'mol-gl/compute/util';
+import { GLRenderingContext } from '../mol-gl/webgl/compat';
+import { PixelData } from '../mol-util/image';
+import { readTexture } from '../mol-gl/compute/util';
 import { DrawPass } from './passes/draw';
 import { PickPass } from './passes/pick';
 
diff --git a/src/mol-canvas3d/controls/trackball.ts b/src/mol-canvas3d/controls/trackball.ts
index 329cefae50aaa603ae638d23dd96e3bb939eb341..c5535caffd937b9b18335aeccb3b1e9013280453 100644
--- a/src/mol-canvas3d/controls/trackball.ts
+++ b/src/mol-canvas3d/controls/trackball.ts
@@ -8,11 +8,11 @@
  * copyright (c) 2010-2018 three.js authors. MIT License
  */
 
-import { Quat, Vec2, Vec3, EPSILON } from 'mol-math/linear-algebra';
+import { Quat, Vec2, Vec3, EPSILON } from '../../mol-math/linear-algebra';
 import { cameraLookAt, Viewport } from '../camera/util';
-import InputObserver, { DragInput, WheelInput, ButtonsType, PinchInput } from 'mol-util/input/input-observer';
-import { Object3D } from 'mol-gl/object3d';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import InputObserver, { DragInput, WheelInput, ButtonsType, PinchInput } from '../../mol-util/input/input-observer';
+import { Object3D } from '../../mol-gl/object3d';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
 
 export const TrackballControlsParams = {
     noScroll: PD.Boolean(true, { isHidden: true }),
diff --git a/src/mol-canvas3d/helper/bounding-sphere-helper.ts b/src/mol-canvas3d/helper/bounding-sphere-helper.ts
index 8f5a9634784f0812431f232bf71a145724796116..22a2f19bd977a720d6d04005668138e1eb925e93 100644
--- a/src/mol-canvas3d/helper/bounding-sphere-helper.ts
+++ b/src/mol-canvas3d/helper/bounding-sphere-helper.ts
@@ -4,20 +4,20 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { createRenderObject, GraphicsRenderObject, getNextMaterialId } from 'mol-gl/render-object'
-import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder';
-import { addSphere } from 'mol-geo/geometry/mesh/builder/sphere';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import Scene from 'mol-gl/scene';
-import { WebGLContext } from 'mol-gl/webgl/context';
-import { Sphere3D } from 'mol-math/geometry';
-import { Color } from 'mol-util/color';
-import { ColorNames } from 'mol-util/color/tables';
-import { TransformData } from 'mol-geo/geometry/transform-data';
-import { sphereVertexCount } from 'mol-geo/primitive/sphere';
-import { ValueCell } from 'mol-util';
-import { Geometry } from 'mol-geo/geometry/geometry';
+import { createRenderObject, GraphicsRenderObject, getNextMaterialId } from '../../mol-gl/render-object'
+import { MeshBuilder } from '../../mol-geo/geometry/mesh/mesh-builder';
+import { addSphere } from '../../mol-geo/geometry/mesh/builder/sphere';
+import { Mesh } from '../../mol-geo/geometry/mesh/mesh';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
+import Scene from '../../mol-gl/scene';
+import { WebGLContext } from '../../mol-gl/webgl/context';
+import { Sphere3D } from '../../mol-math/geometry';
+import { Color } from '../../mol-util/color';
+import { ColorNames } from '../../mol-util/color/tables';
+import { TransformData } from '../../mol-geo/geometry/transform-data';
+import { sphereVertexCount } from '../../mol-geo/primitive/sphere';
+import { ValueCell } from '../../mol-util';
+import { Geometry } from '../../mol-geo/geometry/geometry';
 
 export const DebugHelperParams = {
     sceneBoundingSpheres: PD.Boolean(false, { description: 'Show scene bounding spheres.' }),
diff --git a/src/mol-canvas3d/helper/interaction-events.ts b/src/mol-canvas3d/helper/interaction-events.ts
index 60a252dee74fd3a7728dbeb29c47961e9f62f828..ba28254f64e9afdb57e020c65f56096684e1ba67 100644
--- a/src/mol-canvas3d/helper/interaction-events.ts
+++ b/src/mol-canvas3d/helper/interaction-events.ts
@@ -4,11 +4,11 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { PickingId } from 'mol-geo/geometry/picking';
-import { EmptyLoci } from 'mol-model/loci';
-import { Representation } from 'mol-repr/representation';
-import InputObserver, { ModifiersKeys, ButtonsType } from 'mol-util/input/input-observer';
-import { RxEventHelper } from 'mol-util/rx-event-helper';
+import { PickingId } from '../../mol-geo/geometry/picking';
+import { EmptyLoci } from '../../mol-model/loci';
+import { Representation } from '../../mol-repr/representation';
+import InputObserver, { ModifiersKeys, ButtonsType } from '../../mol-util/input/input-observer';
+import { RxEventHelper } from '../../mol-util/rx-event-helper';
 
 type Canvas3D = import('../canvas3d').Canvas3D
 
diff --git a/src/mol-canvas3d/passes/draw.ts b/src/mol-canvas3d/passes/draw.ts
index 746460f97a190a634db017cd44ba01afbadd88cc..4c3150c19b3de414dc422c3f14b19fec72fd1718 100644
--- a/src/mol-canvas3d/passes/draw.ts
+++ b/src/mol-canvas3d/passes/draw.ts
@@ -4,12 +4,12 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { WebGLContext } from 'mol-gl/webgl/context';
-import { createRenderTarget, RenderTarget } from 'mol-gl/webgl/render-target';
-import Renderer from 'mol-gl/renderer';
-import Scene from 'mol-gl/scene';
+import { WebGLContext } from '../../mol-gl/webgl/context';
+import { createRenderTarget, RenderTarget } from '../../mol-gl/webgl/render-target';
+import Renderer from '../../mol-gl/renderer';
+import Scene from '../../mol-gl/scene';
 import { BoundingSphereHelper } from '../helper/bounding-sphere-helper';
-import { createTexture, Texture } from 'mol-gl/webgl/texture';
+import { createTexture, Texture } from '../../mol-gl/webgl/texture';
 
 
 export class DrawPass {
diff --git a/src/mol-canvas3d/passes/multi-sample.ts b/src/mol-canvas3d/passes/multi-sample.ts
index 06ccc2c319da790926c3fd443ff24c783f066d6e..ee9ff4dee07f0b9614d28cc6c21715c3d7f3e521 100644
--- a/src/mol-canvas3d/passes/multi-sample.ts
+++ b/src/mol-canvas3d/passes/multi-sample.ts
@@ -4,18 +4,18 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { QuadSchema, QuadValues } from 'mol-gl/compute/util';
-import { TextureSpec, UniformSpec, Values } from 'mol-gl/renderable/schema';
-import { Texture } from 'mol-gl/webgl/texture';
-import { WebGLContext } from 'mol-gl/webgl/context';
-import { ValueCell } from 'mol-util';
-import { Vec2 } from 'mol-math/linear-algebra';
-import { ShaderCode } from 'mol-gl/shader-code';
-import { createComputeRenderItem } from 'mol-gl/webgl/render-item';
-import { createComputeRenderable, ComputeRenderable } from 'mol-gl/renderable';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { RenderTarget, createRenderTarget } from 'mol-gl/webgl/render-target';
-import { Camera } from 'mol-canvas3d/camera';
+import { QuadSchema, QuadValues } from '../../mol-gl/compute/util';
+import { TextureSpec, UniformSpec, Values } from '../../mol-gl/renderable/schema';
+import { Texture } from '../../mol-gl/webgl/texture';
+import { WebGLContext } from '../../mol-gl/webgl/context';
+import { ValueCell } from '../../mol-util';
+import { Vec2 } from '../../mol-math/linear-algebra';
+import { ShaderCode } from '../../mol-gl/shader-code';
+import { createComputeRenderItem } from '../../mol-gl/webgl/render-item';
+import { createComputeRenderable, ComputeRenderable } from '../../mol-gl/renderable';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
+import { RenderTarget, createRenderTarget } from '../../mol-gl/webgl/render-target';
+import { Camera } from '../../mol-canvas3d/camera';
 import { PostprocessingPass } from './postprocessing';
 import { DrawPass } from './draw';
 
diff --git a/src/mol-canvas3d/passes/pick.ts b/src/mol-canvas3d/passes/pick.ts
index 13238d720b5b544cab8cbb86f760e27ed2adf6e5..46e8ef8d7204db3b06716f1cd9831f06e1611ea4 100644
--- a/src/mol-canvas3d/passes/pick.ts
+++ b/src/mol-canvas3d/passes/pick.ts
@@ -4,12 +4,12 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { WebGLContext } from 'mol-gl/webgl/context';
-import { createRenderTarget, RenderTarget } from 'mol-gl/webgl/render-target';
-import Renderer from 'mol-gl/renderer';
-import Scene from 'mol-gl/scene';
-import { PickingId } from 'mol-geo/geometry/picking';
-import { decodeFloatRGB } from 'mol-util/float-packing';
+import { WebGLContext } from '../../mol-gl/webgl/context';
+import { createRenderTarget, RenderTarget } from '../../mol-gl/webgl/render-target';
+import Renderer from '../../mol-gl/renderer';
+import Scene from '../../mol-gl/scene';
+import { PickingId } from '../../mol-geo/geometry/picking';
+import { decodeFloatRGB } from '../../mol-util/float-packing';
 
 const readBuffer = new Uint8Array(4)
 
diff --git a/src/mol-canvas3d/passes/postprocessing.ts b/src/mol-canvas3d/passes/postprocessing.ts
index 079758dbf665a221ba8c13fd56c4662a4ebe3ca8..7d184a44aaa115bd5c4b060eac1f6bfca14e8ac9 100644
--- a/src/mol-canvas3d/passes/postprocessing.ts
+++ b/src/mol-canvas3d/passes/postprocessing.ts
@@ -4,19 +4,19 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { QuadSchema, QuadValues } from 'mol-gl/compute/util';
-import { TextureSpec, Values, UniformSpec, DefineSpec } from 'mol-gl/renderable/schema';
-import { ShaderCode } from 'mol-gl/shader-code';
-import { WebGLContext } from 'mol-gl/webgl/context';
-import { Texture } from 'mol-gl/webgl/texture';
-import { ValueCell } from 'mol-util';
-import { createComputeRenderItem } from 'mol-gl/webgl/render-item';
-import { createComputeRenderable, ComputeRenderable } from 'mol-gl/renderable';
-import { Vec2, Vec3 } from 'mol-math/linear-algebra';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { createRenderTarget, RenderTarget } from 'mol-gl/webgl/render-target';
+import { QuadSchema, QuadValues } from '../../mol-gl/compute/util';
+import { TextureSpec, Values, UniformSpec, DefineSpec } from '../../mol-gl/renderable/schema';
+import { ShaderCode } from '../../mol-gl/shader-code';
+import { WebGLContext } from '../../mol-gl/webgl/context';
+import { Texture } from '../../mol-gl/webgl/texture';
+import { ValueCell } from '../../mol-util';
+import { createComputeRenderItem } from '../../mol-gl/webgl/render-item';
+import { createComputeRenderable, ComputeRenderable } from '../../mol-gl/renderable';
+import { Vec2, Vec3 } from '../../mol-math/linear-algebra';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
+import { createRenderTarget, RenderTarget } from '../../mol-gl/webgl/render-target';
 import { DrawPass } from './draw';
-import { Camera } from 'mol-canvas3d/camera';
+import { Camera } from '../../mol-canvas3d/camera';
 
 const PostprocessingSchema = {
     ...QuadSchema,
diff --git a/src/mol-data/db/column.ts b/src/mol-data/db/column.ts
index c993faa654210e2f6b1b0ae64145cbbe2908e4ee..b567e8317f808428aa431287fff4f9837874faf8 100644
--- a/src/mol-data/db/column.ts
+++ b/src/mol-data/db/column.ts
@@ -6,7 +6,7 @@
  */
 
 import * as ColumnHelpers from './column-helpers'
-import { Tensor as Tensors } from 'mol-math/linear-algebra'
+import { Tensor as Tensors } from '../../mol-math/linear-algebra'
 
 interface Column<T> {
     readonly schema: Column.Schema,
diff --git a/src/mol-data/db/table.ts b/src/mol-data/db/table.ts
index b67be9677ddbf317c310f44ef5d05bfd297f7d46..d0c3be326b7b49969d9d23d1ba12d83b31b6628c 100644
--- a/src/mol-data/db/table.ts
+++ b/src/mol-data/db/table.ts
@@ -6,7 +6,7 @@
 
 import Column from './column'
 import { sortArray } from '../util/sort'
-import { StringBuilder } from 'mol-util';
+import { StringBuilder } from '../../mol-util';
 
 /** A collection of columns */
 type Table<Schema extends Table.Schema> = {
diff --git a/src/mol-data/util/array.ts b/src/mol-data/util/array.ts
index 4df70a7115c4b51ae5d414d099120a6ae8c40a26..5dc0e310ae26a97cbf5633f3fceb3c9e3e07a766 100644
--- a/src/mol-data/util/array.ts
+++ b/src/mol-data/util/array.ts
@@ -5,7 +5,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { ArrayCtor } from 'mol-util/type-helpers';
+import { ArrayCtor } from '../../mol-util/type-helpers';
 
 export function arrayFind<T>(array: ArrayLike<T>, f: (v: T) => boolean): T | undefined {
     for (let i = 0, _i = array.length; i < _i; i++) {
diff --git a/src/mol-data/util/buckets.ts b/src/mol-data/util/buckets.ts
index 956a8e365e7259b3b4d8cb9dadf6dfd46c420d78..00dfa6bf8ea3f593cc95b0ee654781d491668380 100644
--- a/src/mol-data/util/buckets.ts
+++ b/src/mol-data/util/buckets.ts
@@ -5,7 +5,7 @@
  */
 
 import { sort, arraySwap } from './sort';
-import { AssignableArrayLike } from 'mol-util/type-helpers';
+import { AssignableArrayLike } from '../../mol-util/type-helpers';
 
 type Bucket = {
     key: any,
diff --git a/src/mol-geo/geometry/base.ts b/src/mol-geo/geometry/base.ts
index c168c5a03b3f019e950e25b6c184976dfa0b39a3..e103fa29229d23812099ccf2f2ed25f640d13907 100644
--- a/src/mol-geo/geometry/base.ts
+++ b/src/mol-geo/geometry/base.ts
@@ -4,19 +4,19 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { RenderableState } from 'mol-gl/renderable';
-import { ValueCell } from 'mol-util';
-import { BaseValues } from 'mol-gl/renderable/schema';
+import { RenderableState } from '../../mol-gl/renderable';
+import { ValueCell } from '../../mol-util';
+import { BaseValues } from '../../mol-gl/renderable/schema';
 import { LocationIterator } from '../util/location-iterator';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { Color } from 'mol-util/color';
-import { Vec3 } from 'mol-math/linear-algebra';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
+import { Color } from '../../mol-util/color';
+import { Vec3 } from '../../mol-math/linear-algebra';
 import { TransformData, createIdentityTransform } from './transform-data';
-import { Theme } from 'mol-theme/theme';
-import { ColorNames } from 'mol-util/color/tables';
-import { NullLocation } from 'mol-model/location';
-import { UniformColorTheme } from 'mol-theme/color/uniform';
-import { UniformSizeTheme } from 'mol-theme/size/uniform';
+import { Theme } from '../../mol-theme/theme';
+import { ColorNames } from '../../mol-util/color/tables';
+import { NullLocation } from '../../mol-model/location';
+import { UniformColorTheme } from '../../mol-theme/color/uniform';
+import { UniformSizeTheme } from '../../mol-theme/size/uniform';
 
 export const VisualQualityInfo = {
     'custom': {},
diff --git a/src/mol-geo/geometry/color-data.ts b/src/mol-geo/geometry/color-data.ts
index f4991df31f0e78e79baeed21abf7b5c8c1d6b370..423e2ba64e61f73455b9d81464922215c994fb30 100644
--- a/src/mol-geo/geometry/color-data.ts
+++ b/src/mol-geo/geometry/color-data.ts
@@ -4,13 +4,13 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util';
-import { TextureImage, createTextureImage } from 'mol-gl/renderable/util';
-import { Color } from 'mol-util/color';
-import { Vec2, Vec3 } from 'mol-math/linear-algebra';
+import { ValueCell } from '../../mol-util';
+import { TextureImage, createTextureImage } from '../../mol-gl/renderable/util';
+import { Color } from '../../mol-util/color';
+import { Vec2, Vec3 } from '../../mol-math/linear-algebra';
 import { LocationIterator } from '../util/location-iterator';
-import { NullLocation } from 'mol-model/location';
-import { LocationColor, ColorTheme } from 'mol-theme/color';
+import { NullLocation } from '../../mol-model/location';
+import { LocationColor, ColorTheme } from '../../mol-theme/color';
 import { Geometry } from './geometry';
 
 export type ColorType = 'uniform' | 'instance' | 'group' | 'groupInstance'
diff --git a/src/mol-geo/geometry/direct-volume/direct-volume.ts b/src/mol-geo/geometry/direct-volume/direct-volume.ts
index 32eb6957b6d7a9bcf261962e08a33bcd106a414d..33bdc759fa8a4c087d721b6f4b85292c41c194fa 100644
--- a/src/mol-geo/geometry/direct-volume/direct-volume.ts
+++ b/src/mol-geo/geometry/direct-volume/direct-volume.ts
@@ -4,25 +4,25 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util'
-import { Sphere3D, Box3D } from 'mol-math/geometry'
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { DirectVolumeValues } from 'mol-gl/renderable/direct-volume';
-import { Vec3, Mat4, Vec2 } from 'mol-math/linear-algebra';
+import { ValueCell } from '../../../mol-util'
+import { Sphere3D, Box3D } from '../../../mol-math/geometry'
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { DirectVolumeValues } from '../../../mol-gl/renderable/direct-volume';
+import { Vec3, Mat4, Vec2 } from '../../../mol-math/linear-algebra';
 import { Box } from '../../primitive/box';
 import { createTransferFunctionTexture, getControlPointsFromVec2Array } from './transfer-function';
-import { Texture } from 'mol-gl/webgl/texture';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
+import { Texture } from '../../../mol-gl/webgl/texture';
+import { LocationIterator } from '../../../mol-geo/util/location-iterator';
 import { TransformData } from '../transform-data';
 import { createColors } from '../color-data';
 import { createMarkers } from '../marker-data';
 import { GeometryUtils } from '../geometry';
-import { transformPositionArray } from 'mol-geo/util';
-import { calculateBoundingSphere } from 'mol-gl/renderable/util';
-import { Theme } from 'mol-theme/theme';
-import { RenderableState } from 'mol-gl/renderable';
-import { ColorListOptions, ColorListName } from 'mol-util/color/scale';
-import { Color } from 'mol-util/color';
+import { transformPositionArray } from '../../../mol-geo/util';
+import { calculateBoundingSphere } from '../../../mol-gl/renderable/util';
+import { Theme } from '../../../mol-theme/theme';
+import { RenderableState } from '../../../mol-gl/renderable';
+import { ColorListOptions, ColorListName } from '../../../mol-util/color/scale';
+import { Color } from '../../../mol-util/color';
 import { BaseGeometry } from '../base';
 import { createEmptyOverpaint } from '../overpaint-data';
 import { createEmptyTransparency } from '../transparency-data';
diff --git a/src/mol-geo/geometry/direct-volume/transfer-function.ts b/src/mol-geo/geometry/direct-volume/transfer-function.ts
index 8b87e1d244eea4ab424eb83e8906509439a37d83..bce6328420c1498950504a8a11e11e4003c0ea8c 100644
--- a/src/mol-geo/geometry/direct-volume/transfer-function.ts
+++ b/src/mol-geo/geometry/direct-volume/transfer-function.ts
@@ -4,12 +4,12 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { TextureImage } from 'mol-gl/renderable/util';
-import { spline } from 'mol-math/interpolate';
-import { ColorScale, Color } from 'mol-util/color';
-import { ValueCell } from 'mol-util';
-import { Vec2 } from 'mol-math/linear-algebra';
-import { ColorListName } from 'mol-util/color/scale';
+import { TextureImage } from '../../../mol-gl/renderable/util';
+import { spline } from '../../../mol-math/interpolate';
+import { ColorScale, Color } from '../../../mol-util/color';
+import { ValueCell } from '../../../mol-util';
+import { Vec2 } from '../../../mol-math/linear-algebra';
+import { ColorListName } from '../../../mol-util/color/scale';
 
 export interface ControlPoint { x: number, alpha: number }
 
diff --git a/src/mol-geo/geometry/geometry.ts b/src/mol-geo/geometry/geometry.ts
index 36678a3feda45c1772dcfe01d26a271b27a6dbf3..494e332328105bc668237188f16989e73605393d 100644
--- a/src/mol-geo/geometry/geometry.ts
+++ b/src/mol-geo/geometry/geometry.ts
@@ -7,20 +7,20 @@
 import { Mesh } from './mesh/mesh';
 import { Points } from './points/points';
 import { Text } from './text/text';
-import { RenderableState } from 'mol-gl/renderable';
+import { RenderableState } from '../../mol-gl/renderable';
 import { LocationIterator } from '../util/location-iterator';
 import { ColorType } from './color-data';
 import { SizeType } from './size-data';
 import { Lines } from './lines/lines';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
 import { DirectVolume } from './direct-volume/direct-volume';
-import { Color } from 'mol-util/color';
+import { Color } from '../../mol-util/color';
 import { Spheres } from './spheres/spheres';
-import { arrayMax } from 'mol-util/array';
+import { arrayMax } from '../../mol-util/array';
 import { TransformData } from './transform-data';
-import { Theme } from 'mol-theme/theme';
-import { RenderObjectValuesType } from 'mol-gl/render-object';
-import { ValueOf } from 'mol-util/type-helpers';
+import { Theme } from '../../mol-theme/theme';
+import { RenderObjectValuesType } from '../../mol-gl/render-object';
+import { ValueOf } from '../../mol-util/type-helpers';
 import { TextureMesh } from './texture-mesh/texture-mesh';
 
 export type GeometryKindType = {
diff --git a/src/mol-geo/geometry/lines/lines-builder.ts b/src/mol-geo/geometry/lines/lines-builder.ts
index 70d994dbbed725b91fb0a01836df7b5759ce7ec1..4d516afe12a8d6f6e3d76e43c63798f5b78d241a 100644
--- a/src/mol-geo/geometry/lines/lines-builder.ts
+++ b/src/mol-geo/geometry/lines/lines-builder.ts
@@ -4,11 +4,11 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util/value-cell'
-import { ChunkedArray } from 'mol-data/util';
+import { ValueCell } from '../../../mol-util/value-cell'
+import { ChunkedArray } from '../../../mol-data/util';
 import { Lines } from './lines';
-import { Mat4, Vec3 } from 'mol-math/linear-algebra';
-import { Cage } from 'mol-geo/primitive/cage';
+import { Mat4, Vec3 } from '../../../mol-math/linear-algebra';
+import { Cage } from '../../../mol-geo/primitive/cage';
 
 export interface LinesBuilder {
     add(startX: number, startY: number, startZ: number, endX: number, endY: number, endZ: number, group: number): void
diff --git a/src/mol-geo/geometry/lines/lines.ts b/src/mol-geo/geometry/lines/lines.ts
index 13dea32130f80e3d0c400373eca9feb74005d054..bcee14f2cfa561a3f30cd1c5d530749a8357a3cc 100644
--- a/src/mol-geo/geometry/lines/lines.ts
+++ b/src/mol-geo/geometry/lines/lines.ts
@@ -4,8 +4,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util'
-import { Mat4 } from 'mol-math/linear-algebra'
+import { ValueCell } from '../../../mol-util'
+import { Mat4 } from '../../../mol-math/linear-algebra'
 import { transformPositionArray/* , transformDirectionArray, getNormalMatrix */ } from '../../util';
 import { GeometryUtils } from '../geometry';
 import { createColors } from '../color-data';
@@ -13,14 +13,14 @@ import { createMarkers } from '../marker-data';
 import { createSizes } from '../size-data';
 import { TransformData } from '../transform-data';
 import { LocationIterator } from '../../util/location-iterator';
-import { LinesValues } from 'mol-gl/renderable/lines';
+import { LinesValues } from '../../../mol-gl/renderable/lines';
 import { Mesh } from '../mesh/mesh';
 import { LinesBuilder } from './lines-builder';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { calculateBoundingSphere } from 'mol-gl/renderable/util';
-import { Sphere3D } from 'mol-math/geometry';
-import { Theme } from 'mol-theme/theme';
-import { Color } from 'mol-util/color';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { calculateBoundingSphere } from '../../../mol-gl/renderable/util';
+import { Sphere3D } from '../../../mol-math/geometry';
+import { Theme } from '../../../mol-theme/theme';
+import { Color } from '../../../mol-util/color';
 import { BaseGeometry } from '../base';
 import { createEmptyOverpaint } from '../overpaint-data';
 import { createEmptyTransparency } from '../transparency-data';
diff --git a/src/mol-geo/geometry/marker-data.ts b/src/mol-geo/geometry/marker-data.ts
index 65d8e59816a2c018f250227b051f72e44c95fa18..5e4feee990eb009c180352a64ed9de755f3e7ac6 100644
--- a/src/mol-geo/geometry/marker-data.ts
+++ b/src/mol-geo/geometry/marker-data.ts
@@ -4,9 +4,9 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util/value-cell'
-import { Vec2 } from 'mol-math/linear-algebra'
-import { TextureImage, createTextureImage } from 'mol-gl/renderable/util';
+import { ValueCell } from '../../mol-util/value-cell'
+import { Vec2 } from '../../mol-math/linear-algebra'
+import { TextureImage, createTextureImage } from '../../mol-gl/renderable/util';
 
 export type MarkerData = {
     tMarker: ValueCell<TextureImage<Uint8Array>>
diff --git a/src/mol-geo/geometry/mesh/builder/bounding-box.ts b/src/mol-geo/geometry/mesh/builder/bounding-box.ts
index daa24c4f7e1d1b71e0e5a03f96dc6742cd80eeaf..758340c207104fcdc4854771d51be35c49b46b31 100644
--- a/src/mol-geo/geometry/mesh/builder/bounding-box.ts
+++ b/src/mol-geo/geometry/mesh/builder/bounding-box.ts
@@ -4,8 +4,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Vec3 } from 'mol-math/linear-algebra';
-import { Box3D } from 'mol-math/geometry';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
+import { Box3D } from '../../../../mol-math/geometry';
 import { MeshBuilder } from '../mesh-builder';
 import { CylinderProps } from '../../../primitive/cylinder';
 import { addCylinder } from './cylinder';
diff --git a/src/mol-geo/geometry/mesh/builder/cylinder.ts b/src/mol-geo/geometry/mesh/builder/cylinder.ts
index 7960a0a8e5d941d2a555fa012517dd42ea50abc7..34032db0803c376e9b0ec0d0b6bfbe92ed5cf0a3 100644
--- a/src/mol-geo/geometry/mesh/builder/cylinder.ts
+++ b/src/mol-geo/geometry/mesh/builder/cylinder.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Vec3, Mat4 } from 'mol-math/linear-algebra';
+import { Vec3, Mat4 } from '../../../../mol-math/linear-algebra';
 import { MeshBuilder } from '../mesh-builder';
 import { Primitive } from '../../../primitive/primitive';
 import { Cylinder, CylinderProps } from '../../../primitive/cylinder';
diff --git a/src/mol-geo/geometry/mesh/builder/sheet.ts b/src/mol-geo/geometry/mesh/builder/sheet.ts
index 765b96fcad32f6a16ce22154ad169f2b405a78e5..8854ca7038f38b5a08bfcc3cd2c9015fd7672cab 100644
--- a/src/mol-geo/geometry/mesh/builder/sheet.ts
+++ b/src/mol-geo/geometry/mesh/builder/sheet.ts
@@ -5,8 +5,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Vec3 } from 'mol-math/linear-algebra';
-import { ChunkedArray } from 'mol-data/util';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
+import { ChunkedArray } from '../../../../mol-data/util';
 import { MeshBuilder } from '../mesh-builder';
 
 const tA = Vec3.zero()
diff --git a/src/mol-geo/geometry/mesh/builder/sphere.ts b/src/mol-geo/geometry/mesh/builder/sphere.ts
index 8dcd299bfdf2261358a1e8349c8a5586cef73f30..2427ed6cd994fcf1054a2835310437cabcacb0f6 100644
--- a/src/mol-geo/geometry/mesh/builder/sphere.ts
+++ b/src/mol-geo/geometry/mesh/builder/sphere.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Vec3, Mat4 } from 'mol-math/linear-algebra';
+import { Vec3, Mat4 } from '../../../../mol-math/linear-algebra';
 import { MeshBuilder } from '../mesh-builder';
 import { Primitive } from '../../../primitive/primitive';
 import { Sphere } from '../../../primitive/sphere';
diff --git a/src/mol-geo/geometry/mesh/builder/tube.ts b/src/mol-geo/geometry/mesh/builder/tube.ts
index 693bc69d8cd9d0a90ed6f3160f1dab7db7170a56..71f15063250a0dc5fcf228bd1792ebc41f8e41db 100644
--- a/src/mol-geo/geometry/mesh/builder/tube.ts
+++ b/src/mol-geo/geometry/mesh/builder/tube.ts
@@ -5,8 +5,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Vec3 } from 'mol-math/linear-algebra';
-import { ChunkedArray } from 'mol-data/util';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
+import { ChunkedArray } from '../../../../mol-data/util';
 import { MeshBuilder } from '../mesh-builder';
 
 const normalVector = Vec3.zero()
diff --git a/src/mol-geo/geometry/mesh/mesh-builder.ts b/src/mol-geo/geometry/mesh/mesh-builder.ts
index cfe57234db1d2b4fd8ce2648158cf4d4369e5656..0381fd2c70ad88b050386bb343bf696253f6ff47 100644
--- a/src/mol-geo/geometry/mesh/mesh-builder.ts
+++ b/src/mol-geo/geometry/mesh/mesh-builder.ts
@@ -4,13 +4,13 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util/value-cell'
-import { Vec3, Mat4, Mat3 } from 'mol-math/linear-algebra';
-import { ChunkedArray } from 'mol-data/util';
+import { ValueCell } from '../../../mol-util/value-cell'
+import { Vec3, Mat4, Mat3 } from '../../../mol-math/linear-algebra';
+import { ChunkedArray } from '../../../mol-data/util';
 import { Mesh } from './mesh';
 import { getNormalMatrix } from '../../util';
 import { Primitive } from '../../primitive/primitive';
-import { Cage } from 'mol-geo/primitive/cage';
+import { Cage } from '../../../mol-geo/primitive/cage';
 import { addSphere } from './builder/sphere';
 import { addCylinder } from './builder/cylinder';
 
diff --git a/src/mol-geo/geometry/mesh/mesh.ts b/src/mol-geo/geometry/mesh/mesh.ts
index 1095cd65484827f2a2b72916adea018f47bef388..afcec7663dd2ee08be4ac4499547bfd1bc0fc305 100644
--- a/src/mol-geo/geometry/mesh/mesh.ts
+++ b/src/mol-geo/geometry/mesh/mesh.ts
@@ -4,22 +4,22 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Task } from 'mol-task'
-import { ValueCell } from 'mol-util'
-import { Vec3, Mat4 } from 'mol-math/linear-algebra'
-import { Sphere3D } from 'mol-math/geometry'
+import { Task } from '../../../mol-task'
+import { ValueCell } from '../../../mol-util'
+import { Vec3, Mat4 } from '../../../mol-math/linear-algebra'
+import { Sphere3D } from '../../../mol-math/geometry'
 import { transformPositionArray/* , transformDirectionArray, getNormalMatrix */ } from '../../util';
 import { GeometryUtils } from '../geometry';
 import { createMarkers } from '../marker-data';
 import { TransformData } from '../transform-data';
 import { LocationIterator } from '../../util/location-iterator';
 import { createColors } from '../color-data';
-import { ChunkedArray } from 'mol-data/util';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { calculateBoundingSphere } from 'mol-gl/renderable/util';
-import { Theme } from 'mol-theme/theme';
-import { MeshValues } from 'mol-gl/renderable/mesh';
-import { Color } from 'mol-util/color';
+import { ChunkedArray } from '../../../mol-data/util';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { calculateBoundingSphere } from '../../../mol-gl/renderable/util';
+import { Theme } from '../../../mol-theme/theme';
+import { MeshValues } from '../../../mol-gl/renderable/mesh';
+import { Color } from '../../../mol-util/color';
 import { BaseGeometry } from '../base';
 import { createEmptyOverpaint } from '../overpaint-data';
 import { createEmptyTransparency } from '../transparency-data';
diff --git a/src/mol-geo/geometry/overpaint-data.ts b/src/mol-geo/geometry/overpaint-data.ts
index a1c74f1273bb7f2b854357062a0bb1390ca45802..c256cc8dc9feae640093a59f1945af66c79634aa 100644
--- a/src/mol-geo/geometry/overpaint-data.ts
+++ b/src/mol-geo/geometry/overpaint-data.ts
@@ -4,10 +4,10 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util/value-cell'
-import { Vec2 } from 'mol-math/linear-algebra'
-import { TextureImage, createTextureImage } from 'mol-gl/renderable/util';
-import { Color } from 'mol-util/color';
+import { ValueCell } from '../../mol-util/value-cell'
+import { Vec2 } from '../../mol-math/linear-algebra'
+import { TextureImage, createTextureImage } from '../../mol-gl/renderable/util';
+import { Color } from '../../mol-util/color';
 
 export type OverpaintData = {
     tOverpaint: ValueCell<TextureImage<Uint8Array>>
diff --git a/src/mol-geo/geometry/points/points-builder.ts b/src/mol-geo/geometry/points/points-builder.ts
index af8d2fd6924e1b3fe97abb31ac86274620f0c405..b798b88efe5ff4ceba36d99e05305b869e5a3d62 100644
--- a/src/mol-geo/geometry/points/points-builder.ts
+++ b/src/mol-geo/geometry/points/points-builder.ts
@@ -4,8 +4,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util/value-cell'
-import { ChunkedArray } from 'mol-data/util';
+import { ValueCell } from '../../../mol-util/value-cell'
+import { ChunkedArray } from '../../../mol-data/util';
 import { Points } from './points';
 
 export interface PointsBuilder {
diff --git a/src/mol-geo/geometry/points/points.ts b/src/mol-geo/geometry/points/points.ts
index cb5f9c648f38006387d7d9604bcc3704f5153ccf..924ed1ccda36a479c4c99919140b025d2e137da0 100644
--- a/src/mol-geo/geometry/points/points.ts
+++ b/src/mol-geo/geometry/points/points.ts
@@ -4,8 +4,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util'
-import { Mat4 } from 'mol-math/linear-algebra'
+import { ValueCell } from '../../../mol-util'
+import { Mat4 } from '../../../mol-math/linear-algebra'
 import { transformPositionArray/* , transformDirectionArray, getNormalMatrix */ } from '../../util';
 import { GeometryUtils } from '../geometry';
 import { createColors } from '../color-data';
@@ -13,13 +13,13 @@ import { createMarkers } from '../marker-data';
 import { createSizes } from '../size-data';
 import { TransformData } from '../transform-data';
 import { LocationIterator } from '../../util/location-iterator';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { calculateBoundingSphere } from 'mol-gl/renderable/util';
-import { Sphere3D } from 'mol-math/geometry';
-import { Theme } from 'mol-theme/theme';
-import { PointsValues } from 'mol-gl/renderable/points';
-import { RenderableState } from 'mol-gl/renderable';
-import { Color } from 'mol-util/color';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { calculateBoundingSphere } from '../../../mol-gl/renderable/util';
+import { Sphere3D } from '../../../mol-math/geometry';
+import { Theme } from '../../../mol-theme/theme';
+import { PointsValues } from '../../../mol-gl/renderable/points';
+import { RenderableState } from '../../../mol-gl/renderable';
+import { Color } from '../../../mol-util/color';
 import { BaseGeometry } from '../base';
 import { createEmptyOverpaint } from '../overpaint-data';
 import { createEmptyTransparency } from '../transparency-data';
diff --git a/src/mol-geo/geometry/size-data.ts b/src/mol-geo/geometry/size-data.ts
index 9fdc122f25e83585c983a3c0552bb5af6012d111..14815ece308554267191255e4bf816b57ce95f56 100644
--- a/src/mol-geo/geometry/size-data.ts
+++ b/src/mol-geo/geometry/size-data.ts
@@ -4,14 +4,14 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util';
-import { Vec2 } from 'mol-math/linear-algebra';
-import { TextureImage, createTextureImage } from 'mol-gl/renderable/util';
+import { ValueCell } from '../../mol-util';
+import { Vec2 } from '../../mol-math/linear-algebra';
+import { TextureImage, createTextureImage } from '../../mol-gl/renderable/util';
 import { LocationIterator } from '../util/location-iterator';
-import { Location, NullLocation } from 'mol-model/location';
-import { SizeTheme } from 'mol-theme/size';
+import { Location, NullLocation } from '../../mol-model/location';
+import { SizeTheme } from '../../mol-theme/size';
 import { Geometry } from './geometry';
-import { encodeFloatLog, decodeFloatLog } from 'mol-util/float-packing';
+import { encodeFloatLog, decodeFloatLog } from '../../mol-util/float-packing';
 
 export type SizeType = 'uniform' | 'instance' | 'group' | 'groupInstance'
 
diff --git a/src/mol-geo/geometry/spheres/spheres-builder.ts b/src/mol-geo/geometry/spheres/spheres-builder.ts
index 9050e723a3bbb0f0d8ce415ebbf19b5078d651a7..423c7b4db6b718bf50e7a0a2a0ece9befd066a8d 100644
--- a/src/mol-geo/geometry/spheres/spheres-builder.ts
+++ b/src/mol-geo/geometry/spheres/spheres-builder.ts
@@ -4,8 +4,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util/value-cell'
-import { ChunkedArray } from 'mol-data/util';
+import { ValueCell } from '../../../mol-util/value-cell'
+import { ChunkedArray } from '../../../mol-data/util';
 import { Spheres } from './spheres';
 
 const quadMapping = new Float32Array([
diff --git a/src/mol-geo/geometry/spheres/spheres.ts b/src/mol-geo/geometry/spheres/spheres.ts
index 9d38ea9a2bfcb28cd64b5119e62f6caccad21303..3129cd54a452e493af2aebd22a825092db86fc39 100644
--- a/src/mol-geo/geometry/spheres/spheres.ts
+++ b/src/mol-geo/geometry/spheres/spheres.ts
@@ -4,19 +4,19 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util';
+import { ValueCell } from '../../../mol-util';
 import { GeometryUtils } from '../geometry';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { TransformData } from '../transform-data';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { Theme } from 'mol-theme/theme';
-import { SpheresValues } from 'mol-gl/renderable/spheres';
+import { LocationIterator } from '../../../mol-geo/util/location-iterator';
+import { Theme } from '../../../mol-theme/theme';
+import { SpheresValues } from '../../../mol-gl/renderable/spheres';
 import { createColors } from '../color-data';
 import { createMarkers } from '../marker-data';
-import { calculateBoundingSphere } from 'mol-gl/renderable/util';
-import { Sphere3D } from 'mol-math/geometry';
+import { calculateBoundingSphere } from '../../../mol-gl/renderable/util';
+import { Sphere3D } from '../../../mol-math/geometry';
 import { createSizes, getMaxSize } from '../size-data';
-import { Color } from 'mol-util/color';
+import { Color } from '../../../mol-util/color';
 import { BaseGeometry } from '../base';
 import { createEmptyOverpaint } from '../overpaint-data';
 import { createEmptyTransparency } from '../transparency-data';
diff --git a/src/mol-geo/geometry/text/font-atlas.ts b/src/mol-geo/geometry/text/font-atlas.ts
index 46f11f633197e941f93173e9aba398bb5a100562..7ad99459377afd0b20d6edc726dabed2359049d2 100644
--- a/src/mol-geo/geometry/text/font-atlas.ts
+++ b/src/mol-geo/geometry/text/font-atlas.ts
@@ -4,9 +4,9 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { edt } from 'mol-math/geometry/distance-transform';
-import { createTextureImage, TextureImage } from 'mol-gl/renderable/util';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { edt } from '../../../mol-math/geometry/distance-transform';
+import { createTextureImage, TextureImage } from '../../../mol-gl/renderable/util';
 
 const TextAtlasCache: { [k: string]: FontAtlas } = {}
 
diff --git a/src/mol-geo/geometry/text/text-builder.ts b/src/mol-geo/geometry/text/text-builder.ts
index ec3e077d56b8bee5df8dd891309bb8e19e7c3818..3b4b5917e27bfc4a33bec171f7ecec451fe9330b 100644
--- a/src/mol-geo/geometry/text/text-builder.ts
+++ b/src/mol-geo/geometry/text/text-builder.ts
@@ -4,9 +4,9 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { ValueCell } from 'mol-util/value-cell'
-import { ChunkedArray } from 'mol-data/util';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { ValueCell } from '../../../mol-util/value-cell'
+import { ChunkedArray } from '../../../mol-data/util';
 import { Text } from './text';
 import { getFontAtlas } from './font-atlas';
 
diff --git a/src/mol-geo/geometry/text/text.ts b/src/mol-geo/geometry/text/text.ts
index 0323d397ded64e55b7fb0c7ffd4880f93252bd4d..cfbb2d31dbe3c5427860732ab11da5e05288f7d4 100644
--- a/src/mol-geo/geometry/text/text.ts
+++ b/src/mol-geo/geometry/text/text.ts
@@ -4,25 +4,25 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { ValueCell } from 'mol-util';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { ValueCell } from '../../../mol-util';
 import { GeometryUtils } from '../geometry';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
+import { LocationIterator } from '../../../mol-geo/util/location-iterator';
 import { TransformData } from '../transform-data';
-import { Theme } from 'mol-theme/theme';
+import { Theme } from '../../../mol-theme/theme';
 import { createColors } from '../color-data';
 import { createSizes, getMaxSize } from '../size-data';
 import { createMarkers } from '../marker-data';
-import { ColorNames } from 'mol-util/color/tables';
-import { Sphere3D } from 'mol-math/geometry';
-import { calculateBoundingSphere, TextureImage, createTextureImage } from 'mol-gl/renderable/util';
-import { TextValues } from 'mol-gl/renderable/text';
-import { Color } from 'mol-util/color';
-import { Vec3 } from 'mol-math/linear-algebra';
+import { ColorNames } from '../../../mol-util/color/tables';
+import { Sphere3D } from '../../../mol-math/geometry';
+import { calculateBoundingSphere, TextureImage, createTextureImage } from '../../../mol-gl/renderable/util';
+import { TextValues } from '../../../mol-gl/renderable/text';
+import { Color } from '../../../mol-util/color';
+import { Vec3 } from '../../../mol-math/linear-algebra';
 import { FontAtlasParams } from './font-atlas';
-import { RenderableState } from 'mol-gl/renderable';
-import { clamp } from 'mol-math/interpolate';
-import { createRenderObject as _createRenderObject } from 'mol-gl/render-object';
+import { RenderableState } from '../../../mol-gl/renderable';
+import { clamp } from '../../../mol-math/interpolate';
+import { createRenderObject as _createRenderObject } from '../../../mol-gl/render-object';
 import { BaseGeometry } from '../base';
 import { createEmptyOverpaint } from '../overpaint-data';
 import { createEmptyTransparency } from '../transparency-data';
diff --git a/src/mol-geo/geometry/texture-mesh/texture-mesh.ts b/src/mol-geo/geometry/texture-mesh/texture-mesh.ts
index 9e235f03ca3bbe469448c6f9188a1a8bee9e5266..2853d84a9e2400a7e456dce8f0f187be717e26f4 100644
--- a/src/mol-geo/geometry/texture-mesh/texture-mesh.ts
+++ b/src/mol-geo/geometry/texture-mesh/texture-mesh.ts
@@ -4,24 +4,24 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util'
-import { Sphere3D } from 'mol-math/geometry'
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
+import { ValueCell } from '../../../mol-util'
+import { Sphere3D } from '../../../mol-math/geometry'
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { LocationIterator } from '../../../mol-geo/util/location-iterator';
 import { TransformData } from '../transform-data';
 import { createColors } from '../color-data';
 import { createMarkers } from '../marker-data';
 import { GeometryUtils } from '../geometry';
-import { Theme } from 'mol-theme/theme';
-import { Color } from 'mol-util/color';
+import { Theme } from '../../../mol-theme/theme';
+import { Color } from '../../../mol-util/color';
 import { BaseGeometry } from '../base';
 import { createEmptyOverpaint } from '../overpaint-data';
 import { createEmptyTransparency } from '../transparency-data';
-import { TextureMeshValues } from 'mol-gl/renderable/texture-mesh';
-import { calculateTransformBoundingSphere } from 'mol-gl/renderable/util';
-import { Texture } from 'mol-gl/webgl/texture';
-import { Vec2 } from 'mol-math/linear-algebra';
-import { fillSerial } from 'mol-util/array';
+import { TextureMeshValues } from '../../../mol-gl/renderable/texture-mesh';
+import { calculateTransformBoundingSphere } from '../../../mol-gl/renderable/util';
+import { Texture } from '../../../mol-gl/webgl/texture';
+import { Vec2 } from '../../../mol-math/linear-algebra';
+import { fillSerial } from '../../../mol-util/array';
 
 export interface TextureMesh {
     readonly kind: 'texture-mesh',
diff --git a/src/mol-geo/geometry/transform-data.ts b/src/mol-geo/geometry/transform-data.ts
index de4b2b797cc8bdb94d2b02a43459cf799854858d..748f8ed74ad6f442b38675dc49b3bda0a891b2d6 100644
--- a/src/mol-geo/geometry/transform-data.ts
+++ b/src/mol-geo/geometry/transform-data.ts
@@ -4,9 +4,9 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util';
-import { Mat4 } from 'mol-math/linear-algebra';
-import { fillSerial } from 'mol-util/array';
+import { ValueCell } from '../../mol-util';
+import { Mat4 } from '../../mol-math/linear-algebra';
+import { fillSerial } from '../../mol-util/array';
 
 export type TransformData = {
     /**
diff --git a/src/mol-geo/geometry/transparency-data.ts b/src/mol-geo/geometry/transparency-data.ts
index 3b19b6130f9b6dff272c9dd7617c5ae8cb3ad98b..e463d6aff4c02f80a0848d6c9dbae4603b5ad7c0 100644
--- a/src/mol-geo/geometry/transparency-data.ts
+++ b/src/mol-geo/geometry/transparency-data.ts
@@ -4,10 +4,10 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util/value-cell'
-import { Vec2 } from 'mol-math/linear-algebra'
-import { TextureImage, createTextureImage } from 'mol-gl/renderable/util';
-import { Transparency } from 'mol-theme/transparency';
+import { ValueCell } from '../../mol-util/value-cell'
+import { Vec2 } from '../../mol-math/linear-algebra'
+import { TextureImage, createTextureImage } from '../../mol-gl/renderable/util';
+import { Transparency } from '../../mol-theme/transparency';
 
 export type TransparencyData = {
     tTransparency: ValueCell<TextureImage<Uint8Array>>
diff --git a/src/mol-geo/primitive/box.ts b/src/mol-geo/primitive/box.ts
index 5ce466fe7188a9543f5f033e875b0b5b3679e409..a677d94a1ee7b66e9cb3a8643fd63e383fcfc42e 100644
--- a/src/mol-geo/primitive/box.ts
+++ b/src/mol-geo/primitive/box.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Vec3 } from 'mol-math/linear-algebra'
+import { Vec3 } from '../../mol-math/linear-algebra'
 import { Primitive, PrimitiveBuilder } from './primitive';
 import { polygon } from './polygon'
 import { Cage, createCage } from './cage';
diff --git a/src/mol-geo/primitive/cylinder.ts b/src/mol-geo/primitive/cylinder.ts
index 58f8b893e80e64bbca425e43d42f293c7ef2ded3..1760c3b10dc5f101c3f9d923c3ccb8d4c1395b04 100644
--- a/src/mol-geo/primitive/cylinder.ts
+++ b/src/mol-geo/primitive/cylinder.ts
@@ -6,7 +6,7 @@
 
 // adapted from three.js, MIT License Copyright 2010-2018 three.js authors
 
-import { Vec3 } from 'mol-math/linear-algebra'
+import { Vec3 } from '../../mol-math/linear-algebra'
 import { Primitive } from './primitive';
 
 export const DefaultCylinderProps = {
diff --git a/src/mol-geo/primitive/plane.ts b/src/mol-geo/primitive/plane.ts
index f0886e6270d1a6b8b29a95a87c66bb5f1db50aa4..fbfb2194e5891020ed7690a3b5f66bd2e9eb749c 100644
--- a/src/mol-geo/primitive/plane.ts
+++ b/src/mol-geo/primitive/plane.ts
@@ -1,12 +1,12 @@
-import { Primitive } from './primitive';
-import { Cage } from './cage';
-
 /**
  * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
  *
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
+import { Primitive } from './primitive';
+import { Cage } from './cage';
+
 const plane: Primitive = {
     vertices: new Float32Array([
         -0.5, 0.5, 0,
diff --git a/src/mol-geo/primitive/polyhedron.ts b/src/mol-geo/primitive/polyhedron.ts
index 02a69df21812f30d8b081cc88988e05b84b9d905..3d46a8067b609f1ebbbb30fd22fb53bc00144e24 100644
--- a/src/mol-geo/primitive/polyhedron.ts
+++ b/src/mol-geo/primitive/polyhedron.ts
@@ -6,7 +6,7 @@
 
 // adapted from three.js, MIT License Copyright 2010-2018 three.js authors
 
-import { Vec3 } from 'mol-math/linear-algebra'
+import { Vec3 } from '../../mol-math/linear-algebra'
 import { computeIndexedVertexNormals, appplyRadius } from '../util'
 import { Primitive } from './primitive';
 
diff --git a/src/mol-geo/primitive/primitive.ts b/src/mol-geo/primitive/primitive.ts
index b84dbf379fdf281965bb178e0f1f1d498e93c91b..55a6922a8b4ffcad1354b4d601e3d4d9f8f232f8 100644
--- a/src/mol-geo/primitive/primitive.ts
+++ b/src/mol-geo/primitive/primitive.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Vec3 } from 'mol-math/linear-algebra';
+import { Vec3 } from '../../mol-math/linear-algebra';
 
 export interface Primitive {
     vertices: ArrayLike<number>
diff --git a/src/mol-geo/primitive/prism.ts b/src/mol-geo/primitive/prism.ts
index d848f2d6168121b0d77f0389b43602372f5a4eb4..e7d4af4803bc65da3c53df694ac0a816375335a4 100644
--- a/src/mol-geo/primitive/prism.ts
+++ b/src/mol-geo/primitive/prism.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Vec3 } from 'mol-math/linear-algebra'
+import { Vec3 } from '../../mol-math/linear-algebra'
 import { Primitive, PrimitiveBuilder } from './primitive';
 import { polygon } from './polygon'
 import { Cage } from './cage';
diff --git a/src/mol-geo/primitive/pyramid.ts b/src/mol-geo/primitive/pyramid.ts
index 242dcbae5a131f5cf61acd06a3b0bf2e18de81ed..6258cf6c5911ac3e93d5f830beafa612def99fd0 100644
--- a/src/mol-geo/primitive/pyramid.ts
+++ b/src/mol-geo/primitive/pyramid.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Vec3 } from 'mol-math/linear-algebra'
+import { Vec3 } from '../../mol-math/linear-algebra'
 import { Primitive, PrimitiveBuilder, createPrimitive } from './primitive';
 import { polygon } from './polygon'
 import { Cage } from './cage';
diff --git a/src/mol-geo/primitive/spiked-ball.ts b/src/mol-geo/primitive/spiked-ball.ts
index dd2534f7327fe5ab576c16f4712a43c0edf71a93..8313c2da1425548881144fa49b7bbdfdedcb5602 100644
--- a/src/mol-geo/primitive/spiked-ball.ts
+++ b/src/mol-geo/primitive/spiked-ball.ts
@@ -6,7 +6,7 @@
 
 import { createPrimitive, Primitive } from './primitive';
 import { dodecahedronVertices, dodecahedronFaces } from './dodecahedron';
-import { Vec3 } from 'mol-math/linear-algebra';
+import { Vec3 } from '../../mol-math/linear-algebra';
 
 function calcCenter(out: Vec3, ...vec3s: Vec3[]) {
     Vec3.set(out, 0, 0, 0)
diff --git a/src/mol-geo/primitive/star.ts b/src/mol-geo/primitive/star.ts
index 2cb94620c3d450b47f58fb57422a221bc9b2839d..ce5201114de4e1ffc276ee3f18e228cb72f9879d 100644
--- a/src/mol-geo/primitive/star.ts
+++ b/src/mol-geo/primitive/star.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Vec3 } from 'mol-math/linear-algebra'
+import { Vec3 } from '../../mol-math/linear-algebra'
 import { Primitive, PrimitiveBuilder } from './primitive';
 
 export const DefaultStarProps = {
diff --git a/src/mol-geo/primitive/wedge.ts b/src/mol-geo/primitive/wedge.ts
index a39125f4fd7b37dc9138abddf1e70fd640801835..c1bddeec299f2d802dbe3c5a86ad85f7f85f6965 100644
--- a/src/mol-geo/primitive/wedge.ts
+++ b/src/mol-geo/primitive/wedge.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Vec3 } from 'mol-math/linear-algebra'
+import { Vec3 } from '../../mol-math/linear-algebra'
 import { Primitive, PrimitiveBuilder } from './primitive';
 import { polygon } from './polygon'
 import { PrismCage } from './prism';
diff --git a/src/mol-geo/util.ts b/src/mol-geo/util.ts
index d683696c56ca6101e99169c8e3875c35d6400929..1ba42e10204af7a1cb72be25ac8193f618305a8d 100644
--- a/src/mol-geo/util.ts
+++ b/src/mol-geo/util.ts
@@ -4,8 +4,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Vec3, Mat4, Mat3 } from 'mol-math/linear-algebra'
-import { NumberArray } from 'mol-util/type-helpers';
+import { Vec3, Mat4, Mat3 } from '../mol-math/linear-algebra'
+import { NumberArray } from '../mol-util/type-helpers';
 
 export function normalizeVec3Array<T extends NumberArray> (a: T) {
     const n = a.length
diff --git a/src/mol-geo/util/location-iterator.ts b/src/mol-geo/util/location-iterator.ts
index 8c43501c13590ccffb433fbb2a4e8b5faeecdf83..c561f659a94d5ab538c0ab757a976246f19a5d56 100644
--- a/src/mol-geo/util/location-iterator.ts
+++ b/src/mol-geo/util/location-iterator.ts
@@ -4,8 +4,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Iterator } from 'mol-data';
-import { NullLocation, Location } from 'mol-model/location';
+import { Iterator } from '../../mol-data';
+import { NullLocation, Location } from '../../mol-model/location';
 
 export interface LocationValue {
     location: Location
diff --git a/src/mol-geo/util/marching-cubes/algorithm.ts b/src/mol-geo/util/marching-cubes/algorithm.ts
index e446ad2576f1d9a3ffc2b8afda4c0ba2f87b8c2a..cbc5d4234aaf8191a7628ba1a16fe1958447d851 100644
--- a/src/mol-geo/util/marching-cubes/algorithm.ts
+++ b/src/mol-geo/util/marching-cubes/algorithm.ts
@@ -5,11 +5,11 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Task, RuntimeContext } from 'mol-task'
-import { Tensor } from 'mol-math/linear-algebra'
+import { Task, RuntimeContext } from '../../../mol-task'
+import { Tensor } from '../../../mol-math/linear-algebra'
 import { Mesh } from '../../geometry/mesh/mesh'
 import { Index, EdgeIdInfo, CubeEdges, EdgeTable, TriTable } from './tables'
-import { defaults } from 'mol-util'
+import { defaults } from '../../../mol-util'
 import { MarchinCubesBuilder, MarchinCubesMeshBuilder, MarchinCubesLinesBuilder } from './builder';
 import { Lines } from '../../geometry/lines/lines';
 
diff --git a/src/mol-geo/util/marching-cubes/builder.ts b/src/mol-geo/util/marching-cubes/builder.ts
index 8d78d9f32614947573d734bc390fee08b05e9b9d..4b728d8b26ef1b0df86acefd7f662095fbc4813a 100644
--- a/src/mol-geo/util/marching-cubes/builder.ts
+++ b/src/mol-geo/util/marching-cubes/builder.ts
@@ -7,7 +7,7 @@
  */
 
 import { ChunkedArray } from '../../../mol-data/util';
-import { ValueCell, noop } from 'mol-util';
+import { ValueCell, noop } from '../../../mol-util';
 import { Mesh } from '../../geometry/mesh/mesh';
 import { AllowedContours } from './tables';
 import { LinesBuilder } from '../../geometry/lines/lines-builder';
diff --git a/src/mol-gl/_spec/gl.shim.ts b/src/mol-gl/_spec/gl.shim.ts
index b593beef409268de777313028b3ecdfc9c069de1..bcd8a6223bf5df1d81e4858aab69729d066a4576 100644
--- a/src/mol-gl/_spec/gl.shim.ts
+++ b/src/mol-gl/_spec/gl.shim.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { idFactory } from 'mol-util/id-factory'
+import { idFactory } from '../../mol-util/id-factory'
 
 const c = {
     ACTIVE_ATTRIBUTE_MAX_LENGTH: 35722,
diff --git a/src/mol-gl/_spec/renderer.spec.ts b/src/mol-gl/_spec/renderer.spec.ts
index 519699cef61f269966f7ecd5dc977790c11d730f..20dc0bb15229a1a36743ca2c82910af2802a9702 100644
--- a/src/mol-gl/_spec/renderer.spec.ts
+++ b/src/mol-gl/_spec/renderer.spec.ts
@@ -6,24 +6,24 @@
 
 import { createGl } from './gl.shim';
 
-import { Camera } from 'mol-canvas3d/camera';
-import { Vec3, Mat4 } from 'mol-math/linear-algebra';
-import { ValueCell } from 'mol-util';
+import { Camera } from '../../mol-canvas3d/camera';
+import { Vec3, Mat4 } from '../../mol-math/linear-algebra';
+import { ValueCell } from '../../mol-util';
 
 import Renderer from '../renderer';
-import { createValueColor } from 'mol-geo/geometry/color-data';
-import { createValueSize } from 'mol-geo/geometry/size-data';
+import { createValueColor } from '../../mol-geo/geometry/color-data';
+import { createValueSize } from '../../mol-geo/geometry/size-data';
 import { createContext } from '../webgl/context';
 import { RenderableState } from '../renderable';
 import { createRenderObject } from '../render-object';
 import { PointsValues } from '../renderable/points';
 import Scene from '../scene';
-import { createEmptyMarkers } from 'mol-geo/geometry/marker-data';
-import { fillSerial } from 'mol-util/array';
-import { Color } from 'mol-util/color';
-import { Sphere3D } from 'mol-math/geometry';
-import { createEmptyOverpaint } from 'mol-geo/geometry/overpaint-data';
-import { createEmptyTransparency } from 'mol-geo/geometry/transparency-data';
+import { createEmptyMarkers } from '../../mol-geo/geometry/marker-data';
+import { fillSerial } from '../../mol-util/array';
+import { Color } from '../../mol-util/color';
+import { Sphere3D } from '../../mol-math/geometry';
+import { createEmptyOverpaint } from '../../mol-geo/geometry/overpaint-data';
+import { createEmptyTransparency } from '../../mol-geo/geometry/transparency-data';
 
 function createRenderer(gl: WebGLRenderingContext) {
     const ctx = createContext(gl)
diff --git a/src/mol-gl/compute/histogram-pyramid/reduction.ts b/src/mol-gl/compute/histogram-pyramid/reduction.ts
index 5185aa3246b54b2884f5042020fb2e1b5e087313..e6b74dc3f52f530c9f2f6f95d747b27475b4c787 100644
--- a/src/mol-gl/compute/histogram-pyramid/reduction.ts
+++ b/src/mol-gl/compute/histogram-pyramid/reduction.ts
@@ -8,16 +8,16 @@ import { createComputeRenderable, ComputeRenderable } from '../../renderable'
 import { WebGLContext } from '../../webgl/context';
 import { createComputeRenderItem } from '../../webgl/render-item';
 import { Values, TextureSpec, UniformSpec } from '../../renderable/schema';
-import { Texture, createTexture } from 'mol-gl/webgl/texture';
-import { ShaderCode } from 'mol-gl/shader-code';
-import { ValueCell } from 'mol-util';
+import { Texture, createTexture } from '../../../mol-gl/webgl/texture';
+import { ShaderCode } from '../../../mol-gl/shader-code';
+import { ValueCell } from '../../../mol-util';
 import { QuadSchema, QuadValues } from '../util';
-import { Vec2 } from 'mol-math/linear-algebra';
+import { Vec2 } from '../../../mol-math/linear-algebra';
 import { getHistopyramidSum } from './sum';
-import { Framebuffer, createFramebuffer } from 'mol-gl/webgl/framebuffer';
-import { isPowerOfTwo } from 'mol-math/misc';
-import quad_vert from 'mol-gl/shader/quad.vert'
-import reduction_frag from 'mol-gl/shader/histogram-pyramid/reduction.frag'
+import { Framebuffer, createFramebuffer } from '../../../mol-gl/webgl/framebuffer';
+import { isPowerOfTwo } from '../../../mol-math/misc';
+import quad_vert from '../../../mol-gl/shader/quad.vert'
+import reduction_frag from '../../../mol-gl/shader/histogram-pyramid/reduction.frag'
 
 const HistopyramidReductionSchema = {
     ...QuadSchema,
diff --git a/src/mol-gl/compute/histogram-pyramid/sum.ts b/src/mol-gl/compute/histogram-pyramid/sum.ts
index c8271bbce14aabb9041e9aa06eedd5f3cdbda98a..836cc21a675c8cbb37262d0a00ef92e8d1765d24 100644
--- a/src/mol-gl/compute/histogram-pyramid/sum.ts
+++ b/src/mol-gl/compute/histogram-pyramid/sum.ts
@@ -8,13 +8,13 @@ import { createComputeRenderable, ComputeRenderable } from '../../renderable'
 import { WebGLContext } from '../../webgl/context';
 import { createComputeRenderItem } from '../../webgl/render-item';
 import { Values, TextureSpec } from '../../renderable/schema';
-import { Texture, createTexture } from 'mol-gl/webgl/texture';
-import { ShaderCode } from 'mol-gl/shader-code';
-import { ValueCell } from 'mol-util';
-import { decodeFloatRGB } from 'mol-util/float-packing';
+import { Texture, createTexture } from '../../../mol-gl/webgl/texture';
+import { ShaderCode } from '../../../mol-gl/shader-code';
+import { ValueCell } from '../../../mol-util';
+import { decodeFloatRGB } from '../../../mol-util/float-packing';
 import { QuadSchema, QuadValues } from '../util';
-import quad_vert from 'mol-gl/shader/quad.vert'
-import sum_frag from 'mol-gl/shader/histogram-pyramid/sum.frag'
+import quad_vert from '../../../mol-gl/shader/quad.vert'
+import sum_frag from '../../../mol-gl/shader/histogram-pyramid/sum.frag'
 
 const HistopyramidSumSchema = {
     ...QuadSchema,
diff --git a/src/mol-gl/compute/marching-cubes/active-voxels.ts b/src/mol-gl/compute/marching-cubes/active-voxels.ts
index 6dc767475ddeef1c341de1164780bb14c544f658..8ad20d72e344bf6762d62c6a0bc7a71a5184eca6 100644
--- a/src/mol-gl/compute/marching-cubes/active-voxels.ts
+++ b/src/mol-gl/compute/marching-cubes/active-voxels.ts
@@ -8,14 +8,14 @@ import { createComputeRenderable } from '../../renderable'
 import { WebGLContext } from '../../webgl/context';
 import { createComputeRenderItem } from '../../webgl/render-item';
 import { Values, TextureSpec, UniformSpec } from '../../renderable/schema';
-import { Texture, createTexture } from 'mol-gl/webgl/texture';
-import { ShaderCode } from 'mol-gl/shader-code';
-import { ValueCell } from 'mol-util';
-import { Vec3, Vec2 } from 'mol-math/linear-algebra';
+import { Texture, createTexture } from '../../../mol-gl/webgl/texture';
+import { ShaderCode } from '../../../mol-gl/shader-code';
+import { ValueCell } from '../../../mol-util';
+import { Vec3, Vec2 } from '../../../mol-math/linear-algebra';
 import { QuadSchema, QuadValues } from '../util';
 import { getTriCount } from './tables';
-import quad_vert from 'mol-gl/shader/quad.vert'
-import active_voxels_frag from 'mol-gl/shader/marching-cubes/active-voxels.frag'
+import quad_vert from '../../../mol-gl/shader/quad.vert'
+import active_voxels_frag from '../../../mol-gl/shader/marching-cubes/active-voxels.frag'
 
 /** name for shared framebuffer used for gpu marching cubes operations */
 const FramebufferName = 'marching-cubes-active-voxels'
diff --git a/src/mol-gl/compute/marching-cubes/isosurface.ts b/src/mol-gl/compute/marching-cubes/isosurface.ts
index 23c6b826682908974ced0f28716475dd221833c9..baea397c0584fcba320ef0528a3ceb8e3d3eb030 100644
--- a/src/mol-gl/compute/marching-cubes/isosurface.ts
+++ b/src/mol-gl/compute/marching-cubes/isosurface.ts
@@ -8,15 +8,15 @@ import { createComputeRenderable } from '../../renderable'
 import { WebGLContext } from '../../webgl/context';
 import { createComputeRenderItem } from '../../webgl/render-item';
 import { Values, TextureSpec, UniformSpec } from '../../renderable/schema';
-import { Texture, createTexture } from 'mol-gl/webgl/texture';
-import { ShaderCode } from 'mol-gl/shader-code';
-import { ValueCell } from 'mol-util';
-import { Vec3, Vec2, Mat4 } from 'mol-math/linear-algebra';
+import { Texture, createTexture } from '../../../mol-gl/webgl/texture';
+import { ShaderCode } from '../../../mol-gl/shader-code';
+import { ValueCell } from '../../../mol-util';
+import { Vec3, Vec2, Mat4 } from '../../../mol-math/linear-algebra';
 import { QuadSchema, QuadValues } from '../util';
 import { HistogramPyramid } from '../histogram-pyramid/reduction';
 import { getTriIndices } from './tables';
-import quad_vert from 'mol-gl/shader/quad.vert'
-import isosurface_frag from 'mol-gl/shader/marching-cubes/isosurface.frag'
+import quad_vert from '../../../mol-gl/shader/quad.vert'
+import isosurface_frag from '../../../mol-gl/shader/marching-cubes/isosurface.frag'
 
 /** name for shared framebuffer used for gpu marching cubes operations */
 const FramebufferName = 'marching-cubes-isosurface'
diff --git a/src/mol-gl/compute/marching-cubes/tables.ts b/src/mol-gl/compute/marching-cubes/tables.ts
index 3fafe4de31e5b1d5c7d6120b468b19ba483210e6..bdf983c5fdbe65141c41a1c8ea53bb22425867a2 100644
--- a/src/mol-gl/compute/marching-cubes/tables.ts
+++ b/src/mol-gl/compute/marching-cubes/tables.ts
@@ -4,8 +4,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { TriTable,  } from 'mol-geo/util/marching-cubes/tables';
-import { TextureImage, createTextureImage } from 'mol-gl/renderable/util';
+import { TriTable,  } from '../../../mol-geo/util/marching-cubes/tables';
+import { TextureImage, createTextureImage } from '../../../mol-gl/renderable/util';
 
 let TriCount: TextureImage<Uint8Array> | undefined
 export function getTriCount(): TextureImage<Uint8Array> {
diff --git a/src/mol-gl/compute/util.ts b/src/mol-gl/compute/util.ts
index bfd56369047a6515ebec80082870f3fb2d65d9e5..bd9a3a7bb908d3142e683fa4f10d0594940c4b46 100644
--- a/src/mol-gl/compute/util.ts
+++ b/src/mol-gl/compute/util.ts
@@ -4,13 +4,13 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { WebGLContext } from 'mol-gl/webgl/context';
-import { Texture } from 'mol-gl/webgl/texture';
-import { printTextureImage } from 'mol-gl/renderable/util';
-import { defaults, ValueCell } from 'mol-util';
-import { ValueSpec, AttributeSpec, UniformSpec, Values } from 'mol-gl/renderable/schema';
-import { Vec2 } from 'mol-math/linear-algebra';
-import { GLRenderingContext } from 'mol-gl/webgl/compat';
+import { WebGLContext } from '../../mol-gl/webgl/context';
+import { Texture } from '../../mol-gl/webgl/texture';
+import { printTextureImage } from '../../mol-gl/renderable/util';
+import { defaults, ValueCell } from '../../mol-util';
+import { ValueSpec, AttributeSpec, UniformSpec, Values } from '../../mol-gl/renderable/schema';
+import { Vec2 } from '../../mol-math/linear-algebra';
+import { GLRenderingContext } from '../../mol-gl/webgl/compat';
 
 export const QuadPositions = new Float32Array([
      1.0,  1.0,  -1.0,  1.0,  -1.0, -1.0, // First triangle
diff --git a/src/mol-gl/object3d.ts b/src/mol-gl/object3d.ts
index 45887fec47c16577a9a97dfbfb55a9dbddb2f5f5..81cba1020a59e3156e79fd6cb020aff928c86471 100644
--- a/src/mol-gl/object3d.ts
+++ b/src/mol-gl/object3d.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Vec3, Mat4 } from 'mol-math/linear-algebra';
+import { Vec3, Mat4 } from '../mol-math/linear-algebra';
 
 export interface Object3D {
     readonly view: Mat4
diff --git a/src/mol-gl/render-object.ts b/src/mol-gl/render-object.ts
index a464f730d9e801bce6edeb6b6281096b3d01c7fd..3b758213f84e2a852155d708473fad854be75dd9 100644
--- a/src/mol-gl/render-object.ts
+++ b/src/mol-gl/render-object.ts
@@ -6,7 +6,7 @@
 
 import { RenderableState, Renderable } from './renderable'
 import { RenderableValues } from './renderable/schema';
-import { idFactory } from 'mol-util/id-factory';
+import { idFactory } from '../mol-util/id-factory';
 import { WebGLContext } from './webgl/context';
 import { DirectVolumeValues, DirectVolumeRenderable } from './renderable/direct-volume';
 import { MeshValues, MeshRenderable } from './renderable/mesh';
diff --git a/src/mol-gl/renderable.ts b/src/mol-gl/renderable.ts
index 19bb43892275aae908decac6710fa30a9b1ba7ce..86df8c3f51947aa757bd392c59b4bf6d006bcec0 100644
--- a/src/mol-gl/renderable.ts
+++ b/src/mol-gl/renderable.ts
@@ -7,9 +7,9 @@
 import { Program } from './webgl/program';
 import { RenderableValues, Values, RenderableSchema } from './renderable/schema';
 import { GraphicsRenderItem, ComputeRenderItem, GraphicsRenderVariant } from './webgl/render-item';
-import { ValueCell } from 'mol-util';
-import { idFactory } from 'mol-util/id-factory';
-import { clamp } from 'mol-math/interpolate';
+import { ValueCell } from '../mol-util';
+import { idFactory } from '../mol-util/id-factory';
+import { clamp } from '../mol-math/interpolate';
 
 const getNextRenderableId = idFactory()
 
diff --git a/src/mol-gl/renderable/direct-volume.ts b/src/mol-gl/renderable/direct-volume.ts
index 8b8d2dfe47ab5c0366156b739bbfcba32debbb2c..285020da1307e67d2b0d1217b79592b5e452adf3 100644
--- a/src/mol-gl/renderable/direct-volume.ts
+++ b/src/mol-gl/renderable/direct-volume.ts
@@ -9,7 +9,7 @@ import { WebGLContext } from '../webgl/context';
 import { createGraphicsRenderItem } from '../webgl/render-item';
 import { AttributeSpec, Values, UniformSpec, GlobalUniformSchema, InternalSchema, TextureSpec, ValueSpec, ElementsSpec, DefineSpec, InternalValues } from './schema';
 import { DirectVolumeShaderCode } from '../shader-code';
-import { ValueCell } from 'mol-util';
+import { ValueCell } from '../../mol-util';
 
 export const DirectVolumeSchema = {
     uColor: UniformSpec('v3'),
diff --git a/src/mol-gl/renderable/lines.ts b/src/mol-gl/renderable/lines.ts
index e44a62f727944a953bf33ada6fcc43307fd2b3dc..d7b293dd97f9ab9854d1cbf8e2c01833fcd51424 100644
--- a/src/mol-gl/renderable/lines.ts
+++ b/src/mol-gl/renderable/lines.ts
@@ -8,7 +8,7 @@ import { Renderable, RenderableState, createRenderable } from '../renderable'
 import { WebGLContext } from '../webgl/context';
 import { createGraphicsRenderItem } from '../webgl/render-item';
 import { GlobalUniformSchema, BaseSchema, AttributeSpec, DefineSpec, Values, InternalSchema, SizeSchema, ElementsSpec, InternalValues } from './schema';
-import { ValueCell } from 'mol-util';
+import { ValueCell } from '../../mol-util';
 import { LinesShaderCode } from '../shader-code';
 
 export const LinesSchema = {
diff --git a/src/mol-gl/renderable/mesh.ts b/src/mol-gl/renderable/mesh.ts
index bcf65b9f0901227dc3407c7e64832fdb434ecc14..8e74ad80f71f7ef5573b8e8e566f6db9dd1cbbe9 100644
--- a/src/mol-gl/renderable/mesh.ts
+++ b/src/mol-gl/renderable/mesh.ts
@@ -9,7 +9,7 @@ import { WebGLContext } from '../webgl/context';
 import { createGraphicsRenderItem } from '../webgl/render-item';
 import { GlobalUniformSchema, BaseSchema, AttributeSpec, ElementsSpec, DefineSpec, Values, InternalSchema, InternalValues } from './schema';
 import { MeshShaderCode } from '../shader-code';
-import { ValueCell } from 'mol-util';
+import { ValueCell } from '../../mol-util';
 
 export const MeshSchema = {
     ...BaseSchema,
diff --git a/src/mol-gl/renderable/points.ts b/src/mol-gl/renderable/points.ts
index 6b2cf5e1a3e69891055c76e22fd39d28baae3c00..0ed8c58f79fabc8f75a5d219c98c8086465d27d0 100644
--- a/src/mol-gl/renderable/points.ts
+++ b/src/mol-gl/renderable/points.ts
@@ -9,7 +9,7 @@ import { WebGLContext } from '../webgl/context';
 import { createGraphicsRenderItem } from '../webgl/render-item';
 import { GlobalUniformSchema, BaseSchema, AttributeSpec, UniformSpec, DefineSpec, Values, InternalSchema, SizeSchema, InternalValues } from './schema';
 import { PointsShaderCode } from '../shader-code';
-import { ValueCell } from 'mol-util';
+import { ValueCell } from '../../mol-util';
 
 export const PointsSchema = {
     ...BaseSchema,
diff --git a/src/mol-gl/renderable/schema.ts b/src/mol-gl/renderable/schema.ts
index 492b5a51388f3061035b72a106c9c6443106b8dc..97fdf372e4b25a6f4cd7f0b991f543025e93ee0d 100644
--- a/src/mol-gl/renderable/schema.ts
+++ b/src/mol-gl/renderable/schema.ts
@@ -4,14 +4,14 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util';
+import { ValueCell } from '../../mol-util';
 import { AttributeItemSize, ElementsKind, AttributeValues, AttributeKind } from '../webgl/buffer';
 import { UniformKind, UniformValues } from '../webgl/uniform';
 import { DefineKind, DefineValues } from '../shader-code';
-import { Vec2, Vec3, Vec4, Mat3, Mat4 } from 'mol-math/linear-algebra';
+import { Vec2, Vec3, Vec4, Mat3, Mat4 } from '../../mol-math/linear-algebra';
 import { TextureImage, TextureVolume } from './util';
 import { TextureValues, TextureType, TextureFormat, TextureFilter, TextureKind, Texture } from '../webgl/texture';
-import { Sphere3D } from 'mol-math/geometry';
+import { Sphere3D } from '../../mol-math/geometry';
 
 export type ValueKindType = {
     'number': number
diff --git a/src/mol-gl/renderable/spheres.ts b/src/mol-gl/renderable/spheres.ts
index 1af5348ec7029a76e0dd93dc790eaeac20967cc0..cd78335a18f95e5c24867de8d5bea599b1644cdb 100644
--- a/src/mol-gl/renderable/spheres.ts
+++ b/src/mol-gl/renderable/spheres.ts
@@ -9,7 +9,7 @@ import { WebGLContext } from '../webgl/context';
 import { createGraphicsRenderItem } from '../webgl/render-item';
 import { GlobalUniformSchema, BaseSchema, AttributeSpec, Values, InternalSchema, SizeSchema, InternalValues, ElementsSpec, ValueSpec, DefineSpec } from './schema';
 import { SpheresShaderCode } from '../shader-code';
-import { ValueCell } from 'mol-util';
+import { ValueCell } from '../../mol-util';
 
 export const SpheresSchema = {
     ...BaseSchema,
diff --git a/src/mol-gl/renderable/text.ts b/src/mol-gl/renderable/text.ts
index 1bf43a8569bf25c8cb22efa3bff6730b7f99b61e..993feda41d0981a1f87df0ba2db8ace6ab21bd5b 100644
--- a/src/mol-gl/renderable/text.ts
+++ b/src/mol-gl/renderable/text.ts
@@ -9,7 +9,7 @@ import { WebGLContext } from '../webgl/context';
 import { createGraphicsRenderItem } from '../webgl/render-item';
 import { GlobalUniformSchema, BaseSchema, AttributeSpec, UniformSpec, Values, InternalSchema, SizeSchema, InternalValues, TextureSpec, ElementsSpec, ValueSpec } from './schema';
 import { TextShaderCode } from '../shader-code';
-import { ValueCell } from 'mol-util';
+import { ValueCell } from '../../mol-util';
 
 export const TextSchema = {
     ...BaseSchema,
diff --git a/src/mol-gl/renderable/texture-mesh.ts b/src/mol-gl/renderable/texture-mesh.ts
index 75f6f08b1a66bea15c48cce11e5b24532c1c992d..c8ab401f072a30f79b8048d32c3d9cb7b8fab2b2 100644
--- a/src/mol-gl/renderable/texture-mesh.ts
+++ b/src/mol-gl/renderable/texture-mesh.ts
@@ -9,7 +9,7 @@ import { WebGLContext } from '../webgl/context';
 import { createGraphicsRenderItem } from '../webgl/render-item';
 import { GlobalUniformSchema, BaseSchema, DefineSpec, Values, InternalSchema, InternalValues, UniformSpec, TextureSpec } from './schema';
 import { MeshShaderCode } from '../shader-code';
-import { ValueCell } from 'mol-util';
+import { ValueCell } from '../../mol-util';
 
 export const TextureMeshSchema = {
     ...BaseSchema,
diff --git a/src/mol-gl/renderable/util.ts b/src/mol-gl/renderable/util.ts
index 7a8400e549b068854f1ae0ffbd9121394b3a698b..e33d096228f88b37a3d3b2b03d18da2d1f70a29e 100644
--- a/src/mol-gl/renderable/util.ts
+++ b/src/mol-gl/renderable/util.ts
@@ -4,9 +4,9 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Sphere3D } from 'mol-math/geometry'
-import { Vec3 } from 'mol-math/linear-algebra'
-import { BoundaryHelper } from 'mol-math/geometry/boundary-helper';
+import { Sphere3D } from '../../mol-math/geometry'
+import { Vec3 } from '../../mol-math/linear-algebra'
+import { BoundaryHelper } from '../../mol-math/geometry/boundary-helper';
 
 export function calculateTextureInfo (n: number, itemSize: number) {
     const sqN = Math.sqrt(n)
diff --git a/src/mol-gl/renderer.ts b/src/mol-gl/renderer.ts
index 24093f858e388eddd9c21dae0845384604ce8377..21093f1342a7967d8c3a0894c72e1ce28259758d 100644
--- a/src/mol-gl/renderer.ts
+++ b/src/mol-gl/renderer.ts
@@ -4,19 +4,19 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Viewport } from 'mol-canvas3d/camera/util';
-import { Camera } from 'mol-canvas3d/camera';
+import { Viewport } from '../mol-canvas3d/camera/util';
+import { Camera } from '../mol-canvas3d/camera';
 
 import Scene from './scene';
 import { WebGLContext } from './webgl/context';
-import { Mat4, Vec3, Vec4 } from 'mol-math/linear-algebra';
+import { Mat4, Vec3, Vec4 } from '../mol-math/linear-algebra';
 import { Renderable } from './renderable';
-import { Color } from 'mol-util/color';
-import { ValueCell } from 'mol-util';
+import { Color } from '../mol-util/color';
+import { ValueCell } from '../mol-util';
 import { RenderableValues, GlobalUniformValues, BaseValues } from './renderable/schema';
 import { GraphicsRenderVariant } from './webgl/render-item';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { deepClone } from 'mol-util/object';
+import { ParamDefinition as PD } from '../mol-util/param-definition';
+import { deepClone } from '../mol-util/object';
 
 export interface RendererStats {
     programCount: number
diff --git a/src/mol-gl/scene.ts b/src/mol-gl/scene.ts
index 3096aa741c5a6e12f40d9592b7c5d28bc1997201..baa17e3b4ee7dd30260deadb909540efd13d14a5 100644
--- a/src/mol-gl/scene.ts
+++ b/src/mol-gl/scene.ts
@@ -9,9 +9,9 @@ import { WebGLContext } from './webgl/context';
 import { RenderableValues, BaseValues } from './renderable/schema';
 import { GraphicsRenderObject, createRenderable } from './render-object';
 import { Object3D } from './object3d';
-import { Sphere3D } from 'mol-math/geometry';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { BoundaryHelper } from 'mol-math/geometry/boundary-helper';
+import { Sphere3D } from '../mol-math/geometry';
+import { Vec3 } from '../mol-math/linear-algebra';
+import { BoundaryHelper } from '../mol-math/geometry/boundary-helper';
 
 const boundaryHelper = new BoundaryHelper();
 function calculateBoundingSphere(renderables: Renderable<RenderableValues & BaseValues>[], boundingSphere: Sphere3D): Sphere3D {
diff --git a/src/mol-gl/shader-code.ts b/src/mol-gl/shader-code.ts
index 30df4e0ce0819058b75ea4baae32dac7b36344c0..2aed7ec612d7ab4764db55e63208e5531d8d6840 100644
--- a/src/mol-gl/shader-code.ts
+++ b/src/mol-gl/shader-code.ts
@@ -4,8 +4,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ValueCell } from 'mol-util';
-import { idFactory } from 'mol-util/id-factory';
+import { ValueCell } from '../mol-util';
+import { idFactory } from '../mol-util/id-factory';
 import { WebGLExtensions } from './webgl/extensions';
 import { isWebGL2, GLRenderingContext } from './webgl/compat';
 
@@ -29,28 +29,28 @@ export interface ShaderCode {
     readonly extensions: ShaderExtensions
 }
 
-import apply_fog from 'mol-gl/shader/chunks/apply-fog.glsl'
-import apply_light_color from 'mol-gl/shader/chunks/apply-light-color.glsl'
-import apply_marker_color from 'mol-gl/shader/chunks/apply-marker-color.glsl'
-import assign_color_varying from 'mol-gl/shader/chunks/assign-color-varying.glsl'
-import assign_group from 'mol-gl/shader/chunks/assign-group.glsl'
-import assign_marker_varying from 'mol-gl/shader/chunks/assign-marker-varying.glsl'
-import assign_material_color from 'mol-gl/shader/chunks/assign-material-color.glsl'
-import assign_normal from 'mol-gl/shader/chunks/assign-normal.glsl'
-import assign_position from 'mol-gl/shader/chunks/assign-position.glsl'
-import assign_size from 'mol-gl/shader/chunks/assign-size.glsl'
-import color_frag_params from 'mol-gl/shader/chunks/color-frag-params.glsl'
-import color_vert_params from 'mol-gl/shader/chunks/color-vert-params.glsl'
-import common_frag_params from 'mol-gl/shader/chunks/common-frag-params.glsl'
-import common_vert_params from 'mol-gl/shader/chunks/common-vert-params.glsl'
-import common from 'mol-gl/shader/chunks/common.glsl'
-import light_frag_params from 'mol-gl/shader/chunks/light-frag-params.glsl'
-import matrix_scale from 'mol-gl/shader/chunks/matrix-scale.glsl'
-import normal_frag_params from 'mol-gl/shader/chunks/normal-frag-params.glsl'
-import read_from_texture from 'mol-gl/shader/chunks/read-from-texture.glsl'
-import size_vert_params from 'mol-gl/shader/chunks/size-vert-params.glsl'
-import texture3d_from_2d_linear from 'mol-gl/shader/chunks/texture3d-from-2d-nearest.glsl'
-import texture3d_from_2d_nearest from 'mol-gl/shader/chunks/texture3d-from-2d-nearest.glsl'
+import apply_fog from './shader/chunks/apply-fog.glsl'
+import apply_light_color from './shader/chunks/apply-light-color.glsl'
+import apply_marker_color from './shader/chunks/apply-marker-color.glsl'
+import assign_color_varying from './shader/chunks/assign-color-varying.glsl'
+import assign_group from './shader/chunks/assign-group.glsl'
+import assign_marker_varying from './shader/chunks/assign-marker-varying.glsl'
+import assign_material_color from './shader/chunks/assign-material-color.glsl'
+import assign_normal from './shader/chunks/assign-normal.glsl'
+import assign_position from './shader/chunks/assign-position.glsl'
+import assign_size from './shader/chunks/assign-size.glsl'
+import color_frag_params from './shader/chunks/color-frag-params.glsl'
+import color_vert_params from './shader/chunks/color-vert-params.glsl'
+import common_frag_params from './shader/chunks/common-frag-params.glsl'
+import common_vert_params from './shader/chunks/common-vert-params.glsl'
+import common from './shader/chunks/common.glsl'
+import light_frag_params from './shader/chunks/light-frag-params.glsl'
+import matrix_scale from './shader/chunks/matrix-scale.glsl'
+import normal_frag_params from './shader/chunks/normal-frag-params.glsl'
+import read_from_texture from './shader/chunks/read-from-texture.glsl'
+import size_vert_params from './shader/chunks/size-vert-params.glsl'
+import texture3d_from_2d_linear from './shader/chunks/texture3d-from-2d-nearest.glsl'
+import texture3d_from_2d_nearest from './shader/chunks/texture3d-from-2d-nearest.glsl'
 
 const ShaderChunks: { [k: string]: string } = {
     apply_fog,
@@ -99,28 +99,28 @@ export function ShaderCode(vert: string, frag: string, extensions: ShaderExtensi
     return { id: shaderCodeId(), vert: addIncludes(vert), frag: addIncludes(frag), extensions }
 }
 
-import points_vert from 'mol-gl/shader/points.vert'
-import points_frag from 'mol-gl/shader/points.frag'
+import points_vert from './shader/points.vert'
+import points_frag from './shader/points.frag'
 export const PointsShaderCode = ShaderCode(points_vert, points_frag)
 
-import spheres_vert from 'mol-gl/shader/spheres.vert'
-import spheres_frag from 'mol-gl/shader/spheres.frag'
+import spheres_vert from './shader/spheres.vert'
+import spheres_frag from './shader/spheres.frag'
 export const SpheresShaderCode = ShaderCode(spheres_vert, spheres_frag, { fragDepth: true })
 
-import text_vert from 'mol-gl/shader/text.vert'
-import text_frag from 'mol-gl/shader/text.frag'
+import text_vert from './shader/text.vert'
+import text_frag from './shader/text.frag'
 export const TextShaderCode = ShaderCode(text_vert, text_frag, { standardDerivatives: true })
 
-import lines_vert from 'mol-gl/shader/lines.vert'
-import lines_frag from 'mol-gl/shader/lines.frag'
+import lines_vert from './shader/lines.vert'
+import lines_frag from './shader/lines.frag'
 export const LinesShaderCode = ShaderCode(lines_vert, lines_frag)
 
-import mesh_vert from 'mol-gl/shader/mesh.vert'
-import mesh_frag from 'mol-gl/shader/mesh.frag'
+import mesh_vert from './shader/mesh.vert'
+import mesh_frag from './shader/mesh.frag'
 export const MeshShaderCode = ShaderCode(mesh_vert, mesh_frag, { standardDerivatives: true })
 
-import direct_volume_vert from 'mol-gl/shader/direct-volume.vert'
-import direct_volume_frag from 'mol-gl/shader/direct-volume.frag'
+import direct_volume_vert from './shader/direct-volume.vert'
+import direct_volume_frag from './shader/direct-volume.frag'
 export const DirectVolumeShaderCode = ShaderCode(direct_volume_vert, direct_volume_frag, { fragDepth: true })
 
 //
diff --git a/src/mol-gl/webgl/buffer.ts b/src/mol-gl/webgl/buffer.ts
index eb2c4f43553aea7e69c117c5d3e2169b800d01c2..e5dcfb408e1370688165e195cf741a8c837fbb74 100644
--- a/src/mol-gl/webgl/buffer.ts
+++ b/src/mol-gl/webgl/buffer.ts
@@ -5,10 +5,10 @@
  */
 
 import { WebGLContext } from './context'
-import { ValueCell } from 'mol-util';
+import { ValueCell } from '../../mol-util';
 import { RenderableSchema } from '../renderable/schema';
-import { idFactory } from 'mol-util/id-factory';
-import { ValueOf } from 'mol-util/type-helpers';
+import { idFactory } from '../../mol-util/id-factory';
+import { ValueOf } from '../../mol-util/type-helpers';
 import { GLRenderingContext } from './compat';
 
 const getNextBufferId = idFactory()
diff --git a/src/mol-gl/webgl/context.ts b/src/mol-gl/webgl/context.ts
index c8975a722b301537c0652c4fd8c8fef62e86be4a..90a916f59628444d056ee603010d9dd939889911 100644
--- a/src/mol-gl/webgl/context.ts
+++ b/src/mol-gl/webgl/context.ts
@@ -8,11 +8,11 @@ import { createProgramCache, ProgramCache } from './program'
 import { createShaderCache, ShaderCache } from './shader'
 import { GLRenderingContext, isWebGL2 } from './compat';
 import { createFramebufferCache, FramebufferCache, checkFramebufferStatus } from './framebuffer';
-import { Scheduler } from 'mol-task';
-import { isDebugMode } from 'mol-util/debug';
+import { Scheduler } from '../../mol-task';
+import { isDebugMode } from '../../mol-util/debug';
 import { createExtensions, WebGLExtensions } from './extensions';
 import { WebGLState, createState } from './state';
-import { PixelData } from 'mol-util/image';
+import { PixelData } from '../../mol-util/image';
 
 export function getGLContext(canvas: HTMLCanvasElement, contextAttributes?: WebGLContextAttributes): GLRenderingContext | null {
     function getContext(contextId: 'webgl' | 'experimental-webgl' | 'webgl2') {
diff --git a/src/mol-gl/webgl/framebuffer.ts b/src/mol-gl/webgl/framebuffer.ts
index 997c7412e50ec1d42822a9236507110ceee725c3..c9007d06eef3d56cc19861d1239b8919abeaad1b 100644
--- a/src/mol-gl/webgl/framebuffer.ts
+++ b/src/mol-gl/webgl/framebuffer.ts
@@ -5,8 +5,8 @@
  */
 
 import { WebGLStats } from './context'
-import { idFactory } from 'mol-util/id-factory';
-import { ReferenceCache, createReferenceCache } from 'mol-util/reference-cache';
+import { idFactory } from '../../mol-util/id-factory';
+import { ReferenceCache, createReferenceCache } from '../../mol-util/reference-cache';
 import { GLRenderingContext, isWebGL2 } from './compat';
 
 const getNextFramebufferId = idFactory()
diff --git a/src/mol-gl/webgl/program.ts b/src/mol-gl/webgl/program.ts
index 8d393ac7c3207c34e9082ea0084be7950f41b87c..1bd5bd5ef619f5e685b84fc8d993d10f3a0cadf6 100644
--- a/src/mol-gl/webgl/program.ts
+++ b/src/mol-gl/webgl/program.ts
@@ -10,11 +10,11 @@ import { WebGLExtensions } from './extensions';
 import { getUniformSetters, UniformsList, getUniformType } from './uniform';
 import { AttributeBuffers, getAttribType } from './buffer';
 import { TextureId, Textures } from './texture';
-import { createReferenceCache, ReferenceCache } from 'mol-util/reference-cache';
-import { idFactory } from 'mol-util/id-factory';
+import { createReferenceCache, ReferenceCache } from '../../mol-util/reference-cache';
+import { idFactory } from '../../mol-util/id-factory';
 import { RenderableSchema } from '../renderable/schema';
-import { hashFnv32a, hashString } from 'mol-data/util';
-import { isDebugMode } from 'mol-util/debug';
+import { hashFnv32a, hashString } from '../../mol-data/util';
+import { isDebugMode } from '../../mol-util/debug';
 import { GLRenderingContext } from './compat';
 import { ShaderCache } from './shader';
 
diff --git a/src/mol-gl/webgl/render-item.ts b/src/mol-gl/webgl/render-item.ts
index 40e397a4ecf22c1242e266a1677951444367ed40..5e60430f1f1195303714c9bcc4e964dad313489e 100644
--- a/src/mol-gl/webgl/render-item.ts
+++ b/src/mol-gl/webgl/render-item.ts
@@ -10,13 +10,13 @@ import { WebGLContext, checkError } from './context';
 import { ShaderCode } from '../shader-code';
 import { Program } from './program';
 import { RenderableSchema, RenderableValues, AttributeSpec, getValueVersions, splitValues, Values } from '../renderable/schema';
-import { idFactory } from 'mol-util/id-factory';
+import { idFactory } from '../../mol-util/id-factory';
 import { deleteVertexArray, createVertexArray } from './vertex-array';
-import { ValueCell } from 'mol-util';
-import { ReferenceItem } from 'mol-util/reference-cache';
-import { TextureImage, TextureVolume } from 'mol-gl/renderable/util';
+import { ValueCell } from '../../mol-util';
+import { ReferenceItem } from '../../mol-util/reference-cache';
+import { TextureImage, TextureVolume } from '../../mol-gl/renderable/util';
 import { checkFramebufferStatus } from './framebuffer';
-import { isDebugMode } from 'mol-util/debug';
+import { isDebugMode } from '../../mol-util/debug';
 
 const getNextRenderItemId = idFactory()
 
diff --git a/src/mol-gl/webgl/render-target.ts b/src/mol-gl/webgl/render-target.ts
index d82a66b7b74b02746fd114c8faadc56874ee1cf6..672bc6eaf99c4c8ca6fb20e7561a5f61df2387c0 100644
--- a/src/mol-gl/webgl/render-target.ts
+++ b/src/mol-gl/webgl/render-target.ts
@@ -5,13 +5,13 @@
  */
 
 import { WebGLContext } from './context'
-import { idFactory } from 'mol-util/id-factory';
+import { idFactory } from '../../mol-util/id-factory';
 import { createTexture, Texture } from './texture';
 import { createFramebuffer, Framebuffer } from './framebuffer';
 import { createRenderbuffer } from './renderbuffer';
 import { TextureImage } from '../renderable/util';
-import { Mutable } from 'mol-util/type-helpers';
-import { PixelData } from 'mol-util/image';
+import { Mutable } from '../../mol-util/type-helpers';
+import { PixelData } from '../../mol-util/image';
 
 const getNextRenderTargetId = idFactory()
 
diff --git a/src/mol-gl/webgl/renderbuffer.ts b/src/mol-gl/webgl/renderbuffer.ts
index 86eea102485f89f7b01a6910dc572d42b1b99223..2b72b0c5304ae865a32ff33d867dcf6b9392008d 100644
--- a/src/mol-gl/webgl/renderbuffer.ts
+++ b/src/mol-gl/webgl/renderbuffer.ts
@@ -5,7 +5,7 @@
  */
 
 import { WebGLContext } from './context'
-import { idFactory } from 'mol-util/id-factory';
+import { idFactory } from '../../mol-util/id-factory';
 
 const getNextRenderbufferId = idFactory()
 
diff --git a/src/mol-gl/webgl/shader.ts b/src/mol-gl/webgl/shader.ts
index 546ba0328b185ddbf452181fadea06887112e9ed..bcaa0cdaeb7a20e0af1cf3073c3245c764b12165 100644
--- a/src/mol-gl/webgl/shader.ts
+++ b/src/mol-gl/webgl/shader.ts
@@ -4,10 +4,10 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { createReferenceCache, ReferenceCache } from 'mol-util/reference-cache';
-import { idFactory } from 'mol-util/id-factory';
+import { createReferenceCache, ReferenceCache } from '../../mol-util/reference-cache';
+import { idFactory } from '../../mol-util/id-factory';
 import { GLRenderingContext } from './compat';
-import { isDebugMode } from 'mol-util/debug';
+import { isDebugMode } from '../../mol-util/debug';
 
 const getNextShaderId = idFactory()
 
diff --git a/src/mol-gl/webgl/texture.ts b/src/mol-gl/webgl/texture.ts
index 3918eb5d168b8498eaba19e621d7de16c4414ddb..e0503cd9d6a30d5a764ef9f406b39a71324e23dd 100644
--- a/src/mol-gl/webgl/texture.ts
+++ b/src/mol-gl/webgl/texture.ts
@@ -6,12 +6,12 @@
 
 import { WebGLContext } from './context'
 import { TextureImage, TextureVolume } from '../renderable/util';
-import { ValueCell } from 'mol-util';
+import { ValueCell } from '../../mol-util';
 import { RenderableSchema } from '../renderable/schema';
-import { idFactory } from 'mol-util/id-factory';
+import { idFactory } from '../../mol-util/id-factory';
 import { Framebuffer } from './framebuffer';
 import { isWebGL2 } from './compat';
-import { ValueOf } from 'mol-util/type-helpers';
+import { ValueOf } from '../../mol-util/type-helpers';
 
 const getNextTextureId = idFactory()
 
diff --git a/src/mol-gl/webgl/uniform.ts b/src/mol-gl/webgl/uniform.ts
index bdc7bccc1c2ed3dd7e070ceca149d7e75e780134..136c54c3200edd7244cd4ee18cb3066fb09f0a6f 100644
--- a/src/mol-gl/webgl/uniform.ts
+++ b/src/mol-gl/webgl/uniform.ts
@@ -4,10 +4,10 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Mat3, Mat4, Vec2, Vec3, Vec4 } from 'mol-math/linear-algebra'
-import { ValueCell } from 'mol-util';
+import { Mat3, Mat4, Vec2, Vec3, Vec4 } from '../../mol-math/linear-algebra'
+import { ValueCell } from '../../mol-util';
 import { GLRenderingContext } from './compat';
-import { RenderableSchema } from 'mol-gl/renderable/schema';
+import { RenderableSchema } from '../../mol-gl/renderable/schema';
 
 export type UniformKindValue = {
     'f': number
diff --git a/src/mol-io/common/binary-cif/array-encoder.ts b/src/mol-io/common/binary-cif/array-encoder.ts
index 0d745598e5e645989d7451246fc5ad75236384bf..a6376e920402d640f009137528e0421a602c3e76 100644
--- a/src/mol-io/common/binary-cif/array-encoder.ts
+++ b/src/mol-io/common/binary-cif/array-encoder.ts
@@ -7,10 +7,10 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ChunkedArray } from 'mol-data/util'
+import { ChunkedArray } from '../../../mol-data/util'
 import { Encoding, EncodedData } from './encoding'
 import { classifyIntArray } from './classifier';
-import { TypedIntArray, TypedFloatArray } from 'mol-util/type-helpers';
+import { TypedIntArray, TypedFloatArray } from '../../../mol-util/type-helpers';
 
 export interface ArrayEncoder {
     and(f: ArrayEncoding.Provider): ArrayEncoder,
diff --git a/src/mol-io/common/binary-cif/classifier.ts b/src/mol-io/common/binary-cif/classifier.ts
index c84ebcd3193ad634771c1377000c31813c554de7..2ffcd21b741324227f222288c90e4963033cf43a 100644
--- a/src/mol-io/common/binary-cif/classifier.ts
+++ b/src/mol-io/common/binary-cif/classifier.ts
@@ -6,7 +6,7 @@
  */
 
 import { ArrayEncoder, ArrayEncoding as E } from './array-encoder';
-import { getArrayDigitCount } from 'mol-util/number';
+import { getArrayDigitCount } from '../../../mol-util/number';
 
 export function classifyIntArray(xs: ArrayLike<number>) {
     return IntClassifier.classify(xs as number[]);
diff --git a/src/mol-io/common/binary-cif/encoding.ts b/src/mol-io/common/binary-cif/encoding.ts
index 899d246adf90bc46565a97dc16cbae9101c4857f..f69792b55aadd7e79b4965b4a63d2118f0cc080d 100644
--- a/src/mol-io/common/binary-cif/encoding.ts
+++ b/src/mol-io/common/binary-cif/encoding.ts
@@ -5,7 +5,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { TypedIntArray, TypedFloatArray } from 'mol-util/type-helpers';
+import { TypedIntArray, TypedFloatArray } from '../../../mol-util/type-helpers';
 
 export const VERSION = '0.3.0';
 
diff --git a/src/mol-io/common/file-handle.ts b/src/mol-io/common/file-handle.ts
index 90c6deebfa9466b9c1097d511f67478e6370db2a..cc2470e1f0a2dedd4918d678e9bc931eab241092 100644
--- a/src/mol-io/common/file-handle.ts
+++ b/src/mol-io/common/file-handle.ts
@@ -5,7 +5,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { defaults, noop } from 'mol-util';
+import { defaults, noop } from '../../mol-util';
 import { SimpleBuffer } from './simple-buffer';
 // only import 'fs' in node.js
 const fs = typeof document === 'undefined' ? require('fs') as typeof import('fs') : void 0;
diff --git a/src/mol-io/common/simple-buffer.ts b/src/mol-io/common/simple-buffer.ts
index 9f44ee1dcff10a575d9a19aacf949573ef7c3294..b5666a0c630a30b707995b87d4a5dc69470d8b23 100644
--- a/src/mol-io/common/simple-buffer.ts
+++ b/src/mol-io/common/simple-buffer.ts
@@ -5,7 +5,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { defaults } from 'mol-util';
+import { defaults } from '../../mol-util';
 
 export interface SimpleBuffer extends Uint8Array {
     readInt8: (offset: number) => number
diff --git a/src/mol-io/common/typed-array.ts b/src/mol-io/common/typed-array.ts
index f07e982c367e059bd1c0a6cbedcb6d6dd2c7c7a8..24c01eb21f7bf66b481dd014cf746bfe5383e327 100644
--- a/src/mol-io/common/typed-array.ts
+++ b/src/mol-io/common/typed-array.ts
@@ -7,8 +7,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { FileHandle } from 'mol-io/common/file-handle';
-import { SimpleBuffer } from 'mol-io/common/simple-buffer';
+import { FileHandle } from '../../mol-io/common/file-handle';
+import { SimpleBuffer } from '../../mol-io/common/simple-buffer';
 
 export type TypedArrayValueType = 'float32' | 'int8' | 'int16'
 
diff --git a/src/mol-io/reader/_spec/cif.spec.ts b/src/mol-io/reader/_spec/cif.spec.ts
index 43e5cd4c5139e3da21b9d7de00d57cae59bae5c0..f8823d1309adb2141bbedbe99089c3cdd054aa90 100644
--- a/src/mol-io/reader/_spec/cif.spec.ts
+++ b/src/mol-io/reader/_spec/cif.spec.ts
@@ -7,7 +7,7 @@
 
 import * as Data from '../cif/data-model'
 import * as Schema from '../cif/schema'
-import { Column } from 'mol-data/db'
+import { Column } from '../../../mol-data/db'
 
 const columnData = `123abc d,e,f '4 5 6'`;
 // 123abc d,e,f '4 5 6'
diff --git a/src/mol-io/reader/_spec/column.spec.ts b/src/mol-io/reader/_spec/column.spec.ts
index 1f7b4be1d6b753b773e2b4119742959c447adb04..43240ae682d137a1fd4f847b559e0d4d34820736 100644
--- a/src/mol-io/reader/_spec/column.spec.ts
+++ b/src/mol-io/reader/_spec/column.spec.ts
@@ -7,7 +7,7 @@
 
 import FixedColumn from '../common/text/column/fixed'
 import TokenColumn from '../common/text/column/token'
-import { Column, ColumnHelpers } from 'mol-data/db'
+import { Column, ColumnHelpers } from '../../../mol-data/db'
 
 const lines = [
     '1.123 abc',
diff --git a/src/mol-io/reader/_spec/csv.spec.ts b/src/mol-io/reader/_spec/csv.spec.ts
index 8977b5909aa73d7714760f377a3d912048a20db5..3d4dacb2795209a77bbfcb964522b049c2d29c3e 100644
--- a/src/mol-io/reader/_spec/csv.spec.ts
+++ b/src/mol-io/reader/_spec/csv.spec.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import Csv from '../csv/parser'
+import { parseCsv } from '../csv/parser'
 
 const csvStringBasic = `StrCol,IntCol,FloatCol
 # comment
@@ -23,7 +23,7 @@ string2\t42\t2.44`
 
 describe('csv reader', () => {
     it('basic', async () => {
-        const parsed = await Csv(csvStringBasic).run();
+        const parsed = await parseCsv(csvStringBasic).run();
         if (parsed.isError) return;
         const csvFile = parsed.result;
 
@@ -45,7 +45,7 @@ describe('csv reader', () => {
     });
 
     it('advanced', async () => {
-        const parsed = await Csv(csvStringAdvanced).run();
+        const parsed = await parseCsv(csvStringAdvanced).run();
         if (parsed.isError) return;
         const csvFile = parsed.result;
 
@@ -62,7 +62,7 @@ describe('csv reader', () => {
     });
 
     it('tabs', async () => {
-        const parsed = await Csv(tabString, { delimiter: '\t' }).run();
+        const parsed = await parseCsv(tabString, { delimiter: '\t' }).run();
         if (parsed.isError) return;
         const csvFile = parsed.result;
 
diff --git a/src/mol-io/reader/ccp4/parser.ts b/src/mol-io/reader/ccp4/parser.ts
index 832135f4a8ba2a867b5f8d3ec23d603dc20da6be..7f36f290964a89bfc5d0416b96aecab1724390c1 100644
--- a/src/mol-io/reader/ccp4/parser.ts
+++ b/src/mol-io/reader/ccp4/parser.ts
@@ -4,12 +4,12 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Task, RuntimeContext } from 'mol-task';
+import { Task, RuntimeContext } from '../../../mol-task';
 import { Ccp4File, Ccp4Header } from './schema'
 import { ReaderResult as Result } from '../result'
 import { FileHandle } from '../../common/file-handle';
-import { SimpleBuffer } from 'mol-io/common/simple-buffer';
-import { TypedArrayValueType, getElementByteSize, TypedArrayBufferContext, readTypedArray, createTypedArrayBufferContext } from 'mol-io/common/typed-array';
+import { SimpleBuffer } from '../../../mol-io/common/simple-buffer';
+import { TypedArrayValueType, getElementByteSize, TypedArrayBufferContext, readTypedArray, createTypedArrayBufferContext } from '../../../mol-io/common/typed-array';
 
 export async function readCcp4Header(file: FileHandle): Promise<{ header: Ccp4Header, littleEndian: boolean }> {
     const headerSize = 1024;
diff --git a/src/mol-io/reader/cif.ts b/src/mol-io/reader/cif.ts
index 54aad885c8c623bb055d221741380dab044c71ca..f45c707fe645f62f0e7c4a0e5949cb71a961092e 100644
--- a/src/mol-io/reader/cif.ts
+++ b/src/mol-io/reader/cif.ts
@@ -15,7 +15,7 @@ import { BIRD_Schema, BIRD_Database } from './cif/schema/bird'
 import { dic_Schema, dic_Database } from './cif/schema/dic'
 import { DensityServer_Data_Schema, DensityServer_Data_Database } from './cif/schema/density-server'
 
-export default {
+export const CIF = {
     parse: (data: string|Uint8Array) => typeof data === 'string' ? parseText(data) : parseBinary(data),
     parseText,
     parseBinary,
diff --git a/src/mol-io/reader/cif/binary/field.ts b/src/mol-io/reader/cif/binary/field.ts
index df1d27adbfc3646ed170591b44e4bd5896dff26a..09d0271a4216c7ed2f5052d95a6356a99557cb24 100644
--- a/src/mol-io/reader/cif/binary/field.ts
+++ b/src/mol-io/reader/cif/binary/field.ts
@@ -5,7 +5,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Column, ColumnHelpers } from 'mol-data/db'
+import { Column, ColumnHelpers } from '../../../../mol-data/db'
 import * as Data from '../data-model'
 import { EncodedColumn, decode } from '../../../common/binary-cif'
 import { parseInt as fastParseInt, parseFloat as fastParseFloat } from '../../common/text/number-parser'
diff --git a/src/mol-io/reader/cif/binary/parser.ts b/src/mol-io/reader/cif/binary/parser.ts
index 4cf3ae57f882844f856d28612a943fd7a3515179..be4ea44c747ddf192e15e27fbe59aebec4c00a9d 100644
--- a/src/mol-io/reader/cif/binary/parser.ts
+++ b/src/mol-io/reader/cif/binary/parser.ts
@@ -9,7 +9,7 @@ import { EncodedCategory, EncodedFile } from '../../../common/binary-cif'
 import Field from './field'
 import { ReaderResult as Result } from '../../result'
 import decodeMsgPack from '../../../common/msgpack/decode'
-import { Task } from 'mol-task'
+import { Task } from '../../../../mol-task'
 
 function checkVersions(min: number[], current: number[]) {
     for (let i = 0; i < 2; i++) {
diff --git a/src/mol-io/reader/cif/data-model.ts b/src/mol-io/reader/cif/data-model.ts
index db35b9419e9e38c74f50ad7ed7c9be6b9cabcb51..e2807e913b39d22ed90a83dd032418af65872b8a 100644
--- a/src/mol-io/reader/cif/data-model.ts
+++ b/src/mol-io/reader/cif/data-model.ts
@@ -5,8 +5,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Column, ColumnHelpers } from 'mol-data/db'
-import { Tensor } from 'mol-math/linear-algebra'
+import { Column, ColumnHelpers } from '../../../mol-data/db'
+import { Tensor } from '../../../mol-math/linear-algebra'
 import { getNumberType, NumberType, parseInt as fastParseInt, parseFloat as fastParseFloat } from '../common/text/number-parser';
 import { Encoding } from '../../common/binary-cif';
 import { Tokens } from '../common/text/tokenizer';
diff --git a/src/mol-io/reader/cif/schema.ts b/src/mol-io/reader/cif/schema.ts
index b2094be896cbf12019aba457c6f6b4891718efd2..c84d74e637a4152dbd65592a18dc3c5a7ffa33fb 100644
--- a/src/mol-io/reader/cif/schema.ts
+++ b/src/mol-io/reader/cif/schema.ts
@@ -5,9 +5,9 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { DatabaseCollection, Database, Table, Column, ColumnHelpers } from 'mol-data/db'
-import { Tensor } from 'mol-math/linear-algebra'
-import { arrayEqual } from 'mol-util'
+import { DatabaseCollection, Database, Table, Column, ColumnHelpers } from '../../../mol-data/db'
+import { Tensor } from '../../../mol-math/linear-algebra'
+import { arrayEqual } from '../../../mol-util'
 import * as Data from './data-model'
 
 export function toDatabaseCollection<Schema extends Database.Schema>(schema: Schema, file: Data.CifFile): DatabaseCollection<Schema> {
diff --git a/src/mol-io/reader/cif/schema/bird.ts b/src/mol-io/reader/cif/schema/bird.ts
index a66b4499915dace768239da49d067b5a5c9d6d30..f35b02eb04004d9b981e2e50e5e3870d5d6f8303 100644
--- a/src/mol-io/reader/cif/schema/bird.ts
+++ b/src/mol-io/reader/cif/schema/bird.ts
@@ -6,7 +6,7 @@
  * @author mol-star package (src/apps/schema-generator/generate)
  */
 
-import { Database, Column } from 'mol-data/db'
+import { Database, Column } from '../../../../mol-data/db'
 
 import Schema = Column.Schema
 
diff --git a/src/mol-io/reader/cif/schema/ccd.ts b/src/mol-io/reader/cif/schema/ccd.ts
index 86007f71edaaaa565e1f2c9db6994e61861dcdeb..f65c958b4fcac4b040d474b221db867f9ecb0254 100644
--- a/src/mol-io/reader/cif/schema/ccd.ts
+++ b/src/mol-io/reader/cif/schema/ccd.ts
@@ -6,7 +6,7 @@
  * @author mol-star package (src/apps/schema-generator/generate)
  */
 
-import { Database, Column } from 'mol-data/db'
+import { Database, Column } from '../../../../mol-data/db'
 
 import Schema = Column.Schema
 
diff --git a/src/mol-io/reader/cif/schema/density-server.ts b/src/mol-io/reader/cif/schema/density-server.ts
index 646f74a6b93fadb0fe4e0d0e892cdb5bc28a214f..ef49e0fbc252956b2ad7f77ccecbeda6f041dc61 100644
--- a/src/mol-io/reader/cif/schema/density-server.ts
+++ b/src/mol-io/reader/cif/schema/density-server.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Database, Column } from 'mol-data/db'
+import { Database, Column } from '../../../../mol-data/db'
 
 import Schema = Column.Schema
 
diff --git a/src/mol-io/reader/cif/schema/dic.ts b/src/mol-io/reader/cif/schema/dic.ts
index b75a2cfd0895b6e53746764ba9355d046c16baca..cd4b7b3bc5c1bccd7b22a3560b31855e34ff799e 100644
--- a/src/mol-io/reader/cif/schema/dic.ts
+++ b/src/mol-io/reader/cif/schema/dic.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Database, Column } from 'mol-data/db'
+import { Database, Column } from '../../../../mol-data/db'
 
 import Schema = Column.Schema
 
diff --git a/src/mol-io/reader/cif/schema/mmcif.ts b/src/mol-io/reader/cif/schema/mmcif.ts
index dc6c7747ae0f7c4de6a86bd4d4669857cfe24ece..347fbb0766c622398254fc9285b773ef66c4ba46 100644
--- a/src/mol-io/reader/cif/schema/mmcif.ts
+++ b/src/mol-io/reader/cif/schema/mmcif.ts
@@ -6,7 +6,7 @@
  * @author mol-star package (src/apps/schema-generator/generate)
  */
 
-import { Database, Column } from 'mol-data/db'
+import { Database, Column } from '../../../../mol-data/db'
 
 import Schema = Column.Schema
 
diff --git a/src/mol-io/reader/cif/text/parser.ts b/src/mol-io/reader/cif/text/parser.ts
index 920546393c25b5aa585b34d8740d872222e63670..476fb0fa76473170e697c47786f1d37ec846060b 100644
--- a/src/mol-io/reader/cif/text/parser.ts
+++ b/src/mol-io/reader/cif/text/parser.ts
@@ -25,7 +25,7 @@
 import * as Data from '../data-model'
 import { Tokens, TokenBuilder } from '../../common/text/tokenizer'
 import { ReaderResult as Result } from '../../result'
-import { Task, RuntimeContext, chunkedSubtask } from 'mol-task'
+import { Task, RuntimeContext, chunkedSubtask } from '../../../../mol-task'
 
 /**
  * Types of supported mmCIF tokens.
diff --git a/src/mol-io/reader/common/text/column/fixed.ts b/src/mol-io/reader/common/text/column/fixed.ts
index 22fed914a172cf869c9746cf406d5c6f4af03383..182ac81d303e7de1b67ef2f1f73c83b7c3bedcdc 100644
--- a/src/mol-io/reader/common/text/column/fixed.ts
+++ b/src/mol-io/reader/common/text/column/fixed.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Column, ColumnHelpers } from 'mol-data/db'
+import { Column, ColumnHelpers } from '../../../../../mol-data/db'
 import { trimStr, Tokens } from '../tokenizer'
 import { parseIntSkipLeadingWhitespace, parseFloatSkipLeadingWhitespace } from '../number-parser'
 
diff --git a/src/mol-io/reader/common/text/column/token.ts b/src/mol-io/reader/common/text/column/token.ts
index 46186a5c5c645d2e73737f9f6627ee04eefeefa6..8a6a22d2d12377c80232098520b09d985a847e51 100644
--- a/src/mol-io/reader/common/text/column/token.ts
+++ b/src/mol-io/reader/common/text/column/token.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Column, ColumnHelpers } from 'mol-data/db'
+import { Column, ColumnHelpers } from '../../../../../mol-data/db'
 import { Tokens } from '../tokenizer'
 import { parseInt as fastParseInt, parseFloat as fastParseFloat } from '../number-parser'
 
diff --git a/src/mol-io/reader/common/text/tokenizer.ts b/src/mol-io/reader/common/text/tokenizer.ts
index fce7c9037cc7c9eb546edae1a12fb4d838b06efa..f1f476a4491816dd08c48851c2f82245872afc4f 100644
--- a/src/mol-io/reader/common/text/tokenizer.ts
+++ b/src/mol-io/reader/common/text/tokenizer.ts
@@ -6,7 +6,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { chunkedSubtask, RuntimeContext } from 'mol-task'
+import { chunkedSubtask, RuntimeContext } from '../../../../mol-task'
 
 export { Tokenizer }
 
diff --git a/src/mol-io/reader/csv/field.ts b/src/mol-io/reader/csv/field.ts
index 48d1f1072aa1a54cc9dd77e94318ecfce6ce14e5..cf2b6449e3a1602e0ca0c8015ad574c47de281ad 100644
--- a/src/mol-io/reader/csv/field.ts
+++ b/src/mol-io/reader/csv/field.ts
@@ -6,4 +6,4 @@
 
 import { CifField } from '../cif/data-model';
 
-export default CifField.ofTokens
\ No newline at end of file
+export const Field = CifField.ofTokens
\ No newline at end of file
diff --git a/src/mol-io/reader/csv/parser.ts b/src/mol-io/reader/csv/parser.ts
index 4207202703338f1300bce9ebc0142c8ac6b39294..718708c7f1772a5b5921067626d634cfb284a87b 100644
--- a/src/mol-io/reader/csv/parser.ts
+++ b/src/mol-io/reader/csv/parser.ts
@@ -7,9 +7,9 @@
 // import { Column } from 'mol-data/db'
 import { Tokens, TokenBuilder, Tokenizer } from '../common/text/tokenizer'
 import * as Data from './data-model'
-import Field from './field'
+import { Field } from './field'
 import { ReaderResult as Result } from '../result'
-import { Task, RuntimeContext, chunkedSubtask, } from 'mol-task'
+import { Task, RuntimeContext, chunkedSubtask, } from '../../../mol-task'
 
 const enum CsvTokenType {
     Value = 0,
@@ -276,11 +276,9 @@ interface CsvOptions {
     noColumnNames: boolean;
 }
 
-export function parse(data: string, opts?: Partial<CsvOptions>) {
+export function parseCsv(data: string, opts?: Partial<CsvOptions>) {
     const completeOpts = Object.assign({}, { quote: '"', comment: '#', delimiter: ',', noColumnNames: false }, opts)
     return Task.create<Result<Data.CsvFile>>('Parse CSV', async ctx => {
         return await parseInternal(data, ctx, completeOpts);
     });
-}
-
-export default parse;
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/src/mol-io/reader/dsn6/parser.ts b/src/mol-io/reader/dsn6/parser.ts
index 131de466842f8a912655b9086d2ecbc219cba0c9..b58df1f080dc2458e8c3722472f5aa92ed677eb0 100644
--- a/src/mol-io/reader/dsn6/parser.ts
+++ b/src/mol-io/reader/dsn6/parser.ts
@@ -4,11 +4,11 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Task, RuntimeContext } from 'mol-task';
+import { Task, RuntimeContext } from '../../../mol-task';
 import { Dsn6File, Dsn6Header } from './schema'
 import { ReaderResult as Result } from '../result'
 import { FileHandle } from '../../common/file-handle';
-import { SimpleBuffer } from 'mol-io/common/simple-buffer';
+import { SimpleBuffer } from '../../../mol-io/common/simple-buffer';
 
 export const dsn6HeaderSize = 512;
 
diff --git a/src/mol-io/reader/gro/parser.ts b/src/mol-io/reader/gro/parser.ts
index 1a181f1a6aeee3a5d47922c52e93d23d2e8978bf..92134b5882ac2a54fe442f1d6edce2a9c911165a 100644
--- a/src/mol-io/reader/gro/parser.ts
+++ b/src/mol-io/reader/gro/parser.ts
@@ -5,12 +5,12 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Column } from 'mol-data/db'
+import { Column } from '../../../mol-data/db'
 import { Tokenizer } from '../common/text/tokenizer'
 import FixedColumn from '../common/text/column/fixed'
 import * as Schema from './schema'
 import { ReaderResult as Result } from '../result'
-import { Task, RuntimeContext } from 'mol-task'
+import { Task, RuntimeContext } from '../../../mol-task'
 
 interface State {
     tokenizer: Tokenizer,
diff --git a/src/mol-io/reader/gro/schema.d.ts b/src/mol-io/reader/gro/schema.d.ts
index ddc84303d6295939188f377c7dde653f0243ba76..c2ef84426e4176e0d3ba54bfe31c441eb1e3e4cc 100644
--- a/src/mol-io/reader/gro/schema.d.ts
+++ b/src/mol-io/reader/gro/schema.d.ts
@@ -5,7 +5,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Column } from 'mol-data/db'
+import { Column } from '../../../mol-data/db'
 
 export interface GroHeader {
     title: string,
diff --git a/src/mol-io/reader/mol2/parser.ts b/src/mol-io/reader/mol2/parser.ts
index 0a11a9a0aa93da4402fcf43f2c16270e4728d16e..1f727b61fc3982636874e200ac44297234ebf8b0 100644
--- a/src/mol-io/reader/mol2/parser.ts
+++ b/src/mol-io/reader/mol2/parser.ts
@@ -11,12 +11,12 @@
 // but not
 // const undefPooledStr = UndefinedColumn(molecule.num_atoms, ColumnType.pooledStr);
 // because latter actuall return a column of zeros
-import { Column } from 'mol-data/db'
+import { Column } from '../../../mol-data/db'
 import { TokenBuilder, Tokenizer } from '../common/text/tokenizer'
 import TokenColumn from '../common/text/column/token'
 import * as Schema from './schema'
 import { ReaderResult as Result } from '../result'
-import { Task, RuntimeContext, chunkedSubtask } from 'mol-task'
+import { Task, RuntimeContext, chunkedSubtask } from '../../../mol-task'
 
 const { skipWhitespace, eatValue, markLine, getTokenString, readLine } = Tokenizer;
 
diff --git a/src/mol-io/reader/mol2/schema.d.ts b/src/mol-io/reader/mol2/schema.d.ts
index 21205a2673f9675340daa94c7a9d4b9ae3d158ab..b444b47e6fdba91be00c3fcd1c17c88d86c1393e 100644
--- a/src/mol-io/reader/mol2/schema.d.ts
+++ b/src/mol-io/reader/mol2/schema.d.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Column } from 'mol-data/db'
+import { Column } from '../../../mol-data/db'
 
 // Full format http://chemyang.ccnu.edu.cn/ccb/server/AIMMS/mol2.pdf
 // there are many records but for now ignore (pass over) all but the following
diff --git a/src/mol-io/reader/obj/parser.ts b/src/mol-io/reader/obj/parser.ts
index a8b113a33d0c88f5af90189e79359df8b5f097ae..675d75195d4b68076d24c5eb5b718ff842d0e69e 100644
--- a/src/mol-io/reader/obj/parser.ts
+++ b/src/mol-io/reader/obj/parser.ts
@@ -5,8 +5,8 @@
  */
 
 import { ReaderResult as Result } from '../result'
-import { Task, RuntimeContext } from 'mol-task'
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
+import { Task, RuntimeContext } from '../../../mol-task'
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
 
 async function parseInternal(data: string, ctx: RuntimeContext): Promise<Result<Mesh>> {
     // TODO
diff --git a/src/mol-io/reader/pdb/parser.ts b/src/mol-io/reader/pdb/parser.ts
index 600ac278e0bbf6290e773c028bd5d0140dd5d201..d6ebff601f137d13c493f3ebf6f251e12dfe1968 100644
--- a/src/mol-io/reader/pdb/parser.ts
+++ b/src/mol-io/reader/pdb/parser.ts
@@ -5,7 +5,7 @@
  */
 
 import { PdbFile } from './schema';
-import { Task } from 'mol-task';
+import { Task } from '../../../mol-task';
 import { ReaderResult } from '../result';
 import { Tokenizer } from '../common/text/tokenizer';
 
diff --git a/src/mol-io/reader/ply/parser.ts b/src/mol-io/reader/ply/parser.ts
index 61ea12db46f731cf9aca29dbb253d4c0107707ca..2d19c3c524ee9499cf0a49e3d63720214511a100 100644
--- a/src/mol-io/reader/ply/parser.ts
+++ b/src/mol-io/reader/ply/parser.ts
@@ -5,10 +5,10 @@
  */
 
 import { ReaderResult as Result } from '../result'
-import { Task, RuntimeContext } from 'mol-task'
+import { Task, RuntimeContext } from '../../../mol-task'
 import { PlyFile, PlyType, PlyElement } from './schema';
 import { Tokenizer, TokenBuilder, Tokens } from '../common/text/tokenizer';
-import { Column } from 'mol-data/db';
+import { Column } from '../../../mol-data/db';
 import { TokenColumn } from '../common/text/column/token';
 
 // TODO add support for binary ply files
diff --git a/src/mol-io/reader/ply/schema.ts b/src/mol-io/reader/ply/schema.ts
index c5fbcb995ae825d0ea7f829ffd3ea96bca73f715..f113959a8735bc85d10a492198fb65ab1e28beff 100644
--- a/src/mol-io/reader/ply/schema.ts
+++ b/src/mol-io/reader/ply/schema.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Column } from 'mol-data/db';
+import { Column } from '../../../mol-data/db';
 
 // http://paulbourke.net/dataformats/ply/
 // https://en.wikipedia.org/wiki/PLY_(file_format)
diff --git a/src/mol-io/writer/cif/encoder.ts b/src/mol-io/writer/cif/encoder.ts
index a26084fb39249d7011fea2da1b40440551ec63ba..f0d95d18b7543d92f48c50d7f5f7897ed371befa 100644
--- a/src/mol-io/writer/cif/encoder.ts
+++ b/src/mol-io/writer/cif/encoder.ts
@@ -5,9 +5,9 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import Iterator from 'mol-data/iterator'
-import { Column, Table, Database, DatabaseCollection } from 'mol-data/db'
-import { Tensor } from 'mol-math/linear-algebra'
+import Iterator from '../../../mol-data/iterator'
+import { Column, Table, Database, DatabaseCollection } from '../../../mol-data/db'
+import { Tensor } from '../../../mol-math/linear-algebra'
 import EncoderBase from '../encoder'
 import { ArrayEncoder, ArrayEncoding } from '../../common/binary-cif';
 
diff --git a/src/mol-io/writer/cif/encoder/binary.ts b/src/mol-io/writer/cif/encoder/binary.ts
index c9b39a799c775ee62cbce8dd13358e44b6469faf..9212bcea20d8862792026f96bee41745517b59b4 100644
--- a/src/mol-io/writer/cif/encoder/binary.ts
+++ b/src/mol-io/writer/cif/encoder/binary.ts
@@ -6,7 +6,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Column } from 'mol-data/db'
+import { Column } from '../../../../mol-data/db'
 import encodeMsgPack from '../../../common/msgpack/encode'
 import {
     EncodedColumn, EncodedData, EncodedFile, EncodedDataBlock, EncodedCategory, ArrayEncoder, ArrayEncoding as E, VERSION
@@ -15,7 +15,7 @@ import { Field, Category, Encoder } from '../encoder'
 import Writer from '../../writer'
 import { getIncludedFields, getCategoryInstanceData, CategoryInstanceData } from './util';
 import { classifyIntArray, classifyFloatArray } from '../../../common/binary-cif/classifier';
-import { ArrayCtor } from 'mol-util/type-helpers';
+import { ArrayCtor } from '../../../../mol-util/type-helpers';
 
 export interface EncodingProvider {
     get(category: string, field: string): ArrayEncoder | undefined;
diff --git a/src/mol-io/writer/cif/encoder/text.ts b/src/mol-io/writer/cif/encoder/text.ts
index 91c0d897f7388483dd7da49a98a458702e17b578..35bf9cce14fb92fff7468cac07455ca07d9aba68 100644
--- a/src/mol-io/writer/cif/encoder/text.ts
+++ b/src/mol-io/writer/cif/encoder/text.ts
@@ -6,8 +6,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Column } from 'mol-data/db'
-import StringBuilder from 'mol-util/string-builder'
+import { Column } from '../../../../mol-data/db'
+import StringBuilder from '../../../../mol-util/string-builder'
 import { Category, Field, Encoder } from '../encoder'
 import Writer from '../../writer'
 import { getFieldDigitCount, getIncludedFields, getCategoryInstanceData, CategoryInstanceData } from './util';
diff --git a/src/mol-io/writer/cif/encoder/util.ts b/src/mol-io/writer/cif/encoder/util.ts
index 2784e479ed5902935b08e310a91da95e772870d7..0669e20e564a39550cb173f782124f794ff1a384 100644
--- a/src/mol-io/writer/cif/encoder/util.ts
+++ b/src/mol-io/writer/cif/encoder/util.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Iterator } from 'mol-data'
+import { Iterator } from '../../../../mol-data'
 import { Field, Category } from '../encoder';
 
 export function getFieldDigitCount(field: Field) {
diff --git a/src/mol-math/geometry/_spec/lookup3d.spec.ts b/src/mol-math/geometry/_spec/lookup3d.spec.ts
index 92760e92d874ac742f0cf8bc6f044f24f0916c06..254bd9179f47bfbb7b5c4ead79f0e39f85915e0d 100644
--- a/src/mol-math/geometry/_spec/lookup3d.spec.ts
+++ b/src/mol-math/geometry/_spec/lookup3d.spec.ts
@@ -5,8 +5,8 @@
  */
 
 import { GridLookup3D } from '../../geometry';
-import { sortArray } from 'mol-data/util';
-import { OrderedSet } from 'mol-data/int';
+import { sortArray } from '../../../mol-data/util';
+import { OrderedSet } from '../../../mol-data/int';
 
 const xs = [0, 0, 1];
 const ys = [0, 1, 0];
diff --git a/src/mol-math/geometry/boundary-helper.ts b/src/mol-math/geometry/boundary-helper.ts
index 7dc7ec98d5b49360a331f6d4c365202fd9440dca..ecde02d27af457c7c3452228f592fcb29da22c22 100644
--- a/src/mol-math/geometry/boundary-helper.ts
+++ b/src/mol-math/geometry/boundary-helper.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Vec3 } from 'mol-math/linear-algebra/3d';
+import { Vec3 } from '../../mol-math/linear-algebra/3d';
 import { Box3D } from './primitives/box3d';
 import { Sphere3D } from './primitives/sphere3d';
 
diff --git a/src/mol-math/geometry/centroid-helper.ts b/src/mol-math/geometry/centroid-helper.ts
index a3d50f7e7f3c4fbc446e1cbc0fc520fce423e046..7387757fc1a7f3c59388368187d7ad0e20868d1c 100644
--- a/src/mol-math/geometry/centroid-helper.ts
+++ b/src/mol-math/geometry/centroid-helper.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Vec3 } from 'mol-math/linear-algebra/3d';
+import { Vec3 } from '../../mol-math/linear-algebra/3d';
 
 export { CentroidHelper }
 
diff --git a/src/mol-math/geometry/common.ts b/src/mol-math/geometry/common.ts
index 61d34da38fe51f482b96d122c0cb02843e1e8ebe..60fbd3c44e20707c939d7d8c01f7dea4f9de60c3 100644
--- a/src/mol-math/geometry/common.ts
+++ b/src/mol-math/geometry/common.ts
@@ -5,10 +5,10 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { OrderedSet } from 'mol-data/int'
+import { OrderedSet } from '../../mol-data/int'
 import { Mat4, Tensor, Vec3, Vec2 } from '../linear-algebra';
 import { Box3D } from '../geometry';
-import { Texture } from 'mol-gl/webgl/texture';
+import { Texture } from '../../mol-gl/webgl/texture';
 
 export interface PositionData {
     x: ArrayLike<number>,
diff --git a/src/mol-math/geometry/distance-transform.ts b/src/mol-math/geometry/distance-transform.ts
index df3c5693fcc64e6091e4e8ba38a38ad35f9fc1a0..4d86a3a59ffe4919c586d2528568af0fc4197b4d 100644
--- a/src/mol-math/geometry/distance-transform.ts
+++ b/src/mol-math/geometry/distance-transform.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { NumberArray } from 'mol-util/type-helpers';
+import { NumberArray } from '../../mol-util/type-helpers';
 
 /**
  * 2D Euclidean distance transform by Felzenszwalb & Huttenlocher https://cs.brown.edu/~pff/papers/dt-final.pdf
diff --git a/src/mol-math/geometry/gaussian-density.ts b/src/mol-math/geometry/gaussian-density.ts
index e152830cc6117c7b52ca146a3c836241ecaafbb2..e106332477d0f64d2ce8fd8c5d253920c5011c6d 100644
--- a/src/mol-math/geometry/gaussian-density.ts
+++ b/src/mol-math/geometry/gaussian-density.ts
@@ -5,11 +5,11 @@
  */
 
 import { Box3D } from '../geometry';
-import { RuntimeContext, Task } from 'mol-task';
+import { RuntimeContext, Task } from '../../mol-task';
 import { PositionData, DensityData } from './common';
 import { GaussianDensityCPU } from './gaussian-density/cpu';
-import { WebGLContext } from 'mol-gl/webgl/context';
-import { Texture } from 'mol-gl/webgl/texture';
+import { WebGLContext } from '../../mol-gl/webgl/context';
+import { Texture } from '../../mol-gl/webgl/texture';
 import { GaussianDensityTexture2d, GaussianDensityTexture3d } from './gaussian-density/gpu';
 
 // import { GaussianDensityGPU, GaussianDensityTexture } from './gaussian-density/gpu';
diff --git a/src/mol-math/geometry/gaussian-density/cpu.ts b/src/mol-math/geometry/gaussian-density/cpu.ts
index 3dedac18f884b9a1acc9891f4739bff7428201da..d1a8c2d16c5649605dcda25bbb5bc50a6470be3a 100644
--- a/src/mol-math/geometry/gaussian-density/cpu.ts
+++ b/src/mol-math/geometry/gaussian-density/cpu.ts
@@ -6,9 +6,9 @@
 
 import { Box3D, fillGridDim } from '../../geometry';
 import { Vec3, Mat4, Tensor } from '../../linear-algebra';
-import { RuntimeContext } from 'mol-task';
+import { RuntimeContext } from '../../../mol-task';
 import { PositionData, DensityData } from '../common';
-import { OrderedSet } from 'mol-data/int';
+import { OrderedSet } from '../../../mol-data/int';
 import { GaussianDensityProps } from '../gaussian-density';
 
 export async function GaussianDensityCPU(ctx: RuntimeContext, position: PositionData, box: Box3D, radius: (index: number) => number,  props: GaussianDensityProps): Promise<DensityData> {
diff --git a/src/mol-math/geometry/gaussian-density/gpu.ts b/src/mol-math/geometry/gaussian-density/gpu.ts
index 1915926b973fd5f4240886582ce18d18bdbb10fd..949d5cae727d095dec2bf53caee0167551721b6b 100644
--- a/src/mol-math/geometry/gaussian-density/gpu.ts
+++ b/src/mol-math/geometry/gaussian-density/gpu.ts
@@ -8,18 +8,18 @@
 import { PositionData, DensityData, DensityTextureData } from '../common'
 import { Box3D } from '../../geometry'
 import { GaussianDensityGPUProps } from '../gaussian-density'
-import { OrderedSet } from 'mol-data/int'
+import { OrderedSet } from '../../../mol-data/int'
 import { Vec3, Tensor, Mat4, Vec2 } from '../../linear-algebra'
-import { ValueCell } from 'mol-util'
-import { createComputeRenderable, ComputeRenderable } from 'mol-gl/renderable'
-import { WebGLContext } from 'mol-gl/webgl/context';
-import { createTexture, Texture } from 'mol-gl/webgl/texture';
-import { decodeFloatRGB } from 'mol-util/float-packing';
-import { ShaderCode } from 'mol-gl/shader-code';
-import { createComputeRenderItem } from 'mol-gl/webgl/render-item';
-import { ValueSpec, AttributeSpec, UniformSpec, TextureSpec, DefineSpec, Values } from 'mol-gl/renderable/schema';
-import gaussian_density_vert from 'mol-gl/shader/gaussian-density.vert'
-import gaussian_density_frag from 'mol-gl/shader/gaussian-density.frag'
+import { ValueCell } from '../../../mol-util'
+import { createComputeRenderable, ComputeRenderable } from '../../../mol-gl/renderable'
+import { WebGLContext } from '../../../mol-gl/webgl/context';
+import { createTexture, Texture } from '../../../mol-gl/webgl/texture';
+import { decodeFloatRGB } from '../../../mol-util/float-packing';
+import { ShaderCode } from '../../../mol-gl/shader-code';
+import { createComputeRenderItem } from '../../../mol-gl/webgl/render-item';
+import { ValueSpec, AttributeSpec, UniformSpec, TextureSpec, DefineSpec, Values } from '../../../mol-gl/renderable/schema';
+import gaussian_density_vert from '../../../mol-gl/shader/gaussian-density.vert'
+import gaussian_density_frag from '../../../mol-gl/shader/gaussian-density.frag'
 
 export const GaussianDensitySchema = {
     drawCount: ValueSpec('number'),
diff --git a/src/mol-math/geometry/lookup3d/grid.ts b/src/mol-math/geometry/lookup3d/grid.ts
index 328f2d00aafa2f6c4e2a2edf0280a08ac2bb8473..3448d431474dbf61ec1c777a9bdcd42eb9b1e406 100644
--- a/src/mol-math/geometry/lookup3d/grid.ts
+++ b/src/mol-math/geometry/lookup3d/grid.ts
@@ -10,7 +10,7 @@ import { Box3D } from '../primitives/box3d';
 import { Sphere3D } from '../primitives/sphere3d';
 import { PositionData } from '../common';
 import { Vec3 } from '../../linear-algebra';
-import { OrderedSet } from 'mol-data/int';
+import { OrderedSet } from '../../../mol-data/int';
 import { BoundaryHelper } from '../boundary-helper';
 
 interface GridLookup3D<T = number> extends Lookup3D<T> {
diff --git a/src/mol-math/geometry/molecular-surface.ts b/src/mol-math/geometry/molecular-surface.ts
index 326e863c4e0fbc1ab9626862427eba9e087ea4a3..81305f41e6344dbd52821c38b7d0825ddb3bffa6 100644
--- a/src/mol-math/geometry/molecular-surface.ts
+++ b/src/mol-math/geometry/molecular-surface.ts
@@ -7,14 +7,14 @@
  * ported from NGL (https://github.com/arose/ngl), licensed under MIT
  */
 
-import { fillUniform } from 'mol-util/array';
-import { Vec3, Tensor } from 'mol-math/linear-algebra';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { RuntimeContext } from 'mol-task';
-import { OrderedSet } from 'mol-data/int';
+import { fillUniform } from '../../mol-util/array';
+import { Vec3, Tensor } from '../../mol-math/linear-algebra';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
+import { RuntimeContext } from '../../mol-task';
+import { OrderedSet } from '../../mol-data/int';
 import { PositionData } from './common';
-import { Mat4 } from 'mol-math/linear-algebra/3d';
-import { Box3D, GridLookup3D, fillGridDim } from 'mol-math/geometry';
+import { Mat4 } from '../../mol-math/linear-algebra/3d';
+import { Box3D, GridLookup3D, fillGridDim } from '../../mol-math/geometry';
 
 function normalToLine (out: Vec3, p: Vec3) {
     out[0] = out[1] = out[2] = 1.0
diff --git a/src/mol-math/geometry/primitives/box3d.ts b/src/mol-math/geometry/primitives/box3d.ts
index 90fd7e49e5fa527eb21499cf4a7569104ef90329..f06acec18470ca2a71055e0a459b0069d391ef92 100644
--- a/src/mol-math/geometry/primitives/box3d.ts
+++ b/src/mol-math/geometry/primitives/box3d.ts
@@ -7,7 +7,7 @@
 
 import { Vec3, Mat4 } from '../../linear-algebra'
 import { PositionData } from '../common'
-import { OrderedSet } from 'mol-data/int';
+import { OrderedSet } from '../../../mol-data/int';
 
 interface Box3D { min: Vec3, max: Vec3 }
 
diff --git a/src/mol-math/geometry/primitives/sphere3d.ts b/src/mol-math/geometry/primitives/sphere3d.ts
index 9df2560a973962dc4aa8d74c8ec994b041102260..b11fca791b67c590f69d1b1f62fc81b6201bdc40 100644
--- a/src/mol-math/geometry/primitives/sphere3d.ts
+++ b/src/mol-math/geometry/primitives/sphere3d.ts
@@ -7,8 +7,8 @@
 
 import { Vec3, Mat4, EPSILON } from '../../linear-algebra'
 import { PositionData } from '../common'
-import { OrderedSet } from 'mol-data/int';
-import { NumberArray } from 'mol-util/type-helpers';
+import { OrderedSet } from '../../../mol-data/int';
+import { NumberArray } from '../../../mol-util/type-helpers';
 import { Box3D } from './box3d';
 
 interface Sphere3D { center: Vec3, radius: number }
diff --git a/src/mol-math/geometry/symmetry-operator.ts b/src/mol-math/geometry/symmetry-operator.ts
index 847e967ce4faf5b3aa5ee6790b1e88f5d0da8108..e513259dca683f6bac349ddbe8dc76f831e7831d 100644
--- a/src/mol-math/geometry/symmetry-operator.ts
+++ b/src/mol-math/geometry/symmetry-operator.ts
@@ -5,7 +5,7 @@
  */
 
 import { Vec3, Mat4, Mat3, Quat } from '../linear-algebra/3d'
-import { lerp as scalar_lerp } from 'mol-math/interpolate';
+import { lerp as scalar_lerp } from '../../mol-math/interpolate';
 
 interface SymmetryOperator {
     readonly name: string,
diff --git a/src/mol-math/graph/int-adjacency-graph.ts b/src/mol-math/graph/int-adjacency-graph.ts
index d9460e2288fb449ba42464d981dd64eba38a029a..7e77e611cb39d6baa239c3df5465495601075744 100644
--- a/src/mol-math/graph/int-adjacency-graph.ts
+++ b/src/mol-math/graph/int-adjacency-graph.ts
@@ -5,8 +5,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { arrayPickIndices, cantorPairing } from 'mol-data/util';
-import { LinkedIndex, SortedArray } from 'mol-data/int';
+import { arrayPickIndices, cantorPairing } from '../../mol-data/util';
+import { LinkedIndex, SortedArray } from '../../mol-data/int';
 
 /**
  * Represent a graph using vertex adjacency list.
diff --git a/src/mol-math/linear-algebra/3d/mat3.ts b/src/mol-math/linear-algebra/3d/mat3.ts
index a7bb2cfdb84a55208b2292e2751a11d03484f297..56459c9b01435f4ea17251f58d24452cae9eef2a 100644
--- a/src/mol-math/linear-algebra/3d/mat3.ts
+++ b/src/mol-math/linear-algebra/3d/mat3.ts
@@ -18,7 +18,7 @@
  */
 
 import { Mat4 } from '../3d'
-import { NumberArray } from 'mol-util/type-helpers';
+import { NumberArray } from '../../../mol-util/type-helpers';
 
 interface Mat3 extends Array<number> { [d: number]: number, '@type': 'mat3', length: 9 }
 
diff --git a/src/mol-math/linear-algebra/3d/mat4.ts b/src/mol-math/linear-algebra/3d/mat4.ts
index 313de7f7b336a2bd2fd3787f79bdeae51583eb86..abed77702a69a2821e7cf140c2569b5d84cdbdf9 100644
--- a/src/mol-math/linear-algebra/3d/mat4.ts
+++ b/src/mol-math/linear-algebra/3d/mat4.ts
@@ -21,7 +21,7 @@ import { EPSILON, equalEps } from './common'
 import Vec3 from './vec3';
 import Quat from './quat';
 import { degToRad } from '../../misc';
-import { NumberArray } from 'mol-util/type-helpers';
+import { NumberArray } from '../../../mol-util/type-helpers';
 import Mat3 from './mat3';
 
 interface Mat4 extends Array<number> { [d: number]: number, '@type': 'mat4', length: 16 }
diff --git a/src/mol-math/linear-algebra/3d/minimize-rmsd.ts b/src/mol-math/linear-algebra/3d/minimize-rmsd.ts
index b757b2e7afa5394716cd76548d5490e2b9ee5d0b..48475aab656c45b4b268e58efe1182d8af9913a3 100644
--- a/src/mol-math/linear-algebra/3d/minimize-rmsd.ts
+++ b/src/mol-math/linear-algebra/3d/minimize-rmsd.ts
@@ -7,7 +7,7 @@
 import Mat4 from './mat4';
 import Vec3 from './vec3';
 import { EVD } from '../matrix/evd';
-import { CentroidHelper } from 'mol-math/geometry/centroid-helper';
+import { CentroidHelper } from '../../../mol-math/geometry/centroid-helper';
 import Matrix from '../matrix/matrix';
 
 export { MinimizeRmsd };
diff --git a/src/mol-math/linear-algebra/3d/quat.ts b/src/mol-math/linear-algebra/3d/quat.ts
index abbe498e2a93943273156d6f2142143783553921..2642c145c4b437c92f35a76d86177c9c0c3ff04d 100644
--- a/src/mol-math/linear-algebra/3d/quat.ts
+++ b/src/mol-math/linear-algebra/3d/quat.ts
@@ -25,7 +25,7 @@
 import Mat3 from './mat3';
 import Vec3 from './vec3';
 import { EPSILON } from './common';
-import { NumberArray } from 'mol-util/type-helpers';
+import { NumberArray } from '../../../mol-util/type-helpers';
 
 interface Quat extends Array<number> { [d: number]: number, '@type': 'quat', length: 4 }
 
diff --git a/src/mol-math/linear-algebra/3d/vec2.ts b/src/mol-math/linear-algebra/3d/vec2.ts
index 65a32c3ff61149bd8a9c3e606ee67ab3c3e1b5b3..3a5785dcffcf41bef5268369fc4ee6014c5c17a3 100644
--- a/src/mol-math/linear-algebra/3d/vec2.ts
+++ b/src/mol-math/linear-algebra/3d/vec2.ts
@@ -1,11 +1,11 @@
-import { NumberArray } from 'mol-util/type-helpers';
-
 /**
  * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
  *
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
+import { NumberArray } from '../../../mol-util/type-helpers';
+
 /*
  * This code has been modified from https://github.com/toji/gl-matrix/,
  * copyright (c) 2015, Brandon Jones, Colin MacKenzie IV.
diff --git a/src/mol-math/linear-algebra/3d/vec3.ts b/src/mol-math/linear-algebra/3d/vec3.ts
index 982d323f1933cb5e9ebf17fc1b50c452dfc6581e..a8bae39359b0be356ffce17e05559bf11a693280 100644
--- a/src/mol-math/linear-algebra/3d/vec3.ts
+++ b/src/mol-math/linear-algebra/3d/vec3.ts
@@ -20,7 +20,7 @@
 import Mat4 from './mat4';
 import { Quat, Mat3, EPSILON } from '../3d';
 import { spline as _spline, clamp } from '../../interpolate'
-import { NumberArray } from 'mol-util/type-helpers';
+import { NumberArray } from '../../../mol-util/type-helpers';
 
 interface Vec3 extends Array<number> { [d: number]: number, '@type': 'vec3', length: 3 }
 
diff --git a/src/mol-math/linear-algebra/3d/vec4.ts b/src/mol-math/linear-algebra/3d/vec4.ts
index 35346760ee95d740d18a346211f7a2d1920919d7..80672cf6e9cd84d77f09d92e93517410a9c3dd46 100644
--- a/src/mol-math/linear-algebra/3d/vec4.ts
+++ b/src/mol-math/linear-algebra/3d/vec4.ts
@@ -19,7 +19,7 @@
 
 import Mat4 from './mat4';
 import { EPSILON } from '../3d';
-import { NumberArray } from 'mol-util/type-helpers';
+import { NumberArray } from '../../../mol-util/type-helpers';
 
 interface Vec4 extends Array<number> { [d: number]: number, '@type': 'vec4', length: 4 }
 
diff --git a/src/mol-math/linear-algebra/matrix/matrix.ts b/src/mol-math/linear-algebra/matrix/matrix.ts
index 737bfcad2a4462bb2c5ed6ab645c3db03c3d429d..0c94affdb35a23753869fa5e8093a6c043e1e9bc 100644
--- a/src/mol-math/linear-algebra/matrix/matrix.ts
+++ b/src/mol-math/linear-algebra/matrix/matrix.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { NumberArray } from 'mol-util/type-helpers';
+import { NumberArray } from '../../../mol-util/type-helpers';
 
 interface Matrix { data: NumberArray, size: number, cols: number, rows: number }
 
diff --git a/src/mol-math/linear-algebra/matrix/svd.ts b/src/mol-math/linear-algebra/matrix/svd.ts
index ad276f4ac0fed1fb6b2adce2868a327013f2ea20..a735eefeeaaf7408bb1663f69990355f159490c1 100644
--- a/src/mol-math/linear-algebra/matrix/svd.ts
+++ b/src/mol-math/linear-algebra/matrix/svd.ts
@@ -5,7 +5,7 @@
  */
 
 import Matrix from './matrix';
-import { NumberArray } from 'mol-util/type-helpers';
+import { NumberArray } from '../../../mol-util/type-helpers';
 
 // svd method adapted from http://inspirit.github.io/jsfeat/ MIT Eugene Zatepyakin
 
diff --git a/src/mol-model-formats/shape/ply.ts b/src/mol-model-formats/shape/ply.ts
index 7b3f9bcff93c620bd0a911366ecb1c992f56f1d0..f0a6b91879bf239ede409b285832e2415e0165f3 100644
--- a/src/mol-model-formats/shape/ply.ts
+++ b/src/mol-model-formats/shape/ply.ts
@@ -5,19 +5,19 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { RuntimeContext, Task } from 'mol-task';
-import { ShapeProvider } from 'mol-model/shape/provider';
-import { Color } from 'mol-util/color';
-import { PlyFile, PlyTable, PlyList } from 'mol-io/reader/ply/schema';
-import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { Shape } from 'mol-model/shape';
-import { ChunkedArray } from 'mol-data/util';
-import { arrayMax, fillSerial } from 'mol-util/array';
-import { Column } from 'mol-data/db';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { ColorNames } from 'mol-util/color/tables';
-import { deepClone } from 'mol-util/object';
+import { RuntimeContext, Task } from '../../mol-task';
+import { ShapeProvider } from '../../mol-model/shape/provider';
+import { Color } from '../../mol-util/color';
+import { PlyFile, PlyTable, PlyList } from '../../mol-io/reader/ply/schema';
+import { MeshBuilder } from '../../mol-geo/geometry/mesh/mesh-builder';
+import { Mesh } from '../../mol-geo/geometry/mesh/mesh';
+import { Shape } from '../../mol-model/shape';
+import { ChunkedArray } from '../../mol-data/util';
+import { arrayMax, fillSerial } from '../../mol-util/array';
+import { Column } from '../../mol-data/db';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
+import { ColorNames } from '../../mol-util/color/tables';
+import { deepClone } from '../../mol-util/object';
 
 // TODO support 'edge' element, see https://www.mathworks.com/help/vision/ug/the-ply-format.html
 // TODO support missing face element
diff --git a/src/mol-model-formats/structure/_spec/pdb.spec.ts b/src/mol-model-formats/structure/_spec/pdb.spec.ts
index 90a453277857d128415367de3ab0b63113f1a9a4..32c26556729e5960b40307023106ad5a108d5589 100644
--- a/src/mol-model-formats/structure/_spec/pdb.spec.ts
+++ b/src/mol-model-formats/structure/_spec/pdb.spec.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { TokenBuilder } from 'mol-io/reader/common/text/tokenizer';
+import { TokenBuilder } from '../../../mol-io/reader/common/text/tokenizer';
 import { guessElementSymbolTokens } from '../util';
 
 const records = [
diff --git a/src/mol-model-formats/structure/format.ts b/src/mol-model-formats/structure/format.ts
index d8ecc3d822830da08eb6718c50166457d89d644a..08d0d3b3ffdb70973b46e3a9fd22c4a75cde6161 100644
--- a/src/mol-model-formats/structure/format.ts
+++ b/src/mol-model-formats/structure/format.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { mmCIF_Database } from 'mol-io/reader/cif/schema/mmcif';
-import CIF, { CifFrame } from 'mol-io/reader/cif';
+import { mmCIF_Database } from '../../mol-io/reader/cif/schema/mmcif';
+import { CIF, CifFrame } from '../../mol-io/reader/cif';
 
 type ModelFormat =
     | ModelFormat.mmCIF
diff --git a/src/mol-model-formats/structure/gro.ts b/src/mol-model-formats/structure/gro.ts
index 2b7d95817cd4c73a9b0d9ce797cdd2e7910f7af5..16d4518f9c8a35eb6ce21cd6103fc51abab60053 100644
--- a/src/mol-model-formats/structure/gro.ts
+++ b/src/mol-model-formats/structure/gro.ts
@@ -4,14 +4,14 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Model } from 'mol-model/structure/model';
-import { Task } from 'mol-task';
+import { Model } from '../../mol-model/structure/model';
+import { Task } from '../../mol-task';
 import { ModelFormat } from './format';
 import { _parse_mmCif } from './mmcif/parser';
-import { GroFile, GroAtoms } from 'mol-io/reader/gro/schema';
-import { CifCategory, CifField } from 'mol-io/reader/cif';
-import { Column } from 'mol-data/db';
-import { mmCIF_Schema } from 'mol-io/reader/cif/schema/mmcif';
+import { GroFile, GroAtoms } from '../../mol-io/reader/gro/schema';
+import { CifCategory, CifField } from '../../mol-io/reader/cif';
+import { Column } from '../../mol-data/db';
+import { mmCIF_Schema } from '../../mol-io/reader/cif/schema/mmcif';
 import { guessElementSymbolString } from './util';
 
 // TODO multi model files
diff --git a/src/mol-model-formats/structure/mmcif.ts b/src/mol-model-formats/structure/mmcif.ts
index 6eecc06b6b3e94ae8e5da0aa09141a4582fdb15c..ea8c6de0653c21bb9f0542f25e4fa69123be5462 100644
--- a/src/mol-model-formats/structure/mmcif.ts
+++ b/src/mol-model-formats/structure/mmcif.ts
@@ -5,11 +5,11 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Model } from 'mol-model/structure/model/model';
-import { Task } from 'mol-task';
+import { Model } from '../../mol-model/structure/model/model';
+import { Task } from '../../mol-task';
 import { ModelFormat } from './format';
 import { _parse_mmCif } from './mmcif/parser';
-import { CifFrame } from 'mol-io/reader/cif';
+import { CifFrame } from '../../mol-io/reader/cif';
 
 export function trajectoryFromMmCIF(frame: CifFrame): Task<Model.Trajectory> {
     return Task.create('Create mmCIF Model', ctx => _parse_mmCif(ModelFormat.mmCIF(frame), ctx));
diff --git a/src/mol-model-formats/structure/mmcif/assembly.ts b/src/mol-model-formats/structure/mmcif/assembly.ts
index ad0fa39b9b9cf687478b2d6b5fc6730b4ea5bc03..aed735ed8ca69ce9e4e19b0053d76950420e5906 100644
--- a/src/mol-model-formats/structure/mmcif/assembly.ts
+++ b/src/mol-model-formats/structure/mmcif/assembly.ts
@@ -4,11 +4,11 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Mat4, Tensor } from 'mol-math/linear-algebra'
-import { SymmetryOperator } from 'mol-math/geometry/symmetry-operator'
-import { Assembly, OperatorGroup, OperatorGroups } from 'mol-model/structure/model/properties/symmetry'
-import { Queries as Q } from 'mol-model/structure'
-import { StructureProperties } from 'mol-model/structure';
+import { Mat4, Tensor } from '../../../mol-math/linear-algebra'
+import { SymmetryOperator } from '../../../mol-math/geometry/symmetry-operator'
+import { Assembly, OperatorGroup, OperatorGroups } from '../../../mol-model/structure/model/properties/symmetry'
+import { Queries as Q } from '../../../mol-model/structure'
+import { StructureProperties } from '../../../mol-model/structure';
 import { ModelFormat } from '../format';
 import mmCIF_Format = ModelFormat.mmCIF
 
diff --git a/src/mol-model-formats/structure/mmcif/atomic.ts b/src/mol-model-formats/structure/mmcif/atomic.ts
index 38e39f5b63ad2108e61d1f1cbadac5e78b21154c..bbb3889a36870fdc6640b802086fb52b6f3ec8c4 100644
--- a/src/mol-model-formats/structure/mmcif/atomic.ts
+++ b/src/mol-model-formats/structure/mmcif/atomic.ts
@@ -4,18 +4,18 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Column, Table } from 'mol-data/db';
-import { Interval, Segmentation } from 'mol-data/int';
-import { mmCIF_Database } from 'mol-io/reader/cif/schema/mmcif';
-import UUID from 'mol-util/uuid';
-import { ElementIndex } from 'mol-model/structure';
-import { Model } from 'mol-model/structure/model/model';
-import { AtomicConformation, AtomicData, AtomicHierarchy, AtomicSegments, AtomsSchema, ChainsSchema, ResiduesSchema } from 'mol-model/structure/model/properties/atomic';
-import { getAtomicIndex } from 'mol-model/structure/model/properties/utils/atomic-index';
-import { ElementSymbol } from 'mol-model/structure/model/types';
-import { Entities } from 'mol-model/structure/model/properties/common';
-import { getAtomicRanges } from 'mol-model/structure/model/properties/utils/atomic-ranges';
-import { getAtomicDerivedData } from 'mol-model/structure/model/properties/utils/atomic-derived';
+import { Column, Table } from '../../../mol-data/db';
+import { Interval, Segmentation } from '../../../mol-data/int';
+import { mmCIF_Database } from '../../../mol-io/reader/cif/schema/mmcif';
+import UUID from '../../../mol-util/uuid';
+import { ElementIndex } from '../../../mol-model/structure';
+import { Model } from '../../../mol-model/structure/model/model';
+import { AtomicConformation, AtomicData, AtomicHierarchy, AtomicSegments, AtomsSchema, ChainsSchema, ResiduesSchema } from '../../../mol-model/structure/model/properties/atomic';
+import { getAtomicIndex } from '../../../mol-model/structure/model/properties/utils/atomic-index';
+import { ElementSymbol } from '../../../mol-model/structure/model/types';
+import { Entities } from '../../../mol-model/structure/model/properties/common';
+import { getAtomicRanges } from '../../../mol-model/structure/model/properties/utils/atomic-ranges';
+import { getAtomicDerivedData } from '../../../mol-model/structure/model/properties/utils/atomic-derived';
 import { FormatData } from './parser';
 
 type AtomSite = mmCIF_Database['atom_site']
diff --git a/src/mol-model-formats/structure/mmcif/bonds/comp.ts b/src/mol-model-formats/structure/mmcif/bonds/comp.ts
index 9ba0b69eb645f03e1fc9f10946eba6bcb09eeff4..d2a813ea7a489ff0b1b864cbe12eedc8ce05b521 100644
--- a/src/mol-model-formats/structure/mmcif/bonds/comp.ts
+++ b/src/mol-model-formats/structure/mmcif/bonds/comp.ts
@@ -5,13 +5,13 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Model } from 'mol-model/structure/model/model'
-import { LinkType } from 'mol-model/structure/model/types'
-import { CustomPropertyDescriptor } from 'mol-model/structure';
-import { mmCIF_Database } from 'mol-io/reader/cif/schema/mmcif';
-import { Structure, Unit, StructureProperties, StructureElement } from 'mol-model/structure';
-import { Segmentation } from 'mol-data/int';
-import { CifWriter } from 'mol-io/writer/cif'
+import { Model } from '../../../../mol-model/structure/model/model'
+import { LinkType } from '../../../../mol-model/structure/model/types'
+import { CustomPropertyDescriptor } from '../../../../mol-model/structure';
+import { mmCIF_Database } from '../../../../mol-io/reader/cif/schema/mmcif';
+import { Structure, Unit, StructureProperties, StructureElement } from '../../../../mol-model/structure';
+import { Segmentation } from '../../../../mol-data/int';
+import { CifWriter } from '../../../../mol-io/writer/cif'
 
 export interface ComponentBond {
     entries: Map<string, ComponentBond.Entry>
diff --git a/src/mol-model-formats/structure/mmcif/bonds/struct_conn.ts b/src/mol-model-formats/structure/mmcif/bonds/struct_conn.ts
index 69689c51dbae68518e2d4ad14edc55303e6b5ade..c3a5c9593458f19cf18082859e9e9ab14f8970d6 100644
--- a/src/mol-model-formats/structure/mmcif/bonds/struct_conn.ts
+++ b/src/mol-model-formats/structure/mmcif/bonds/struct_conn.ts
@@ -5,16 +5,16 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Model } from 'mol-model/structure/model/model'
-import { Structure } from 'mol-model/structure'
-import { LinkType } from 'mol-model/structure/model/types'
+import { Model } from '../../../../mol-model/structure/model/model'
+import { Structure } from '../../../../mol-model/structure'
+import { LinkType } from '../../../../mol-model/structure/model/types'
 import { findEntityIdByAsymId, findAtomIndexByLabelName } from '../util'
-import { Column } from 'mol-data/db'
-import { CustomPropertyDescriptor } from 'mol-model/structure';
-import { mmCIF_Database, mmCIF_Schema } from 'mol-io/reader/cif/schema/mmcif';
-import { SortedArray } from 'mol-data/int';
-import { CifWriter } from 'mol-io/writer/cif'
-import { ElementIndex, ResidueIndex } from 'mol-model/structure/model/indexing';
+import { Column } from '../../../../mol-data/db'
+import { CustomPropertyDescriptor } from '../../../../mol-model/structure';
+import { mmCIF_Database, mmCIF_Schema } from '../../../../mol-io/reader/cif/schema/mmcif';
+import { SortedArray } from '../../../../mol-data/int';
+import { CifWriter } from '../../../../mol-io/writer/cif'
+import { ElementIndex, ResidueIndex } from '../../../../mol-model/structure/model/indexing';
 
 export interface StructConn {
     getResidueEntries(residueAIndex: ResidueIndex, residueBIndex: ResidueIndex): ReadonlyArray<StructConn.Entry>,
diff --git a/src/mol-model-formats/structure/mmcif/ihm.ts b/src/mol-model-formats/structure/mmcif/ihm.ts
index e6b86f11b6d6f8982c0495f95f4ef02a7811e560..98ce31c6750cbb2467b4467cf649166ebcb04f62 100644
--- a/src/mol-model-formats/structure/mmcif/ihm.ts
+++ b/src/mol-model-formats/structure/mmcif/ihm.ts
@@ -4,16 +4,16 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { mmCIF_Database as mmCIF, mmCIF_Schema } from 'mol-io/reader/cif/schema/mmcif'
-import { CoarseHierarchy, CoarseConformation, CoarseElementData, CoarseSphereConformation, CoarseGaussianConformation } from 'mol-model/structure/model/properties/coarse'
-import { Entities } from 'mol-model/structure/model/properties/common';
-import { Column } from 'mol-data/db';
-import { getCoarseKeys } from 'mol-model/structure/model/properties/utils/coarse-keys';
-import { UUID } from 'mol-util';
-import { Segmentation, Interval } from 'mol-data/int';
-import { Mat3, Tensor } from 'mol-math/linear-algebra';
-import { ElementIndex, ChainIndex } from 'mol-model/structure/model/indexing';
-import { getCoarseRanges } from 'mol-model/structure/model/properties/utils/coarse-ranges';
+import { mmCIF_Database as mmCIF, mmCIF_Schema } from '../../../mol-io/reader/cif/schema/mmcif'
+import { CoarseHierarchy, CoarseConformation, CoarseElementData, CoarseSphereConformation, CoarseGaussianConformation } from '../../../mol-model/structure/model/properties/coarse'
+import { Entities } from '../../../mol-model/structure/model/properties/common';
+import { Column } from '../../../mol-data/db';
+import { getCoarseKeys } from '../../../mol-model/structure/model/properties/utils/coarse-keys';
+import { UUID } from '../../../mol-util';
+import { Segmentation, Interval } from '../../../mol-data/int';
+import { Mat3, Tensor } from '../../../mol-math/linear-algebra';
+import { ElementIndex, ChainIndex } from '../../../mol-model/structure/model/indexing';
+import { getCoarseRanges } from '../../../mol-model/structure/model/properties/utils/coarse-ranges';
 import { FormatData } from './parser';
 
 export interface IHMData {
diff --git a/src/mol-model-formats/structure/mmcif/pair-restraints/cross-links.ts b/src/mol-model-formats/structure/mmcif/pair-restraints/cross-links.ts
index 2964745e9b5723e3621f97551592d9961e1277df..62305d3e942cefc6f3cbef76c598aba74de7caf4 100644
--- a/src/mol-model-formats/structure/mmcif/pair-restraints/cross-links.ts
+++ b/src/mol-model-formats/structure/mmcif/pair-restraints/cross-links.ts
@@ -4,12 +4,12 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Model } from 'mol-model/structure/model/model'
-import { Table } from 'mol-data/db'
-import { mmCIF_Schema } from 'mol-io/reader/cif/schema/mmcif';
+import { Model } from '../../../../mol-model/structure/model/model'
+import { Table } from '../../../../mol-data/db'
+import { mmCIF_Schema } from '../../../../mol-io/reader/cif/schema/mmcif';
 import { findAtomIndexByLabelName } from '../util';
-import { Unit } from 'mol-model/structure';
-import { ElementIndex } from 'mol-model/structure/model/indexing';
+import { Unit } from '../../../../mol-model/structure';
+import { ElementIndex } from '../../../../mol-model/structure/model/indexing';
 
 function findAtomIndex(model: Model, entityId: string, asymId: string, seqId: number, atomId: string) {
     if (!model.atomicHierarchy.atoms.auth_atom_id.isDefined) return -1
diff --git a/src/mol-model-formats/structure/mmcif/parser.ts b/src/mol-model-formats/structure/mmcif/parser.ts
index eee752fd2ab941c65d818a9a7548012121ba0b37..4691e52c5ebcd5f28f91f7a94ac5008ec4072f27 100644
--- a/src/mol-model-formats/structure/mmcif/parser.ts
+++ b/src/mol-model-formats/structure/mmcif/parser.ts
@@ -5,16 +5,16 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Column, Table } from 'mol-data/db';
-import { mmCIF_Database, mmCIF_Schema } from 'mol-io/reader/cif/schema/mmcif';
-import { Spacegroup, SpacegroupCell, SymmetryOperator } from 'mol-math/geometry';
-import { Tensor, Vec3 } from 'mol-math/linear-algebra';
-import { RuntimeContext } from 'mol-task';
-import UUID from 'mol-util/uuid';
-import { Model } from 'mol-model/structure/model/model';
-import { Entities } from 'mol-model/structure/model/properties/common';
-import { CustomProperties } from 'mol-model/structure';
-import { ModelSymmetry } from 'mol-model/structure/model/properties/symmetry';
+import { Column, Table } from '../../../mol-data/db';
+import { mmCIF_Database, mmCIF_Schema } from '../../../mol-io/reader/cif/schema/mmcif';
+import { Spacegroup, SpacegroupCell, SymmetryOperator } from '../../../mol-math/geometry';
+import { Tensor, Vec3 } from '../../../mol-math/linear-algebra';
+import { RuntimeContext } from '../../../mol-task';
+import UUID from '../../../mol-util/uuid';
+import { Model } from '../../../mol-model/structure/model/model';
+import { Entities } from '../../../mol-model/structure/model/properties/common';
+import { CustomProperties } from '../../../mol-model/structure';
+import { ModelSymmetry } from '../../../mol-model/structure/model/properties/symmetry';
 import { createAssemblies } from './assembly';
 import { getAtomicHierarchyAndConformation } from './atomic';
 import { ComponentBond } from './bonds';
@@ -23,13 +23,13 @@ import { getSecondaryStructure } from './secondary-structure';
 import { getSequence } from './sequence';
 import { sortAtomSite } from './sort';
 import { StructConn } from './bonds/struct_conn';
-import { ChemicalComponent } from 'mol-model/structure/model/properties/chemical-component';
-import { getMoleculeType, MoleculeType, getEntityType } from 'mol-model/structure/model/types';
+import { ChemicalComponent } from '../../../mol-model/structure/model/properties/chemical-component';
+import { getMoleculeType, MoleculeType, getEntityType } from '../../../mol-model/structure/model/types';
 import { ModelFormat } from '../format';
-import { SaccharideComponentMap, SaccharideComponent, SaccharidesSnfgMap, SaccharideCompIdMap, UnknownSaccharideComponent } from 'mol-model/structure/structure/carbohydrates/constants';
+import { SaccharideComponentMap, SaccharideComponent, SaccharidesSnfgMap, SaccharideCompIdMap, UnknownSaccharideComponent } from '../../../mol-model/structure/structure/carbohydrates/constants';
 import mmCIF_Format = ModelFormat.mmCIF
-import { memoize1 } from 'mol-util/memoize';
-import { ElementIndex } from 'mol-model/structure/model';
+import { memoize1 } from '../../../mol-util/memoize';
+import { ElementIndex } from '../../../mol-model/structure/model';
 
 export async function _parse_mmCif(format: mmCIF_Format, ctx: RuntimeContext) {
     const formatData = getFormatData(format)
diff --git a/src/mol-model-formats/structure/mmcif/secondary-structure.ts b/src/mol-model-formats/structure/mmcif/secondary-structure.ts
index ca06a9b65d98a6b060fee36fff52c5af6bc1a35d..6de92b160f99e8a71d73e4b3fe127f130d0e69f6 100644
--- a/src/mol-model-formats/structure/mmcif/secondary-structure.ts
+++ b/src/mol-model-formats/structure/mmcif/secondary-structure.ts
@@ -5,12 +5,12 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { mmCIF_Database as mmCIF, mmCIF_Database } from 'mol-io/reader/cif/schema/mmcif'
-import { SecondaryStructureType } from 'mol-model/structure/model/types';
-import { AtomicHierarchy } from 'mol-model/structure/model/properties/atomic';
-import { SecondaryStructure } from 'mol-model/structure/model/properties/seconday-structure';
-import { Column } from 'mol-data/db';
-import { ChainIndex, ResidueIndex } from 'mol-model/structure/model/indexing';
+import { mmCIF_Database as mmCIF, mmCIF_Database } from '../../../mol-io/reader/cif/schema/mmcif'
+import { SecondaryStructureType } from '../../../mol-model/structure/model/types';
+import { AtomicHierarchy } from '../../../mol-model/structure/model/properties/atomic';
+import { SecondaryStructure } from '../../../mol-model/structure/model/properties/seconday-structure';
+import { Column } from '../../../mol-data/db';
+import { ChainIndex, ResidueIndex } from '../../../mol-model/structure/model/indexing';
 
 export function getSecondaryStructure(data: mmCIF_Database, hierarchy: AtomicHierarchy): SecondaryStructure {
     const map: SecondaryStructureMap = new Map();
diff --git a/src/mol-model-formats/structure/mmcif/sequence.ts b/src/mol-model-formats/structure/mmcif/sequence.ts
index 9915651b634980c5c522935caa45eabc3c702aee..dd2a48a36f90a37636c0844de79aed721b4a6189 100644
--- a/src/mol-model-formats/structure/mmcif/sequence.ts
+++ b/src/mol-model-formats/structure/mmcif/sequence.ts
@@ -4,12 +4,12 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { mmCIF_Database as mmCIF } from 'mol-io/reader/cif/schema/mmcif'
-import StructureSequence from 'mol-model/structure/model/properties/sequence'
-import { Column } from 'mol-data/db';
-import { AtomicHierarchy } from 'mol-model/structure/model/properties/atomic';
-import { Entities } from 'mol-model/structure/model/properties/common';
-import { Sequence } from 'mol-model/sequence';
+import { mmCIF_Database as mmCIF } from '../../../mol-io/reader/cif/schema/mmcif'
+import StructureSequence from '../../../mol-model/structure/model/properties/sequence'
+import { Column } from '../../../mol-data/db';
+import { AtomicHierarchy } from '../../../mol-model/structure/model/properties/atomic';
+import { Entities } from '../../../mol-model/structure/model/properties/common';
+import { Sequence } from '../../../mol-model/sequence';
 
 // TODO how to handle microheterogeneity
 //    see http://mmcif.wwpdb.org/dictionaries/mmcif_pdbx_v50.dic/Categories/entity_poly_seq.html
diff --git a/src/mol-model-formats/structure/mmcif/sort.ts b/src/mol-model-formats/structure/mmcif/sort.ts
index 868cd5dd86bed2dfb063a042a224fb54191ed52b..a6e450b40076403d40a2fac796ceb0ab7b6233c9 100644
--- a/src/mol-model-formats/structure/mmcif/sort.ts
+++ b/src/mol-model-formats/structure/mmcif/sort.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { mmCIF_Database } from 'mol-io/reader/cif/schema/mmcif';
-import { createRangeArray, makeBuckets } from 'mol-data/util';
-import { Column, Table } from 'mol-data/db';
-import { RuntimeContext } from 'mol-task';
+import { mmCIF_Database } from '../../../mol-io/reader/cif/schema/mmcif';
+import { createRangeArray, makeBuckets } from '../../../mol-data/util';
+import { Column, Table } from '../../../mol-data/db';
+import { RuntimeContext } from '../../../mol-task';
 
 export type SortedAtomSite = mmCIF_Database['atom_site'] & { sourceIndex: Column<number> }
 
diff --git a/src/mol-model-formats/structure/mmcif/util.ts b/src/mol-model-formats/structure/mmcif/util.ts
index 1f398a11bee1cfd425447854ecc9e0bc36bfe71a..71d7ac58cc5810b6fda966b26b4966e4a01ee93f 100644
--- a/src/mol-model-formats/structure/mmcif/util.ts
+++ b/src/mol-model-formats/structure/mmcif/util.ts
@@ -4,8 +4,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Model } from 'mol-model/structure/model'
-import { ElementIndex } from 'mol-model/structure/model/indexing';
+import { Model } from '../../../mol-model/structure/model'
+import { ElementIndex } from '../../../mol-model/structure/model/indexing';
 
 export function findEntityIdByAsymId(model: Model, asymId: string) {
     if (model.sourceData.kind !== 'mmCIF') return ''
diff --git a/src/mol-model-formats/structure/pdb.ts b/src/mol-model-formats/structure/pdb.ts
index cce4dc869705609ee7cd5a17edce686313547097..525ec39cccfa76c405fbb2d44b231b213ab0a946 100644
--- a/src/mol-model-formats/structure/pdb.ts
+++ b/src/mol-model-formats/structure/pdb.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { PdbFile } from 'mol-io/reader/pdb/schema';
+import { PdbFile } from '../../mol-io/reader/pdb/schema';
 import { pdbToMmCif } from './pdb/to-cif';
-import { Model } from 'mol-model/structure/model';
-import { Task } from 'mol-task';
+import { Model } from '../../mol-model/structure/model';
+import { Task } from '../../mol-task';
 import { ModelFormat } from './format';
 import { _parse_mmCif } from './mmcif/parser';
 
diff --git a/src/mol-model-formats/structure/pdb/assembly.ts b/src/mol-model-formats/structure/pdb/assembly.ts
index 20ae0fdc51476f66d0f1c0cd7503651b79299047..02f6a989edda0a00e39a2c4399da3d655e12afb1 100644
--- a/src/mol-model-formats/structure/pdb/assembly.ts
+++ b/src/mol-model-formats/structure/pdb/assembly.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { CifCategory, CifField } from 'mol-io/reader/cif';
-import { mmCIF_Schema } from 'mol-io/reader/cif/schema/mmcif';
-import { Mat4 } from 'mol-math/linear-algebra';
-import { Tokens } from 'mol-io/reader/common/text/tokenizer';
+import { CifCategory, CifField } from '../../../mol-io/reader/cif';
+import { mmCIF_Schema } from '../../../mol-io/reader/cif/schema/mmcif';
+import { Mat4 } from '../../../mol-math/linear-algebra';
+import { Tokens } from '../../../mol-io/reader/common/text/tokenizer';
 
 export function parseCryst1(id: string, record: string): CifCategory[] {
     // COLUMNS       DATA TYPE      CONTENTS
diff --git a/src/mol-model-formats/structure/pdb/secondary-structure.ts b/src/mol-model-formats/structure/pdb/secondary-structure.ts
index d5b92c64a2075c694037ee5a4ea38f7f4d9d82b3..9045a2bfbe2331bb93f99cc46946e7b7695c2f22 100644
--- a/src/mol-model-formats/structure/pdb/secondary-structure.ts
+++ b/src/mol-model-formats/structure/pdb/secondary-structure.ts
@@ -4,9 +4,9 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { CifCategory, CifField } from 'mol-io/reader/cif';
-import { mmCIF_Schema } from 'mol-io/reader/cif/schema/mmcif';
-import { Tokens } from 'mol-io/reader/common/text/tokenizer';
+import { CifCategory, CifField } from '../../../mol-io/reader/cif';
+import { mmCIF_Schema } from '../../../mol-io/reader/cif/schema/mmcif';
+import { Tokens } from '../../../mol-io/reader/common/text/tokenizer';
 
 const HelixTypes: {[k: string]: mmCIF_Schema['struct_conf']['conf_type_id']['T']} = {
     // CLASS NUMBER
diff --git a/src/mol-model-formats/structure/pdb/to-cif.ts b/src/mol-model-formats/structure/pdb/to-cif.ts
index d280d1d371d8aa7c87410dfc9da5c884a517c4c9..362f8c26b2529edbbc8daa281f6a9a4065559314 100644
--- a/src/mol-model-formats/structure/pdb/to-cif.ts
+++ b/src/mol-model-formats/structure/pdb/to-cif.ts
@@ -5,13 +5,13 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { substringStartsWith } from 'mol-util/string';
-import { CifField, CifCategory, CifFrame } from 'mol-io/reader/cif';
-import { mmCIF_Schema } from 'mol-io/reader/cif/schema/mmcif';
-import { TokenBuilder, Tokenizer } from 'mol-io/reader/common/text/tokenizer';
-import { PdbFile } from 'mol-io/reader/pdb/schema';
+import { substringStartsWith } from '../../../mol-util/string';
+import { CifField, CifCategory, CifFrame } from '../../../mol-io/reader/cif';
+import { mmCIF_Schema } from '../../../mol-io/reader/cif/schema/mmcif';
+import { TokenBuilder, Tokenizer } from '../../../mol-io/reader/common/text/tokenizer';
+import { PdbFile } from '../../../mol-io/reader/pdb/schema';
 import { parseCryst1, parseRemark350, parseMtrix } from './assembly';
-import { WaterNames } from 'mol-model/structure/model/types';
+import { WaterNames } from '../../../mol-model/structure/model/types';
 import { parseHelix, parseSheet } from './secondary-structure';
 import { guessElementSymbolTokens } from '../util';
 
diff --git a/src/mol-model-formats/structure/util.ts b/src/mol-model-formats/structure/util.ts
index 3fc4b147cd52913d580339b6e5d41ca3e3dcec04..71959650bd411b465d47b4c8efc4b1fbe7e8e811 100644
--- a/src/mol-model-formats/structure/util.ts
+++ b/src/mol-model-formats/structure/util.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { TokenBuilder, Tokens } from 'mol-io/reader/common/text/tokenizer';
+import { TokenBuilder, Tokens } from '../../mol-io/reader/common/text/tokenizer';
 
 export function guessElementSymbolTokens(tokens: Tokens, str: string, start: number, end: number) {
     let s = start, e = end - 1
diff --git a/src/mol-model-formats/volume/ccp4.ts b/src/mol-model-formats/volume/ccp4.ts
index 118205173abad9610ea2f2784990a23e29de2728..4bfccd1510beb0f68e931c69a1c4c4a86ac17d4f 100644
--- a/src/mol-model-formats/volume/ccp4.ts
+++ b/src/mol-model-formats/volume/ccp4.ts
@@ -4,14 +4,14 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { VolumeData } from 'mol-model/volume/data'
-import { Task } from 'mol-task';
-import { SpacegroupCell, Box3D } from 'mol-math/geometry';
-import { Tensor, Vec3 } from 'mol-math/linear-algebra';
-import { Ccp4File, Ccp4Header } from 'mol-io/reader/ccp4/schema';
-import { degToRad } from 'mol-math/misc';
-import { getCcp4ValueType } from 'mol-io/reader/ccp4/parser';
-import { TypedArrayValueType } from 'mol-io/common/typed-array';
+import { VolumeData } from '../../mol-model/volume/data'
+import { Task } from '../../mol-task';
+import { SpacegroupCell, Box3D } from '../../mol-math/geometry';
+import { Tensor, Vec3 } from '../../mol-math/linear-algebra';
+import { Ccp4File, Ccp4Header } from '../../mol-io/reader/ccp4/schema';
+import { degToRad } from '../../mol-math/misc';
+import { getCcp4ValueType } from '../../mol-io/reader/ccp4/parser';
+import { TypedArrayValueType } from '../../mol-io/common/typed-array';
 
 /** When available (e.g. in MRC files) use ORIGIN records instead of N[CRS]START */
 export function getCcp4Origin(header: Ccp4Header) {
diff --git a/src/mol-model-formats/volume/density-server.ts b/src/mol-model-formats/volume/density-server.ts
index 315bc33a6edbed6f54057da8595ac31e45cd7b54..aefd8a3e7371bc69955b5b39e11a4d495798e79a 100644
--- a/src/mol-model-formats/volume/density-server.ts
+++ b/src/mol-model-formats/volume/density-server.ts
@@ -4,11 +4,11 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { DensityServer_Data_Database } from 'mol-io/reader/cif/schema/density-server'
-import { VolumeData } from 'mol-model/volume/data'
-import { Task } from 'mol-task';
-import { SpacegroupCell, Box3D } from 'mol-math/geometry';
-import { Tensor, Vec3 } from 'mol-math/linear-algebra';
+import { DensityServer_Data_Database } from '../../mol-io/reader/cif/schema/density-server'
+import { VolumeData } from '../../mol-model/volume/data'
+import { Task } from '../../mol-task';
+import { SpacegroupCell, Box3D } from '../../mol-math/geometry';
+import { Tensor, Vec3 } from '../../mol-math/linear-algebra';
 
 function volumeFromDensityServerData(source: DensityServer_Data_Database): Task<VolumeData> {
     return Task.create<VolumeData>('Create Volume Data', async ctx => {
diff --git a/src/mol-model-formats/volume/dsn6.ts b/src/mol-model-formats/volume/dsn6.ts
index b256fe599afc421722d8943defc96fccc4fe4f4f..30a83c2dd59ffddda29a68caefb950848a79315e 100644
--- a/src/mol-model-formats/volume/dsn6.ts
+++ b/src/mol-model-formats/volume/dsn6.ts
@@ -4,13 +4,13 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { VolumeData } from 'mol-model/volume/data'
-import { Task } from 'mol-task';
-import { SpacegroupCell, Box3D } from 'mol-math/geometry';
-import { Tensor, Vec3 } from 'mol-math/linear-algebra';
-import { degToRad } from 'mol-math/misc';
-import { Dsn6File } from 'mol-io/reader/dsn6/schema';
-import { arrayMin, arrayMax, arrayMean, arrayRms } from 'mol-util/array';
+import { VolumeData } from '../../mol-model/volume/data'
+import { Task } from '../../mol-task';
+import { SpacegroupCell, Box3D } from '../../mol-math/geometry';
+import { Tensor, Vec3 } from '../../mol-math/linear-algebra';
+import { degToRad } from '../../mol-math/misc';
+import { Dsn6File } from '../../mol-io/reader/dsn6/schema';
+import { arrayMin, arrayMax, arrayMean, arrayRms } from '../../mol-util/array';
 
 function volumeFromDsn6(source: Dsn6File, params?: { voxelSize?: Vec3 }): Task<VolumeData> {
     return Task.create<VolumeData>('Create Volume Data', async ctx => {
diff --git a/src/mol-model-props/common/custom-element-property.ts b/src/mol-model-props/common/custom-element-property.ts
index 87f84d5a50c500b938f505544720d57a260d9623..e2e2315bb5a4b61cc2136a8e3f76af5e7d8d06f2 100644
--- a/src/mol-model-props/common/custom-element-property.ts
+++ b/src/mol-model-props/common/custom-element-property.ts
@@ -4,17 +4,17 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { ElementIndex, Model, CustomPropertyDescriptor } from 'mol-model/structure';
-import { StructureElement } from 'mol-model/structure/structure';
-import { Location } from 'mol-model/location';
+import { ElementIndex, Model, CustomPropertyDescriptor } from '../../mol-model/structure';
+import { StructureElement } from '../../mol-model/structure/structure';
+import { Location } from '../../mol-model/location';
 import { CustomPropertyRegistry } from './custom-property-registry';
-import { Task } from 'mol-task';
-import { ThemeDataContext, ThemeProvider } from 'mol-theme/theme';
-import { ColorTheme, LocationColor } from 'mol-theme/color';
-import { Color } from 'mol-util/color';
-import { TableLegend } from 'mol-util/color/tables';
-import { Loci } from 'mol-model/loci';
-import { OrderedSet } from 'mol-data/int';
+import { Task } from '../../mol-task';
+import { ThemeDataContext, ThemeProvider } from '../../mol-theme/theme';
+import { ColorTheme, LocationColor } from '../../mol-theme/color';
+import { Color } from '../../mol-util/color';
+import { TableLegend } from '../../mol-util/color/tables';
+import { Loci } from '../../mol-model/loci';
+import { OrderedSet } from '../../mol-data/int';
 
 export { CustomElementProperty };
 
diff --git a/src/mol-model-props/common/custom-property-registry.ts b/src/mol-model-props/common/custom-property-registry.ts
index 066d66aacd09c06e772cc3ac44b3a598e88c9c21..46ca8a58ea947cba892d2b53e6d48c17eedc0358 100644
--- a/src/mol-model-props/common/custom-property-registry.ts
+++ b/src/mol-model-props/common/custom-property-registry.ts
@@ -5,10 +5,10 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { CustomPropertyDescriptor, Model, Structure } from 'mol-model/structure';
+import { CustomPropertyDescriptor, Model, Structure } from '../../mol-model/structure';
 import { OrderedMap } from 'immutable';
-import { ParamDefinition } from 'mol-util/param-definition';
-import { Task } from 'mol-task';
+import { ParamDefinition } from '../../mol-util/param-definition';
+import { Task } from '../../mol-task';
 
 export { CustomPropertyRegistry }
 
diff --git a/src/mol-model-props/common/wrapper.ts b/src/mol-model-props/common/wrapper.ts
index 2f22e742f0c46c37628313c33d03a4a5c94df3c1..21c57e124e18ad5ab3193eb9a67774cc8a0abd51 100644
--- a/src/mol-model-props/common/wrapper.ts
+++ b/src/mol-model-props/common/wrapper.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { CifWriter } from 'mol-io/writer/cif';
-import { Model } from 'mol-model/structure';
-import { dateToUtcString } from 'mol-util/date';
+import { CifWriter } from '../../mol-io/writer/cif';
+import { Model } from '../../mol-model/structure';
+import { dateToUtcString } from '../../mol-util/date';
 
 interface PropertyWrapper<Data> {
     info: PropertyWrapper.Info,
diff --git a/src/mol-model-props/computed/secondary-structure.ts b/src/mol-model-props/computed/secondary-structure.ts
index 784be59d3bb50e1e18b2579893b795077af66f8d..0399f38410aedc70c2e446978db54dafcc3fe01c 100644
--- a/src/mol-model-props/computed/secondary-structure.ts
+++ b/src/mol-model-props/computed/secondary-structure.ts
@@ -4,13 +4,13 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { CustomPropertyDescriptor, Structure } from 'mol-model/structure';
-import { Task } from 'mol-task';
+import { CustomPropertyDescriptor, Structure } from '../../mol-model/structure';
+import { Task } from '../../mol-task';
 import { DSSPComputationParams, computeUnitDSSP } from './secondary-structure/dssp';
-import { SecondaryStructure } from 'mol-model/structure/model/properties/seconday-structure';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Unit } from 'mol-model/structure/structure';
-import { idFactory } from 'mol-util/id-factory';
+import { SecondaryStructure } from '../../mol-model/structure/model/properties/seconday-structure';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
+import { Unit } from '../../mol-model/structure/structure';
+import { idFactory } from '../../mol-util/id-factory';
 
 const nextSecondaryStructureId = idFactory()
 
diff --git a/src/mol-model-props/computed/secondary-structure/dssp.ts b/src/mol-model-props/computed/secondary-structure/dssp.ts
index 7838724f516b5b1e989fa8e3a56929078016e7d6..171c8b01ec344fd2b290cd407fa7386833f18089 100644
--- a/src/mol-model-props/computed/secondary-structure/dssp.ts
+++ b/src/mol-model-props/computed/secondary-structure/dssp.ts
@@ -5,9 +5,9 @@
  * @author Sebastian Bittrich <sebastian.bittrich@rcsb.org>
  */
 
-import { SecondaryStructure } from 'mol-model/structure/model/properties/seconday-structure';
-import { SecondaryStructureType } from 'mol-model/structure/model/types';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
+import { SecondaryStructure } from '../../../mol-model/structure/model/properties/seconday-structure';
+import { SecondaryStructureType } from '../../../mol-model/structure/model/types';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition'
 import { assignBends } from './dssp/bends';
 import { calcUnitBackboneHbonds } from './dssp/backbone-hbonds';
 import { Ladder, Bridge, DSSPContext, DSSPType } from './dssp/common';
@@ -18,10 +18,10 @@ import { assignBridges } from './dssp/bridges';
 import { assignSheets } from './dssp/sheets';
 import { calculateUnitDihedralAngles } from './dssp/dihedral-angles';
 import { calcUnitProteinTraceLookup3D } from './dssp/trace-lookup';
-import { Unit } from 'mol-model/structure';
+import { Unit } from '../../../mol-model/structure';
 import { getUnitProteinInfo } from './dssp/protein-info';
-import { ResidueIndex } from 'mol-model/structure/model';
-import { SortedArray } from 'mol-data/int';
+import { ResidueIndex } from '../../../mol-model/structure/model';
+import { SortedArray } from '../../../mol-data/int';
 
 /**
  * TODO bugs to fix:
diff --git a/src/mol-model-props/computed/secondary-structure/dssp/backbone-hbonds.ts b/src/mol-model-props/computed/secondary-structure/dssp/backbone-hbonds.ts
index f8155ddb22ef889398d6122ba58bbfa74da031df..6ed04cfccc82135c9295ef56af4f60ac7aca9e9b 100644
--- a/src/mol-model-props/computed/secondary-structure/dssp/backbone-hbonds.ts
+++ b/src/mol-model-props/computed/secondary-structure/dssp/backbone-hbonds.ts
@@ -5,13 +5,13 @@
  * @author Sebastian Bittrich <sebastian.bittrich@rcsb.org>
  */
 
-import { IntAdjacencyGraph } from 'mol-math/graph';
-import { Unit } from 'mol-model/structure';
-import { GridLookup3D } from 'mol-math/geometry';
-import { Vec3 } from 'mol-math/linear-algebra';
+import { IntAdjacencyGraph } from '../../../../mol-math/graph';
+import { Unit } from '../../../../mol-model/structure';
+import { GridLookup3D } from '../../../../mol-math/geometry';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
 import { DsspHbonds } from './common';
 import { ProteinInfo } from './protein-info';
-import { ElementIndex } from 'mol-model/structure/model';
+import { ElementIndex } from '../../../../mol-model/structure/model';
 
 /** max distance between two C-alpha atoms to check for hbond */
 const caMaxDist = 9.0;
diff --git a/src/mol-model-props/computed/secondary-structure/dssp/bends.ts b/src/mol-model-props/computed/secondary-structure/dssp/bends.ts
index adc48016c5f4d17e995224af08efe49d1cfa67d5..250c644ca5755c9c01f65e40180549a878b95a9f 100644
--- a/src/mol-model-props/computed/secondary-structure/dssp/bends.ts
+++ b/src/mol-model-props/computed/secondary-structure/dssp/bends.ts
@@ -5,10 +5,10 @@
  * @author Sebastian Bittrich <sebastian.bittrich@rcsb.org>
  */
 
-import { Vec3 } from 'mol-math/linear-algebra';
-import { radToDeg } from 'mol-math/misc';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
+import { radToDeg } from '../../../../mol-math/misc';
 import { DSSPContext, DSSPType } from './common';
-import { ElementIndex } from 'mol-model/structure';
+import { ElementIndex } from '../../../../mol-model/structure';
 
 /**
  * Bend(i) =: [angle ((CW - Ca(i - 2)),(C"(i + 2) - C"(i))) > 70"]
diff --git a/src/mol-model-props/computed/secondary-structure/dssp/common.ts b/src/mol-model-props/computed/secondary-structure/dssp/common.ts
index 63aab0ee80d3443665a010168bab3523c80efeb2..a8bed860aa3c104236d7ccbcbac37ec515b6b68b 100644
--- a/src/mol-model-props/computed/secondary-structure/dssp/common.ts
+++ b/src/mol-model-props/computed/secondary-structure/dssp/common.ts
@@ -5,10 +5,10 @@
  * @author Sebastian Bittrich <sebastian.bittrich@rcsb.org>
  */
 
-import { BitFlags } from 'mol-util';
-import { SecondaryStructureType } from 'mol-model/structure/model/types';
-import { IntAdjacencyGraph } from 'mol-math/graph';
-import { Unit } from 'mol-model/structure/structure';
+import { BitFlags } from '../../../../mol-util';
+import { SecondaryStructureType } from '../../../../mol-model/structure/model/types';
+import { IntAdjacencyGraph } from '../../../../mol-math/graph';
+import { Unit } from '../../../../mol-model/structure/structure';
 import { ProteinInfo } from './protein-info';
 
 export interface DSSPContext {
diff --git a/src/mol-model-props/computed/secondary-structure/dssp/dihedral-angles.ts b/src/mol-model-props/computed/secondary-structure/dssp/dihedral-angles.ts
index c0e948e4dabdc57ac9ad2fcd54c9e41aadd664bc..d7bef891c5a35d6294cbdf9f77e8b49bd399464d 100644
--- a/src/mol-model-props/computed/secondary-structure/dssp/dihedral-angles.ts
+++ b/src/mol-model-props/computed/secondary-structure/dssp/dihedral-angles.ts
@@ -5,10 +5,10 @@
  * @author Sebastian Bittrich <sebastian.bittrich@rcsb.org>
  */
 
-import { Unit } from 'mol-model/structure';
-import { Vec3 } from 'mol-math/linear-algebra';
+import { Unit } from '../../../../mol-model/structure';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
 import { ProteinInfo } from './protein-info';
-import { ElementIndex } from 'mol-model/structure/model';
+import { ElementIndex } from '../../../../mol-model/structure/model';
 
 export interface DihedralAngles {
     phi: Float32Array
diff --git a/src/mol-model-props/computed/secondary-structure/dssp/protein-info.ts b/src/mol-model-props/computed/secondary-structure/dssp/protein-info.ts
index 163564d00f9cecb17b3eadb113aa4421460f47f7..b4f3c9344bb4d3ee89e6be3872f5b2a3c7aa3542 100644
--- a/src/mol-model-props/computed/secondary-structure/dssp/protein-info.ts
+++ b/src/mol-model-props/computed/secondary-structure/dssp/protein-info.ts
@@ -5,8 +5,8 @@
  * @author Sebastian Bittrich <sebastian.bittrich@rcsb.org>
  */
 
-import { Unit, ResidueIndex, ElementIndex } from 'mol-model/structure';
-import { SortedArray } from 'mol-data/int';
+import { Unit, ResidueIndex, ElementIndex } from '../../../../mol-model/structure';
+import { SortedArray } from '../../../../mol-data/int';
 
 export interface ProteinInfo {
     readonly residueIndices: SortedArray<ResidueIndex>
diff --git a/src/mol-model-props/computed/secondary-structure/dssp/trace-lookup.ts b/src/mol-model-props/computed/secondary-structure/dssp/trace-lookup.ts
index e889ddf8c0ccdd0a5bec9e3d4f750b7bce5c3d3f..441c6c24988a99ff19197ba7bbd0f137d0a2e11a 100644
--- a/src/mol-model-props/computed/secondary-structure/dssp/trace-lookup.ts
+++ b/src/mol-model-props/computed/secondary-structure/dssp/trace-lookup.ts
@@ -4,10 +4,10 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { GridLookup3D } from 'mol-math/geometry';
-import { SortedArray } from 'mol-data/int';
-import { Unit } from 'mol-model/structure/structure';
-import { ResidueIndex } from 'mol-model/structure';
+import { GridLookup3D } from '../../../../mol-math/geometry';
+import { SortedArray } from '../../../../mol-data/int';
+import { Unit } from '../../../../mol-model/structure/structure';
+import { ResidueIndex } from '../../../../mol-model/structure';
 
 export function calcUnitProteinTraceLookup3D(unit: Unit.Atomic, unitProteinResidues: SortedArray<ResidueIndex>): GridLookup3D {
     const { x, y, z } = unit.model.atomicConformation;
diff --git a/src/mol-model-props/pdbe/preferred-assembly.ts b/src/mol-model-props/pdbe/preferred-assembly.ts
index a5c540566b2cbd850c36a5f91ad90ce7447cfad8..21265dfbf8304091c230a6925f24bd3b48504b11 100644
--- a/src/mol-model-props/pdbe/preferred-assembly.ts
+++ b/src/mol-model-props/pdbe/preferred-assembly.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Column, Table } from 'mol-data/db';
-import { toTable } from 'mol-io/reader/cif/schema';
-import { CifWriter } from 'mol-io/writer/cif';
-import { Model, CustomPropertyDescriptor } from 'mol-model/structure';
+import { Column, Table } from '../../mol-data/db';
+import { toTable } from '../../mol-io/reader/cif/schema';
+import { CifWriter } from '../../mol-io/writer/cif';
+import { Model, CustomPropertyDescriptor } from '../../mol-model/structure';
 
 export namespace PDBePreferredAssembly {
     export type Property = string
diff --git a/src/mol-model-props/pdbe/struct-ref-domain.ts b/src/mol-model-props/pdbe/struct-ref-domain.ts
index 8c3a8a7f34ef9762832395db1c6819a7627ad361..4863cab96cd1ec49d47ec8078623fb4f26e54e66 100644
--- a/src/mol-model-props/pdbe/struct-ref-domain.ts
+++ b/src/mol-model-props/pdbe/struct-ref-domain.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Column, Table } from 'mol-data/db';
-import { toTable } from 'mol-io/reader/cif/schema';
-import { CifWriter } from 'mol-io/writer/cif';
-import { Model, CustomPropertyDescriptor } from 'mol-model/structure';
+import { Column, Table } from '../../mol-data/db';
+import { toTable } from '../../mol-io/reader/cif/schema';
+import { CifWriter } from '../../mol-io/writer/cif';
+import { Model, CustomPropertyDescriptor } from '../../mol-model/structure';
 import { PropertyWrapper } from '../common/wrapper';
 
 export namespace PDBeStructRefDomain {
diff --git a/src/mol-model-props/pdbe/structure-quality-report.ts b/src/mol-model-props/pdbe/structure-quality-report.ts
index 483b957047120c0118d58b966805bc51ef92ac22..997a971f7161d6a55bd4ddd8b86df9e079e60086 100644
--- a/src/mol-model-props/pdbe/structure-quality-report.ts
+++ b/src/mol-model-props/pdbe/structure-quality-report.ts
@@ -4,18 +4,18 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Column, Table } from 'mol-data/db';
-import { toTable } from 'mol-io/reader/cif/schema';
-import { mmCIF_residueId_schema } from 'mol-io/reader/cif/schema/mmcif-extras';
-import { CifWriter } from 'mol-io/writer/cif';
-import { Model, CustomPropertyDescriptor, ResidueIndex, Unit, IndexedCustomProperty } from 'mol-model/structure';
-import { residueIdFields } from 'mol-model/structure/export/categories/atom_site';
-import { StructureElement, CifExportContext } from 'mol-model/structure/structure';
-import { CustomPropSymbol } from 'mol-script/language/symbol';
-import Type from 'mol-script/language/type';
-import { QuerySymbolRuntime } from 'mol-script/runtime/query/compiler';
+import { Column, Table } from '../../mol-data/db';
+import { toTable } from '../../mol-io/reader/cif/schema';
+import { mmCIF_residueId_schema } from '../../mol-io/reader/cif/schema/mmcif-extras';
+import { CifWriter } from '../../mol-io/writer/cif';
+import { Model, CustomPropertyDescriptor, ResidueIndex, Unit, IndexedCustomProperty } from '../../mol-model/structure';
+import { residueIdFields } from '../../mol-model/structure/export/categories/atom_site';
+import { StructureElement, CifExportContext } from '../../mol-model/structure/structure';
+import { CustomPropSymbol } from '../../mol-script/language/symbol';
+import Type from '../../mol-script/language/type';
+import { QuerySymbolRuntime } from '../../mol-script/runtime/query/compiler';
 import { PropertyWrapper } from '../common/wrapper';
-import { Task } from 'mol-task';
+import { Task } from '../../mol-task';
 
 export namespace StructureQualityReport {
     export type IssueMap = IndexedCustomProperty.Residue<string[]>
@@ -83,7 +83,7 @@ export namespace StructureQualityReport {
         }
     }
 
-    export function createAttachTask(mapUrl: (model: Model) => string, fetch: import('mol-util/data-source').AjaxTask) {
+    export function createAttachTask(mapUrl: (model: Model) => string, fetch: import('../../mol-util/data-source').AjaxTask) {
         return (model: Model) => Task.create('PDBe Structure Quality Report', async ctx => {
             if (get(model)) return true;
 
diff --git a/src/mol-model-props/pdbe/themes/structure-quality-report.ts b/src/mol-model-props/pdbe/themes/structure-quality-report.ts
index 928298bd293b60de2d5673ae174134a9dca1d75a..b6b8df769ff2b9fb558efe31d052ef8ceb9ba823 100644
--- a/src/mol-model-props/pdbe/themes/structure-quality-report.ts
+++ b/src/mol-model-props/pdbe/themes/structure-quality-report.ts
@@ -4,13 +4,13 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { StructureQualityReport } from 'mol-model-props/pdbe/structure-quality-report';
-import { Location } from 'mol-model/location';
-import { StructureElement } from 'mol-model/structure';
-import { ColorTheme, LocationColor } from 'mol-theme/color';
-import { ThemeDataContext } from 'mol-theme/theme';
-import { Color } from 'mol-util/color';
-import { TableLegend } from 'mol-util/color/tables';
+import { StructureQualityReport } from '../../../mol-model-props/pdbe/structure-quality-report';
+import { Location } from '../../../mol-model/location';
+import { StructureElement } from '../../../mol-model/structure';
+import { ColorTheme, LocationColor } from '../../../mol-theme/color';
+import { ThemeDataContext } from '../../../mol-theme/theme';
+import { Color } from '../../../mol-util/color';
+import { TableLegend } from '../../../mol-util/color/tables';
 
 const ValidationColors = [
     Color.fromRgb(170, 170, 170), // not applicable
diff --git a/src/mol-model-props/rcsb/assembly-symmetry.ts b/src/mol-model-props/rcsb/assembly-symmetry.ts
index 4eab862518f6da97b1adf445a6d24ec16ab4d2ad..2507935c5e2a74591763c35989502c6429a82627 100644
--- a/src/mol-model-props/rcsb/assembly-symmetry.ts
+++ b/src/mol-model-props/rcsb/assembly-symmetry.ts
@@ -7,18 +7,18 @@
 import { AssemblySymmetry as AssemblySymmetryGraphQL } from './graphql/types';
 import query from './graphql/symmetry.gql';
 
-import { Model, CustomPropertyDescriptor } from 'mol-model/structure';
-import { CifWriter } from 'mol-io/writer/cif';
-import { Database as _Database, Column, Table } from 'mol-data/db'
-import { Category } from 'mol-io/writer/cif/encoder';
-import { Tensor } from 'mol-math/linear-algebra';
-import { CifExportContext } from 'mol-model/structure/export/mmcif';
-import { toTable } from 'mol-io/reader/cif/schema';
-import { CifCategory } from 'mol-io/reader/cif';
-import { PropertyWrapper } from 'mol-model-props/common/wrapper';
-import { Task, RuntimeContext } from 'mol-task';
-import { GraphQLClient } from 'mol-util/graphql-client';
-import { ajaxGet } from 'mol-util/data-source';
+import { Model, CustomPropertyDescriptor } from '../../mol-model/structure';
+import { CifWriter } from '../../mol-io/writer/cif';
+import { Database as _Database, Column, Table } from '../../mol-data/db'
+import { Category } from '../../mol-io/writer/cif/encoder';
+import { Tensor } from '../../mol-math/linear-algebra';
+import { CifExportContext } from '../../mol-model/structure/export/mmcif';
+import { toTable } from '../../mol-io/reader/cif/schema';
+import { CifCategory } from '../../mol-io/reader/cif';
+import { PropertyWrapper } from '../../mol-model-props/common/wrapper';
+import { Task, RuntimeContext } from '../../mol-task';
+import { GraphQLClient } from '../../mol-util/graphql-client';
+import { ajaxGet } from '../../mol-util/data-source';
 
 const { str, int, float, Aliased, Vector, List } = Column.Schema;
 
@@ -283,7 +283,7 @@ export namespace AssemblySymmetry {
         return true;
     }
 
-    export function createAttachTask(fetch: import('mol-util/data-source').AjaxTask) {
+    export function createAttachTask(fetch: import('../../mol-util/data-source').AjaxTask) {
         return (model: Model) => Task.create('RCSB Assembly Symmetry', async ctx => {
             if (get(model)) return true;
 
diff --git a/src/mol-model-props/rcsb/representations/assembly-symmetry-axes.ts b/src/mol-model-props/rcsb/representations/assembly-symmetry-axes.ts
index 1ba6eb9512c43ac603fcbe19d9679a079a684979..d3f8c3816d120538cb8c55f7e0625cdeadf04af7 100644
--- a/src/mol-model-props/rcsb/representations/assembly-symmetry-axes.ts
+++ b/src/mol-model-props/rcsb/representations/assembly-symmetry-axes.ts
@@ -4,26 +4,26 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { RepresentationParamsGetter, RepresentationContext } from 'mol-repr/representation';
-import { VisualContext } from 'mol-repr/visual';
-import { ThemeRegistryContext, Theme } from 'mol-theme/theme';
-import { Structure } from 'mol-model/structure';
-import { StructureRepresentationProvider, StructureRepresentation, ComplexRepresentation, ComplexVisual } from 'mol-repr/structure/representation';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { RepresentationParamsGetter, RepresentationContext } from '../../../mol-repr/representation';
+import { VisualContext } from '../../../mol-repr/visual';
+import { ThemeRegistryContext, Theme } from '../../../mol-theme/theme';
+import { Structure } from '../../../mol-model/structure';
+import { StructureRepresentationProvider, StructureRepresentation, ComplexRepresentation, ComplexVisual } from '../../../mol-repr/structure/representation';
 import { AssemblySymmetry } from '../assembly-symmetry';
-import { Table } from 'mol-data/db';
-import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder';
-import { Tensor } from 'mol-math/linear-algebra';
-import { addSphere } from 'mol-geo/geometry/mesh/builder/sphere';
-import { addCylinder } from 'mol-geo/geometry/mesh/builder/cylinder';
-import { VisualUpdateState } from 'mol-repr/util';
-import { ComplexMeshVisual, ComplexMeshParams } from 'mol-repr/structure/complex-visual';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { EmptyLoci, createDataLoci, Loci, isDataLoci } from 'mol-model/loci';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { NullLocation } from 'mol-model/location';
-import { PickingId } from 'mol-geo/geometry/picking';
-import { OrderedSet, Interval } from 'mol-data/int';
+import { Table } from '../../../mol-data/db';
+import { MeshBuilder } from '../../../mol-geo/geometry/mesh/mesh-builder';
+import { Tensor } from '../../../mol-math/linear-algebra';
+import { addSphere } from '../../../mol-geo/geometry/mesh/builder/sphere';
+import { addCylinder } from '../../../mol-geo/geometry/mesh/builder/cylinder';
+import { VisualUpdateState } from '../../../mol-repr/util';
+import { ComplexMeshVisual, ComplexMeshParams } from '../../../mol-repr/structure/complex-visual';
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
+import { EmptyLoci, createDataLoci, Loci, isDataLoci } from '../../../mol-model/loci';
+import { LocationIterator } from '../../../mol-geo/util/location-iterator';
+import { NullLocation } from '../../../mol-model/location';
+import { PickingId } from '../../../mol-geo/geometry/picking';
+import { OrderedSet, Interval } from '../../../mol-data/int';
 import { getSymmetrySelectParam, getAssemblyIds } from '../util';
 
 export const AssemblySymmetryAxesParams = {
diff --git a/src/mol-model-props/rcsb/themes/assembly-symmetry-cluster.ts b/src/mol-model-props/rcsb/themes/assembly-symmetry-cluster.ts
index 434187445d789c4f3419c363e4e936b849a2b2b1..8af6802eaed6cdc3f75c4cb52d81b8a8361ab594 100644
--- a/src/mol-model-props/rcsb/themes/assembly-symmetry-cluster.ts
+++ b/src/mol-model-props/rcsb/themes/assembly-symmetry-cluster.ts
@@ -4,15 +4,15 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ThemeDataContext } from 'mol-theme/theme';
-import { ColorTheme, LocationColor } from 'mol-theme/color';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { Table } from 'mol-data/db';
+import { ThemeDataContext } from '../../../mol-theme/theme';
+import { ColorTheme, LocationColor } from '../../../mol-theme/color';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition'
+import { Table } from '../../../mol-data/db';
 import { AssemblySymmetry } from '../assembly-symmetry';
-import { ColorScale, Color } from 'mol-util/color';
-import { Unit, StructureElement, StructureProperties } from 'mol-model/structure';
-import { Location } from 'mol-model/location';
-import { ColorListName, ColorListOptions } from 'mol-util/color/scale';
+import { ColorScale, Color } from '../../../mol-util/color';
+import { Unit, StructureElement, StructureProperties } from '../../../mol-model/structure';
+import { Location } from '../../../mol-model/location';
+import { ColorListName, ColorListOptions } from '../../../mol-util/color/scale';
 import { getSymmetrySelectParam } from '../util';
 
 const DefaultColor = Color(0xCCCCCC)
diff --git a/src/mol-model-props/rcsb/util.ts b/src/mol-model-props/rcsb/util.ts
index f555295a17d5dba9c31a2d971cb98191b57b6ede..695af4b1e46018c25784990a9668fee6acd8d5da 100644
--- a/src/mol-model-props/rcsb/util.ts
+++ b/src/mol-model-props/rcsb/util.ts
@@ -4,8 +4,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, Structure } from 'mol-model/structure';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
+import { Unit, Structure } from '../../mol-model/structure';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
 import { AssemblySymmetry } from './assembly-symmetry';
 
 export function getAssemblyIds(units: ReadonlyArray<Unit>) {
diff --git a/src/mol-model/loci.ts b/src/mol-model/loci.ts
index 517b0631ac0456006bc7fe62ec7a54690587980b..7cd07f2575d431b527b21384989087e2b9644f19 100644
--- a/src/mol-model/loci.ts
+++ b/src/mol-model/loci.ts
@@ -7,10 +7,10 @@
 import { StructureElement } from './structure'
 import { Link } from './structure/structure/unit/links'
 import { Shape, ShapeGroup } from './shape';
-import { Sphere3D } from 'mol-math/geometry';
-import { CentroidHelper } from 'mol-math/geometry/centroid-helper';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { OrderedSet } from 'mol-data/int';
+import { Sphere3D } from '../mol-math/geometry';
+import { CentroidHelper } from '../mol-math/geometry/centroid-helper';
+import { Vec3 } from '../mol-math/linear-algebra';
+import { OrderedSet } from '../mol-data/int';
 import { Structure } from './structure/structure';
 
 /** A Loci that includes every loci */
diff --git a/src/mol-model/sequence/sequence.ts b/src/mol-model/sequence/sequence.ts
index f40ed77d6bb397ed4b8d8f22f7a046e1af700bfe..962e7b80cb97ec037374cc28835afc9ed0f1c460 100644
--- a/src/mol-model/sequence/sequence.ts
+++ b/src/mol-model/sequence/sequence.ts
@@ -5,7 +5,7 @@
  */
 
 import { AminoAlphabet, NuclecicAlphabet, getProteinOneLetterCode, getRnaOneLetterCode, getDnaOneLetterCode } from './constants';
-import { Column } from 'mol-data/db'
+import { Column } from '../../mol-data/db'
 
 // TODO add mapping support to other sequence spaces, e.g. uniprot
 // TODO sequence alignment (take NGL code as starting point)
diff --git a/src/mol-model/shape/provider.ts b/src/mol-model/shape/provider.ts
index dea45e8ba202b2a09da762a1b9a84926e836b64b..2165e53d7ff6ef478c83a2bb64eb073ef035b5f6 100644
--- a/src/mol-model/shape/provider.ts
+++ b/src/mol-model/shape/provider.ts
@@ -4,8 +4,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ShapeGetter } from 'mol-repr/shape/representation';
-import { Geometry, GeometryUtils } from 'mol-geo/geometry/geometry';
+import { ShapeGetter } from '../../mol-repr/shape/representation';
+import { Geometry, GeometryUtils } from '../../mol-geo/geometry/geometry';
 
 export interface ShapeProvider<D, G extends Geometry, P extends Geometry.Params<G>> {
     label: string
diff --git a/src/mol-model/shape/shape.ts b/src/mol-model/shape/shape.ts
index 0d740ef14a47a24fab8dbb37f0a5c994c466645e..413229c084ba03176421e029f159caf8391cb58f 100644
--- a/src/mol-model/shape/shape.ts
+++ b/src/mol-model/shape/shape.ts
@@ -4,11 +4,11 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Color } from 'mol-util/color';
-import { UUID } from 'mol-util';
-import { OrderedSet } from 'mol-data/int';
-import { Geometry } from 'mol-geo/geometry/geometry';
-import { Mat4 } from 'mol-math/linear-algebra';
+import { Color } from '../../mol-util/color';
+import { UUID } from '../../mol-util';
+import { OrderedSet } from '../../mol-data/int';
+import { Geometry } from '../../mol-geo/geometry/geometry';
+import { Mat4 } from '../../mol-math/linear-algebra';
 
 export interface Shape<G extends Geometry = Geometry> {
     /** A uuid to identify a shape object */
diff --git a/src/mol-model/structure/common/custom-property.ts b/src/mol-model/structure/common/custom-property.ts
index 12f6f557c4aa5da2e91bd2cb6600b74dd2a08376..6c35cf24d4e596eff9ec9a219ba6d866dfe57efd 100644
--- a/src/mol-model/structure/common/custom-property.ts
+++ b/src/mol-model/structure/common/custom-property.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { CifWriter } from 'mol-io/writer/cif'
+import { CifWriter } from '../../../mol-io/writer/cif'
 import { CifExportContext } from '../export/mmcif';
-import { QuerySymbolRuntime } from 'mol-script/runtime/query/compiler';
-import { UUID } from 'mol-util';
+import { QuerySymbolRuntime } from '../../../mol-script/runtime/query/compiler';
+import { UUID } from '../../../mol-util';
 
 export { CustomPropertyDescriptor, CustomProperties }
 
diff --git a/src/mol-model/structure/export/categories/atom_site.ts b/src/mol-model/structure/export/categories/atom_site.ts
index 8420667420e2d15aff29f3ec4500864ed2f04eca..5dedf013be0c9db391e13f960316fef28deaf1eb 100644
--- a/src/mol-model/structure/export/categories/atom_site.ts
+++ b/src/mol-model/structure/export/categories/atom_site.ts
@@ -5,7 +5,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { CifWriter } from 'mol-io/writer/cif';
+import { CifWriter } from '../../../../mol-io/writer/cif';
 import { StructureElement, Structure, StructureProperties as P } from '../../structure';
 import { CifExportContext } from '../mmcif';
 import CifField = CifWriter.Field
diff --git a/src/mol-model/structure/export/categories/misc.ts b/src/mol-model/structure/export/categories/misc.ts
index bd4772a45cdb33d7ebc43296dd19b7f69f003967..a180891eca685b38a0be07b74caa5f022321a4a9 100644
--- a/src/mol-model/structure/export/categories/misc.ts
+++ b/src/mol-model/structure/export/categories/misc.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Column } from 'mol-data/db';
-import { CifWriter } from 'mol-io/writer/cif';
+import { Column } from '../../../../mol-data/db';
+import { CifWriter } from '../../../../mol-io/writer/cif';
 import { CifExportContext } from '../mmcif';
 import { getModelMmCifCategory, getUniqueResidueNamesFromStructures } from './utils';
 import CifCategory = CifWriter.Category
diff --git a/src/mol-model/structure/export/categories/modified-residues.ts b/src/mol-model/structure/export/categories/modified-residues.ts
index 0ca4666ce942c8ece31f1c04a33f73793e9c2220..2e9183f88784900b765cde496a00a8255d7df7a3 100644
--- a/src/mol-model/structure/export/categories/modified-residues.ts
+++ b/src/mol-model/structure/export/categories/modified-residues.ts
@@ -5,8 +5,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Segmentation } from 'mol-data/int';
-import { CifWriter } from 'mol-io/writer/cif';
+import { Segmentation } from '../../../../mol-data/int';
+import { CifWriter } from '../../../../mol-io/writer/cif';
 import { StructureElement, StructureProperties as P, Unit } from '../../../structure';
 import { CifExportContext } from '../mmcif';
 
diff --git a/src/mol-model/structure/export/categories/secondary-structure.ts b/src/mol-model/structure/export/categories/secondary-structure.ts
index 1a57fdbcbf953e2d91b6f30f348a8a19f503c6dd..bf594b3d03495d5d7bb2fab5c64cdc4d43d0d00a 100644
--- a/src/mol-model/structure/export/categories/secondary-structure.ts
+++ b/src/mol-model/structure/export/categories/secondary-structure.ts
@@ -4,14 +4,14 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Segmentation } from 'mol-data/int';
-import { CifWriter } from 'mol-io/writer/cif';
+import { Segmentation } from '../../../../mol-data/int';
+import { CifWriter } from '../../../../mol-io/writer/cif';
 import { SecondaryStructure } from '../../model/properties/seconday-structure';
 import { StructureElement, Unit } from '../../structure';
 import { CifExportContext } from '../mmcif';
 import CifField = CifWriter.Field
 import CifCategory = CifWriter.Category
-import { Column } from 'mol-data/db';
+import { Column } from '../../../../mol-data/db';
 import { residueIdFields } from './atom_site';
 
 export const _struct_conf: CifCategory<CifExportContext> = {
diff --git a/src/mol-model/structure/export/categories/sequence.ts b/src/mol-model/structure/export/categories/sequence.ts
index cca5c83da2bb3be7355f8d57dc8ad7aca0a29e94..71574aa89bcabb54b05ee752843b34236f10bc0a 100644
--- a/src/mol-model/structure/export/categories/sequence.ts
+++ b/src/mol-model/structure/export/categories/sequence.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Column } from 'mol-data/db';
-import { CifWriter } from 'mol-io/writer/cif';
+import { Column } from '../../../../mol-data/db';
+import { CifWriter } from '../../../../mol-io/writer/cif';
 import { Structure } from '../../structure';
 import { CifExportContext } from '../mmcif';
 import { getModelMmCifCategory, getUniqueEntityIdsFromStructures } from './utils';
@@ -33,4 +33,3 @@ function getCategoryInstance(structures: Structure[], categoryName: 'struct_asym
     return CifCategory.ofTable(category, indices);
 
 }
-
diff --git a/src/mol-model/structure/export/categories/utils.ts b/src/mol-model/structure/export/categories/utils.ts
index 4b8acb1e8882de25959bf6410ecb85f8e2df67d5..091e92172dcbfeefa10bb7e069c717103474a05a 100644
--- a/src/mol-model/structure/export/categories/utils.ts
+++ b/src/mol-model/structure/export/categories/utils.ts
@@ -4,14 +4,14 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { mmCIF_Database, mmCIF_Schema } from 'mol-io/reader/cif/schema/mmcif';
-import { SetUtils } from 'mol-util/set';
+import { mmCIF_Database, mmCIF_Schema } from '../../../../mol-io/reader/cif/schema/mmcif';
+import { SetUtils } from '../../../../mol-util/set';
 import { Model } from '../../model';
 import { Structure } from '../../structure';
 import { EntityIndex } from '../../model/indexing';
-import { UniqueArray } from 'mol-data/generic';
-import { sortArray } from 'mol-data/util';
-import { CifWriter } from 'mol-io/writer/cif';
+import { UniqueArray } from '../../../../mol-data/generic';
+import { sortArray } from '../../../../mol-data/util';
+import { CifWriter } from '../../../../mol-io/writer/cif';
 import { CifExportContext } from '../mmcif';
 
 export function getModelMmCifCategory<K extends keyof mmCIF_Schema>(model: Model, name: K): mmCIF_Database[K] | undefined {
diff --git a/src/mol-model/structure/export/mmcif.ts b/src/mol-model/structure/export/mmcif.ts
index b94604b104dae5a250080db2bfc3c94c0c9c036a..45071c82cddc16fb1654c76e1e69595d1bef0622 100644
--- a/src/mol-model/structure/export/mmcif.ts
+++ b/src/mol-model/structure/export/mmcif.ts
@@ -5,8 +5,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { CifWriter } from 'mol-io/writer/cif'
-import { mmCIF_Schema } from 'mol-io/reader/cif/schema/mmcif'
+import { CifWriter } from '../../../mol-io/writer/cif'
+import { mmCIF_Schema } from '../../../mol-io/reader/cif/schema/mmcif'
 import { Structure } from '../structure'
 import { _atom_site } from './categories/atom_site';
 import CifCategory = CifWriter.Category
diff --git a/src/mol-model/structure/model/model.ts b/src/mol-model/structure/model/model.ts
index cad6d07e895cae6c8b3a3ebcfa1e2e0433441ff9..cd660879e8b16b92976667ff3db3f08998281709 100644
--- a/src/mol-model/structure/model/model.ts
+++ b/src/mol-model/structure/model/model.ts
@@ -5,7 +5,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import UUID from 'mol-util/uuid';
+import UUID from '../../../mol-util/uuid';
 import StructureSequence from './properties/sequence';
 import { AtomicHierarchy, AtomicConformation } from './properties/atomic';
 import { ModelSymmetry } from './properties/symmetry';
@@ -14,7 +14,7 @@ import { Entities } from './properties/common';
 import { CustomProperties } from '../common/custom-property';
 import { SecondaryStructure } from './properties/seconday-structure';
 import { SaccharideComponentMap } from '../structure/carbohydrates/constants';
-import { ModelFormat } from 'mol-model-formats/structure/format';
+import { ModelFormat } from '../../../mol-model-formats/structure/format';
 import { ChemicalComponentMap } from './properties/chemical-component';
 
 /**
diff --git a/src/mol-model/structure/model/properties/atomic/conformation.ts b/src/mol-model/structure/model/properties/atomic/conformation.ts
index 903ac4b72e71d3770db93c11ef4173e6e8653a0d..984697b02324cb1e57d854184a26225a78407138 100644
--- a/src/mol-model/structure/model/properties/atomic/conformation.ts
+++ b/src/mol-model/structure/model/properties/atomic/conformation.ts
@@ -5,8 +5,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Column } from 'mol-data/db'
-import UUID from 'mol-util/uuid'
+import { Column } from '../../../../../mol-data/db'
+import UUID from '../../../../../mol-util/uuid'
 
 export interface AtomicConformation {
     id: UUID,
diff --git a/src/mol-model/structure/model/properties/atomic/hierarchy.ts b/src/mol-model/structure/model/properties/atomic/hierarchy.ts
index 7262fe28a3d88264f02cb185cd580d8eb1d09fee..0854b3b13fa485b18a100648b271f93ebf317da1 100644
--- a/src/mol-model/structure/model/properties/atomic/hierarchy.ts
+++ b/src/mol-model/structure/model/properties/atomic/hierarchy.ts
@@ -5,12 +5,12 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Column, Table } from 'mol-data/db'
-import { Segmentation } from 'mol-data/int'
-import { mmCIF_Schema as mmCIF } from 'mol-io/reader/cif/schema/mmcif'
+import { Column, Table } from '../../../../../mol-data/db'
+import { Segmentation } from '../../../../../mol-data/int'
+import { mmCIF_Schema as mmCIF } from '../../../../../mol-io/reader/cif/schema/mmcif'
 import { ElementSymbol, MoleculeType } from '../../types'
 import { ChainIndex, EntityIndex, ResidueIndex, ElementIndex } from '../../indexing';
-import SortedRanges from 'mol-data/int/sorted-ranges';
+import SortedRanges from '../../../../../mol-data/int/sorted-ranges';
 
 export const AtomsSchema = {
     /**
diff --git a/src/mol-model/structure/model/properties/chemical-component.ts b/src/mol-model/structure/model/properties/chemical-component.ts
index 15efa28fed123964a6f47efc6555f8343f6514c8..bc31df3247cb888ddb504e5a414ca111a3858d99 100644
--- a/src/mol-model/structure/model/properties/chemical-component.ts
+++ b/src/mol-model/structure/model/properties/chemical-component.ts
@@ -4,8 +4,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { mmCIF_Schema } from 'mol-io/reader/cif/schema/mmcif';
-import { Table } from 'mol-data/db';
+import { mmCIF_Schema } from '../../../../mol-io/reader/cif/schema/mmcif';
+import { Table } from '../../../../mol-data/db';
 
 export type ChemicalComponent = Table.Row<mmCIF_Schema['chem_comp']>
 export type ChemicalComponentMap = ReadonlyMap<string, ChemicalComponent>
diff --git a/src/mol-model/structure/model/properties/coarse/conformation.ts b/src/mol-model/structure/model/properties/coarse/conformation.ts
index dfc396ea65c9ac5fb7e4ef183e6b0100cf792874..14511087657f84a8580a3d444c11677c483c3af3 100644
--- a/src/mol-model/structure/model/properties/coarse/conformation.ts
+++ b/src/mol-model/structure/model/properties/coarse/conformation.ts
@@ -5,8 +5,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import UUID from 'mol-util/uuid'
-import { Mat3 } from 'mol-math/linear-algebra';
+import UUID from '../../../../../mol-util/uuid'
+import { Mat3 } from '../../../../../mol-math/linear-algebra';
 
 export interface CoarseConformation {
     id: UUID,
diff --git a/src/mol-model/structure/model/properties/coarse/hierarchy.ts b/src/mol-model/structure/model/properties/coarse/hierarchy.ts
index 5733dd3d4809cd80425dd718cac4f0a92dbb3185..db20568e808d4e83805b15805cdff095363f40f6 100644
--- a/src/mol-model/structure/model/properties/coarse/hierarchy.ts
+++ b/src/mol-model/structure/model/properties/coarse/hierarchy.ts
@@ -5,10 +5,10 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Column } from 'mol-data/db'
-import { Segmentation } from 'mol-data/int';
+import { Column } from '../../../../../mol-data/db'
+import { Segmentation } from '../../../../../mol-data/int';
 import { ElementIndex, ChainIndex, EntityIndex } from '../../indexing';
-import SortedRanges from 'mol-data/int/sorted-ranges';
+import SortedRanges from '../../../../../mol-data/int/sorted-ranges';
 
 export interface CoarsedElementKeys {
     // assign a key to each element
diff --git a/src/mol-model/structure/model/properties/common.ts b/src/mol-model/structure/model/properties/common.ts
index c1b7af14d4e4751d3ddd9c24d535025acbef56fc..8355c9dceddafd302dca593b5adee128b050d30b 100644
--- a/src/mol-model/structure/model/properties/common.ts
+++ b/src/mol-model/structure/model/properties/common.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { mmCIF_Database as mmCIF } from 'mol-io/reader/cif/schema/mmcif'
+import { mmCIF_Database as mmCIF } from '../../../../mol-io/reader/cif/schema/mmcif'
 import { EntityIndex } from '../indexing';
 
 export interface Entities {
diff --git a/src/mol-model/structure/model/properties/custom/indexed.ts b/src/mol-model/structure/model/properties/custom/indexed.ts
index 9c5ee6cebbffd75a1bcca0234f627f6b15d4f685..443984e6f95a31ec02d2d1635e0cf15487198b24 100644
--- a/src/mol-model/structure/model/properties/custom/indexed.ts
+++ b/src/mol-model/structure/model/properties/custom/indexed.ts
@@ -6,9 +6,9 @@
 
 import { ResidueIndex, ChainIndex, ElementIndex, EntityIndex } from '../../indexing';
 import { Unit, Structure, StructureElement } from '../../../structure';
-import { Segmentation } from 'mol-data/int';
-import { UUID } from 'mol-util';
-import { CifWriter } from 'mol-io/writer/cif';
+import { Segmentation } from '../../../../../mol-data/int';
+import { UUID } from '../../../../../mol-util';
+import { CifWriter } from '../../../../../mol-io/writer/cif';
 import { Model } from '../../model';
 
 export interface IndexedCustomProperty<Idx extends IndexedCustomProperty.Index, T = any> {
diff --git a/src/mol-model/structure/model/properties/sequence.ts b/src/mol-model/structure/model/properties/sequence.ts
index 726b9e5179c04061a9c24b29cea175ef8cb04d74..368ea2293f004126e7ec491dd783a522098771c1 100644
--- a/src/mol-model/structure/model/properties/sequence.ts
+++ b/src/mol-model/structure/model/properties/sequence.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Column } from 'mol-data/db'
+import { Column } from '../../../../mol-data/db'
 import { AtomicHierarchy } from './atomic/hierarchy';
 import { Entities } from './common';
 import { Sequence } from '../../../sequence';
diff --git a/src/mol-model/structure/model/properties/symmetry.ts b/src/mol-model/structure/model/properties/symmetry.ts
index c1ffee05e76c293118f5455a847157f9b820af39..ee3a9c5e28103a0df624f6ad7513291c6389b937 100644
--- a/src/mol-model/structure/model/properties/symmetry.ts
+++ b/src/mol-model/structure/model/properties/symmetry.ts
@@ -4,11 +4,11 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { SymmetryOperator } from 'mol-math/geometry/symmetry-operator'
-import { arrayFind } from 'mol-data/util'
+import { SymmetryOperator } from '../../../../mol-math/geometry/symmetry-operator'
+import { arrayFind } from '../../../../mol-data/util'
 import { StructureQuery } from '../../query'
 import { Model } from '../../model'
-import { Spacegroup } from 'mol-math/geometry';
+import { Spacegroup } from '../../../../mol-math/geometry';
 
 /** Determine an atom set and a list of operators that should be applied to that set  */
 export interface OperatorGroup {
diff --git a/src/mol-model/structure/model/properties/utils/atomic-derived.ts b/src/mol-model/structure/model/properties/utils/atomic-derived.ts
index 80c1d10e59e9bbf13e9cfac3ecb3854dcda7cf6a..67f3a8a10bc30b3dacc1601e4457925d07056582 100644
--- a/src/mol-model/structure/model/properties/utils/atomic-derived.ts
+++ b/src/mol-model/structure/model/properties/utils/atomic-derived.ts
@@ -9,7 +9,7 @@ import { ChemicalComponentMap } from '../chemical-component';
 import { AtomicIndex, AtomicDerivedData } from '../atomic/hierarchy';
 import { ElementIndex, ResidueIndex } from '../../indexing';
 import { MoleculeType, getMoleculeType, getComponentType } from '../../types';
-import { getAtomIdForAtomRole } from 'mol-model/structure/util';
+import { getAtomIdForAtomRole } from '../../../../../mol-model/structure/util';
 
 export function getAtomicDerivedData(data: AtomicData, index: AtomicIndex, chemicalComponentMap: ChemicalComponentMap): AtomicDerivedData {
     const { label_comp_id, _rowCount: n } = data.residues
diff --git a/src/mol-model/structure/model/properties/utils/atomic-index.ts b/src/mol-model/structure/model/properties/utils/atomic-index.ts
index 17bc9dc6426fd67b758304a87b7930bee0a0dd4f..cb08a59a9683ded268f81615cbcf0e721566e31b 100644
--- a/src/mol-model/structure/model/properties/utils/atomic-index.ts
+++ b/src/mol-model/structure/model/properties/utils/atomic-index.ts
@@ -5,12 +5,12 @@
  */
 
 import { AtomicData, AtomicSegments } from '../atomic'
-import { Interval, Segmentation, SortedArray } from 'mol-data/int'
+import { Interval, Segmentation, SortedArray } from '../../../../../mol-data/int'
 import { Entities } from '../common'
 import { ChainIndex, ResidueIndex, EntityIndex, ElementIndex } from '../../indexing';
 import { AtomicIndex, AtomicHierarchy } from '../atomic/hierarchy';
-import { cantorPairing } from 'mol-data/util';
-import { Column } from 'mol-data/db';
+import { cantorPairing } from '../../../../../mol-data/util';
+import { Column } from '../../../../../mol-data/db';
 
 function getResidueId(seq_id: number, ins_code: string) {
     if (!ins_code) return seq_id;
diff --git a/src/mol-model/structure/model/properties/utils/atomic-ranges.ts b/src/mol-model/structure/model/properties/utils/atomic-ranges.ts
index 86ddca7d17eed50bf2166f989a6cd4e6c681a429..ab38a48e28231ebbff787985b9e7cb9a74739901 100644
--- a/src/mol-model/structure/model/properties/utils/atomic-ranges.ts
+++ b/src/mol-model/structure/model/properties/utils/atomic-ranges.ts
@@ -6,13 +6,13 @@
 
 import { AtomicSegments } from '../atomic';
 import { AtomicData, AtomicRanges, AtomicIndex } from '../atomic/hierarchy';
-import { Segmentation, Interval } from 'mol-data/int';
-import SortedRanges from 'mol-data/int/sorted-ranges';
+import { Segmentation, Interval } from '../../../../../mol-data/int';
+import SortedRanges from '../../../../../mol-data/int/sorted-ranges';
 import { MoleculeType, isPolymer } from '../../types';
 import { ElementIndex, ResidueIndex } from '../../indexing';
 import { getAtomIdForAtomRole } from '../../../util';
 import { AtomicConformation } from '../atomic/conformation';
-import { Vec3 } from 'mol-math/linear-algebra';
+import { Vec3 } from '../../../../../mol-math/linear-algebra';
 
 // TODO add gaps at the ends of the chains by comparing to the polymer sequence data
 
diff --git a/src/mol-model/structure/model/properties/utils/coarse-ranges.ts b/src/mol-model/structure/model/properties/utils/coarse-ranges.ts
index 0df3abc664cc0d098e0823d7ec78643f48b6704d..e7fb45928f8fdddfced1307ac67ef670bd8832fc 100644
--- a/src/mol-model/structure/model/properties/utils/coarse-ranges.ts
+++ b/src/mol-model/structure/model/properties/utils/coarse-ranges.ts
@@ -5,8 +5,8 @@
  */
 
 import { CoarseRanges, CoarseElementData } from '../coarse/hierarchy';
-import { Segmentation, Interval } from 'mol-data/int';
-import SortedRanges from 'mol-data/int/sorted-ranges';
+import { Segmentation, Interval } from '../../../../../mol-data/int';
+import SortedRanges from '../../../../../mol-data/int/sorted-ranges';
 import { ChemicalComponent } from '../chemical-component';
 import { ElementIndex } from '../../indexing';
 
diff --git a/src/mol-model/structure/model/types.ts b/src/mol-model/structure/model/types.ts
index 226a47a2f37491a5f888fcd7e454b104f5c86c99..89eaf3b4a058e2957e804f517599dcd4c6e4bb70 100644
--- a/src/mol-model/structure/model/types.ts
+++ b/src/mol-model/structure/model/types.ts
@@ -5,10 +5,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import BitFlags from 'mol-util/bit-flags'
+import BitFlags from '../../../mol-util/bit-flags'
 import { SaccharideCompIdMap } from '../structure/carbohydrates/constants';
-import { mmCIF_Schema } from 'mol-io/reader/cif/schema/mmcif';
-import { SetUtils } from 'mol-util/set';
+import { mmCIF_Schema } from '../../../mol-io/reader/cif/schema/mmcif';
+import { SetUtils } from '../../../mol-util/set';
 
 const _esCache = (function () {
     const cache = Object.create(null);
diff --git a/src/mol-model/structure/query/context.ts b/src/mol-model/structure/query/context.ts
index 9dd28a6b265bc17e9c38a32af4839af32fc9ed66..5c1f09357c7c564f7d1a4ae4dcf846b281d8af34 100644
--- a/src/mol-model/structure/query/context.ts
+++ b/src/mol-model/structure/query/context.ts
@@ -5,7 +5,7 @@
  */
 
 import { Structure, StructureElement, Unit } from '../structure';
-import { now } from 'mol-util/now';
+import { now } from '../../../mol-util/now';
 import { ElementIndex } from '../model';
 import { Link } from '../structure/unit/links';
 
diff --git a/src/mol-model/structure/query/queries/combinators.ts b/src/mol-model/structure/query/queries/combinators.ts
index a3b060ae65ad4453bc0d31777e27cc6420b6ccef..852fea6d3e1b81b74d3660dfdb14f4b6fd890cfa 100644
--- a/src/mol-model/structure/query/queries/combinators.ts
+++ b/src/mol-model/structure/query/queries/combinators.ts
@@ -7,7 +7,7 @@
 import { StructureQuery } from '../query';
 import { StructureSelection } from '../selection';
 import { none } from './generators';
-import { HashSet } from 'mol-data/generic';
+import { HashSet } from '../../../../mol-data/generic';
 import { Structure } from '../../structure';
 
 export function merge(queries: ArrayLike<StructureQuery>): StructureQuery {
diff --git a/src/mol-model/structure/query/queries/filters.ts b/src/mol-model/structure/query/queries/filters.ts
index 4b08350f68967e22fa5002cc6babafb37121756a..f0ca68108ff5369307e398cc09d0ee12aab403ee 100644
--- a/src/mol-model/structure/query/queries/filters.ts
+++ b/src/mol-model/structure/query/queries/filters.ts
@@ -4,17 +4,17 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { SetUtils } from 'mol-util/set';
+import { SetUtils } from '../../../../mol-util/set';
 import { Unit } from '../../structure';
 import { QueryContext, QueryFn, QueryPredicate } from '../context';
 import { StructureQuery } from '../query';
 import { StructureSelection } from '../selection';
 import { structureAreIntersecting } from '../utils/structure-set';
-import { Vec3 } from 'mol-math/linear-algebra';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
 import { checkStructureMaxRadiusDistance, checkStructureMinMaxDistance } from '../utils/structure-distance';
 import Structure from '../../structure/structure';
 import StructureElement from '../../structure/element';
-import { SortedArray } from 'mol-data/int';
+import { SortedArray } from '../../../../mol-data/int';
 
 export function pick(query: StructureQuery, pred: QueryPredicate): StructureQuery {
     return ctx => {
diff --git a/src/mol-model/structure/query/queries/generators.ts b/src/mol-model/structure/query/queries/generators.ts
index 24f49db0f080c80869b55d31efdfa8c481b46ef2..f370b5c2c1a97d3eb610206a6c8a1f6482888752 100644
--- a/src/mol-model/structure/query/queries/generators.ts
+++ b/src/mol-model/structure/query/queries/generators.ts
@@ -7,13 +7,13 @@
 import { StructureQuery } from '../query'
 import { StructureSelection } from '../selection'
 import { Unit, StructureProperties as P } from '../../structure'
-import { Segmentation, SortedArray } from 'mol-data/int'
+import { Segmentation, SortedArray } from '../../../../mol-data/int'
 import { LinearGroupingBuilder } from '../utils/builders';
 import { QueryPredicate, QueryFn, QueryContextView } from '../context';
 import { UnitRing } from '../../structure/unit/rings';
 import Structure from '../../structure/structure';
 import { ElementIndex } from '../../model';
-import { UniqueArray } from 'mol-data/generic';
+import { UniqueArray } from '../../../../mol-data/generic';
 import { structureSubtract } from '../utils/structure-set';
 
 export const none: StructureQuery = ctx => StructureSelection.Sequence(ctx.inputStructure, []);
diff --git a/src/mol-model/structure/query/queries/internal.ts b/src/mol-model/structure/query/queries/internal.ts
index d451ca422df1647be96601af99d03351f986556c..f1aa68f7999017a1750f374db39f71b9eace6aeb 100644
--- a/src/mol-model/structure/query/queries/internal.ts
+++ b/src/mol-model/structure/query/queries/internal.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Segmentation } from 'mol-data/int';
-import StructureElement from 'mol-model/structure/structure/element';
+import { Segmentation } from '../../../../mol-data/int';
+import StructureElement from '../../../../mol-model/structure/structure/element';
 import { StructureProperties as P, Unit } from '../../structure';
 import Structure from '../../structure/structure';
 import { StructureQuery } from '../query';
diff --git a/src/mol-model/structure/query/queries/modifiers.ts b/src/mol-model/structure/query/queries/modifiers.ts
index f85855d26d81bf69d14fb66e3e67ba8cbd9b2431..c734a7aa995eaf6ed2ea164d3333bd6ca5108ee0 100644
--- a/src/mol-model/structure/query/queries/modifiers.ts
+++ b/src/mol-model/structure/query/queries/modifiers.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Segmentation } from 'mol-data/int';
+import { Segmentation } from '../../../../mol-data/int';
 import { Structure, Unit } from '../../structure';
 import { StructureQuery } from '../query';
 import { StructureSelection } from '../selection';
@@ -12,7 +12,7 @@ import { UniqueStructuresBuilder } from '../utils/builders';
 import { StructureUniqueSubsetBuilder } from '../../structure/util/unique-subset-builder';
 import { QueryContext, QueryFn } from '../context';
 import { structureIntersect, structureSubtract } from '../utils/structure-set';
-import { UniqueArray } from 'mol-data/generic';
+import { UniqueArray } from '../../../../mol-data/generic';
 import { StructureSubsetBuilder } from '../../structure/util/subset-builder';
 import StructureElement from '../../structure/element';
 
diff --git a/src/mol-model/structure/query/selection.ts b/src/mol-model/structure/query/selection.ts
index 9fe6201be03c59e39f096f9650b9c08127988e35..c2d1b828699817f7f95999b31d4dd98a09d6257e 100644
--- a/src/mol-model/structure/query/selection.ts
+++ b/src/mol-model/structure/query/selection.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { HashSet } from 'mol-data/generic'
+import { HashSet } from '../../../mol-data/generic'
 import { Structure, StructureElement, Unit } from '../structure'
 import { structureUnion } from './utils/structure-set';
-import { OrderedSet, SortedArray } from 'mol-data/int';
+import { OrderedSet, SortedArray } from '../../../mol-data/int';
 
 // A selection is a pair of a Structure and a sequence of unique AtomSets
 type StructureSelection = StructureSelection.Singletons | StructureSelection.Sequence
diff --git a/src/mol-model/structure/query/utils/builders.ts b/src/mol-model/structure/query/utils/builders.ts
index a47a5354b539fc3ac160ee3b1345e2b344336bd0..e4b338df88de165e5cdbd9d31539d39cf46fbff3 100644
--- a/src/mol-model/structure/query/utils/builders.ts
+++ b/src/mol-model/structure/query/utils/builders.ts
@@ -6,7 +6,7 @@
 
 import { StructureElement, Structure } from '../../structure';
 import { StructureSelection } from '../selection';
-import { HashSet } from 'mol-data/generic';
+import { HashSet } from '../../../../mol-data/generic';
 import { structureUnion } from './structure-set';
 import { StructureSubsetBuilder } from '../../structure/util/subset-builder';
 import { ElementIndex } from '../../model';
diff --git a/src/mol-model/structure/query/utils/structure-distance.ts b/src/mol-model/structure/query/utils/structure-distance.ts
index 315292b751137ce779e2b349e61cbdaf15adffa8..f05ca7cb1fe2e87e464fa281ed68f97c5020ee0a 100644
--- a/src/mol-model/structure/query/utils/structure-distance.ts
+++ b/src/mol-model/structure/query/utils/structure-distance.ts
@@ -5,7 +5,7 @@
  */
 
 import { Structure, Unit } from '../../structure'
-import { Vec3 } from 'mol-math/linear-algebra';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
 import { QueryFn, QueryContext } from '../context';
 
 export function checkStructureMinMaxDistance(ctx: QueryContext, a: Structure, b: Structure, minDist: number, maxDist: number, elementRadius: QueryFn<number>) {
diff --git a/src/mol-model/structure/query/utils/structure-set.ts b/src/mol-model/structure/query/utils/structure-set.ts
index 4f61dbc78f7223a01597dce742942cf657044e57..7042b3ca06c0e7480ad5122ae8ec04971c66ce06 100644
--- a/src/mol-model/structure/query/utils/structure-set.ts
+++ b/src/mol-model/structure/query/utils/structure-set.ts
@@ -5,7 +5,7 @@
  */
 
 import { Structure, Unit, StructureElement } from '../../structure'
-import { SortedArray } from 'mol-data/int';
+import { SortedArray } from '../../../../mol-data/int';
 import { StructureSubsetBuilder } from '../../structure/util/subset-builder';
 
 export function structureUnion(source: Structure, structures: Structure[]) {
diff --git a/src/mol-model/structure/structure/accessible-surface-area.ts b/src/mol-model/structure/structure/accessible-surface-area.ts
index 754aaf7d6aef86c7cc1443ce7426e2fe1eb9f5ce..4f9dc1aae44425795dbc308e6392fcd553b0cc1c 100644
--- a/src/mol-model/structure/structure/accessible-surface-area.ts
+++ b/src/mol-model/structure/structure/accessible-surface-area.ts
@@ -5,10 +5,10 @@
  */
 
 import Structure from './structure';
-import { Task, RuntimeContext } from 'mol-task';
-import { BitFlags } from 'mol-util';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { Vec3 } from 'mol-math/linear-algebra';
+import { Task, RuntimeContext } from '../../../mol-task';
+import { BitFlags } from '../../../mol-util';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition'
+import { Vec3 } from '../../../mol-math/linear-algebra';
 import { isPolymer, ElementSymbol, isNucleic, MoleculeType } from '../model/types';
 import { VdwRadius } from '../model/properties/atomic';
 import { isHydrogen, getElementIdx } from './unit/links/common';
diff --git a/src/mol-model/structure/structure/carbohydrates/compute.ts b/src/mol-model/structure/structure/carbohydrates/compute.ts
index 342175438faa61d36f8595fa42f7945a66317f66..183bd430ebdd655d02a432085fc5516aa64852ea 100644
--- a/src/mol-model/structure/structure/carbohydrates/compute.ts
+++ b/src/mol-model/structure/structure/carbohydrates/compute.ts
@@ -5,12 +5,12 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Segmentation, SortedArray } from 'mol-data/int';
-import { combinations } from 'mol-data/util/combination';
-import { IntAdjacencyGraph } from 'mol-math/graph';
-import { Vec3 } from 'mol-math/linear-algebra';
-import PrincipalAxes from 'mol-math/linear-algebra/matrix/principal-axes';
-import { fillSerial } from 'mol-util/array';
+import { Segmentation, SortedArray } from '../../../../mol-data/int';
+import { combinations } from '../../../../mol-data/util/combination';
+import { IntAdjacencyGraph } from '../../../../mol-math/graph';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
+import PrincipalAxes from '../../../../mol-math/linear-algebra/matrix/principal-axes';
+import { fillSerial } from '../../../../mol-util/array';
 import { ResidueIndex, Model } from '../../model';
 import { ElementSymbol } from '../../model/types';
 import { getPositionMatrix } from '../../util';
diff --git a/src/mol-model/structure/structure/carbohydrates/constants.ts b/src/mol-model/structure/structure/carbohydrates/constants.ts
index 6858673399315ae452c005ed00c840db5cf27254..75d23bb9ab999885943b4b3bf97352732f5415f5 100644
--- a/src/mol-model/structure/structure/carbohydrates/constants.ts
+++ b/src/mol-model/structure/structure/carbohydrates/constants.ts
@@ -1,5 +1,3 @@
-import { Color, ColorMap } from 'mol-util/color';
-
 /**
  * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
  *
@@ -7,6 +5,8 @@ import { Color, ColorMap } from 'mol-util/color';
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
+import { Color, ColorMap } from '../../../../mol-util/color';
+
 // follows community standard from https://www.ncbi.nlm.nih.gov/glycans/snfg.html
 
 export const enum SaccharideShapes {
diff --git a/src/mol-model/structure/structure/carbohydrates/data.ts b/src/mol-model/structure/structure/carbohydrates/data.ts
index a753378370aae16424a947f0714d07d7a8a32622..de873ca3c434d12b347602244709c846ce023db7 100644
--- a/src/mol-model/structure/structure/carbohydrates/data.ts
+++ b/src/mol-model/structure/structure/carbohydrates/data.ts
@@ -5,7 +5,7 @@
  */
 
 import Unit from '../unit';
-import { Vec3 } from 'mol-math/linear-algebra';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
 import { ResidueIndex, ElementIndex } from '../../model';
 import { SaccharideComponent } from './constants';
 import StructureElement from '../element';
diff --git a/src/mol-model/structure/structure/element.ts b/src/mol-model/structure/structure/element.ts
index da1e5a307f76c3a70415a4d2c4822d81cac747ae..506e725afd79931b1151313d4ac486d9c7b92a93 100644
--- a/src/mol-model/structure/structure/element.ts
+++ b/src/mol-model/structure/structure/element.ts
@@ -4,19 +4,19 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { UniqueArray } from 'mol-data/generic';
-import { OrderedSet, SortedArray } from 'mol-data/int';
-import { BoundaryHelper } from 'mol-math/geometry/boundary-helper';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { MolScriptBuilder as MS } from 'mol-script/language/builder';
+import { UniqueArray } from '../../../mol-data/generic';
+import { OrderedSet, SortedArray } from '../../../mol-data/int';
+import { BoundaryHelper } from '../../../mol-math/geometry/boundary-helper';
+import { Vec3 } from '../../../mol-math/linear-algebra';
+import { MolScriptBuilder as MS } from '../../../mol-script/language/builder';
 import { ElementIndex } from '../model';
 import { ChainIndex, ResidueIndex } from '../model/indexing';
 import Structure from './structure';
 import Unit from './unit';
 import { Boundary } from './util/boundary';
 import { StructureProperties } from '../structure';
-import { sortArray } from 'mol-data/util';
-import Expression from 'mol-script/language/expression';
+import { sortArray } from '../../../mol-data/util';
+import Expression from '../../../mol-script/language/expression';
 
 interface StructureElement<U = Unit> {
     readonly kind: 'element-location',
diff --git a/src/mol-model/structure/structure/structure.ts b/src/mol-model/structure/structure/structure.ts
index d2e50fceebd56f584d31ada7556ab061d657be1c..c56767369354ab349908645faac426e05842d3d5 100644
--- a/src/mol-model/structure/structure/structure.ts
+++ b/src/mol-model/structure/structure/structure.ts
@@ -5,11 +5,11 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { IntMap, SortedArray, Iterator, Segmentation } from 'mol-data/int'
-import { UniqueArray } from 'mol-data/generic'
-import { SymmetryOperator } from 'mol-math/geometry/symmetry-operator'
+import { IntMap, SortedArray, Iterator, Segmentation } from '../../../mol-data/int'
+import { UniqueArray } from '../../../mol-data/generic'
+import { SymmetryOperator } from '../../../mol-math/geometry/symmetry-operator'
 import { Model, ElementIndex } from '../model'
-import { sort, arraySwap, hash1, sortArray, hashString, hashFnv32a } from 'mol-data/util';
+import { sort, arraySwap, hash1, sortArray, hashString, hashFnv32a } from '../../../mol-data/util';
 import StructureElement from './element'
 import Unit from './unit'
 import { StructureLookup3D } from './util/lookup3d';
@@ -22,10 +22,10 @@ import StructureProperties from './properties';
 import { ResidueIndex, ChainIndex, EntityIndex } from '../model/indexing';
 import { Carbohydrates } from './carbohydrates/data';
 import { computeCarbohydrates } from './carbohydrates/compute';
-import { Vec3, Mat4 } from 'mol-math/linear-algebra';
-import { idFactory } from 'mol-util/id-factory';
-import { GridLookup3D } from 'mol-math/geometry';
-import { UUID } from 'mol-util';
+import { Vec3, Mat4 } from '../../../mol-math/linear-algebra';
+import { idFactory } from '../../../mol-util/id-factory';
+import { GridLookup3D } from '../../../mol-math/geometry';
+import { UUID } from '../../../mol-util';
 import { CustomProperties } from '../common/custom-property';
 
 class Structure {
diff --git a/src/mol-model/structure/structure/symmetry.ts b/src/mol-model/structure/structure/symmetry.ts
index eee13f1b61ee70727fc562a6cc38b9490b674ad3..cb9d8ebf34dfdecd269468db5bccdfa30185064a 100644
--- a/src/mol-model/structure/structure/symmetry.ts
+++ b/src/mol-model/structure/structure/symmetry.ts
@@ -5,11 +5,11 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { SortedArray } from 'mol-data/int';
-import { EquivalenceClasses } from 'mol-data/util';
-import { Spacegroup, SpacegroupCell, SymmetryOperator } from 'mol-math/geometry';
-import { Vec3, Mat4 } from 'mol-math/linear-algebra';
-import { RuntimeContext, Task } from 'mol-task';
+import { SortedArray } from '../../../mol-data/int';
+import { EquivalenceClasses } from '../../../mol-data/util';
+import { Spacegroup, SpacegroupCell, SymmetryOperator } from '../../../mol-math/geometry';
+import { Vec3, Mat4 } from '../../../mol-math/linear-algebra';
+import { RuntimeContext, Task } from '../../../mol-task';
 import { ModelSymmetry } from '../model';
 import { QueryContext, StructureSelection } from '../query';
 import Structure from './structure';
diff --git a/src/mol-model/structure/structure/unit.ts b/src/mol-model/structure/structure/unit.ts
index 221b858d7af89478519e4273690b10879cbf28f6..a39470bcdcf473a3327806f2a3ce04501ee8f210 100644
--- a/src/mol-model/structure/structure/unit.ts
+++ b/src/mol-model/structure/structure/unit.ts
@@ -5,17 +5,17 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { SymmetryOperator } from 'mol-math/geometry/symmetry-operator'
+import { SymmetryOperator } from '../../../mol-math/geometry/symmetry-operator'
 import { Model } from '../model'
-import { GridLookup3D, Lookup3D } from 'mol-math/geometry'
+import { GridLookup3D, Lookup3D } from '../../../mol-math/geometry'
 import { IntraUnitLinks, computeIntraUnitBonds } from './unit/links'
 import { CoarseElements, CoarseSphereConformation, CoarseGaussianConformation } from '../model/properties/coarse';
-import { ValueRef } from 'mol-util';
+import { ValueRef } from '../../../mol-util';
 import { UnitRings } from './unit/rings';
 import StructureElement from './element'
 import { ChainIndex, ResidueIndex, ElementIndex } from '../model/indexing';
-import { IntMap, SortedArray } from 'mol-data/int';
-import { hash2, hashFnv32a } from 'mol-data/util';
+import { IntMap, SortedArray } from '../../../mol-data/int';
+import { hash2, hashFnv32a } from '../../../mol-data/util';
 import { getAtomicPolymerElements, getCoarsePolymerElements, getAtomicGapElements, getCoarseGapElements, getNucleotideElements, getProteinElements } from './util/polymer';
 
 /**
diff --git a/src/mol-model/structure/structure/unit/links/data.ts b/src/mol-model/structure/structure/unit/links/data.ts
index d8f40a7ec87e3328bb1adc1d763928b08c79bba2..d4992f9a1465a4be5cb208a38aa36cde7216a3b9 100644
--- a/src/mol-model/structure/structure/unit/links/data.ts
+++ b/src/mol-model/structure/structure/unit/links/data.ts
@@ -6,7 +6,7 @@
  */
 
 import { LinkType } from '../../../model/types'
-import { IntAdjacencyGraph } from 'mol-math/graph';
+import { IntAdjacencyGraph } from '../../../../../mol-math/graph';
 import Unit from '../../unit';
 import StructureElement from '../../element';
 import { Link } from '../links';
diff --git a/src/mol-model/structure/structure/unit/links/inter-compute.ts b/src/mol-model/structure/structure/unit/links/inter-compute.ts
index ac094daa8c3f143658e3783378f50e1ab2be1487..b1cbcc140548ee0fd7b020f9e191b411bbdacbe6 100644
--- a/src/mol-model/structure/structure/unit/links/inter-compute.ts
+++ b/src/mol-model/structure/structure/unit/links/inter-compute.ts
@@ -9,11 +9,11 @@ import Structure from '../../structure';
 import Unit from '../../unit';
 import { getElementIdx, getElementPairThreshold, getElementThreshold, isHydrogen, LinkComputationParameters, MetalsSet } from './common';
 import { InterUnitBonds } from './data';
-import { UniqueArray } from 'mol-data/generic';
-import { SortedArray } from 'mol-data/int';
-import { Vec3, Mat4 } from 'mol-math/linear-algebra';
+import { UniqueArray } from '../../../../../mol-data/generic';
+import { SortedArray } from '../../../../../mol-data/int';
+import { Vec3, Mat4 } from '../../../../../mol-math/linear-algebra';
 import StructureElement from '../../element';
-import { StructConn } from 'mol-model-formats/structure/mmcif/bonds';
+import { StructConn } from '../../../../../mol-model-formats/structure/mmcif/bonds';
 
 const MAX_RADIUS = 4;
 
diff --git a/src/mol-model/structure/structure/unit/links/intra-compute.ts b/src/mol-model/structure/structure/unit/links/intra-compute.ts
index 04b7497de8988bcda8b034a76fff8971c41e6834..b1e646c91cf479ca195fb783a5a37c0da805b461 100644
--- a/src/mol-model/structure/structure/unit/links/intra-compute.ts
+++ b/src/mol-model/structure/structure/unit/links/intra-compute.ts
@@ -7,10 +7,10 @@
 import { LinkType } from '../../../model/types'
 import { IntraUnitLinks } from './data'
 import Unit from '../../unit'
-import { IntAdjacencyGraph } from 'mol-math/graph';
+import { IntAdjacencyGraph } from '../../../../../mol-math/graph';
 import { LinkComputationParameters, getElementIdx, MetalsSet, getElementThreshold, isHydrogen, getElementPairThreshold } from './common';
-import { SortedArray } from 'mol-data/int';
-import { StructConn, ComponentBond } from 'mol-model-formats/structure/mmcif/bonds';
+import { SortedArray } from '../../../../../mol-data/int';
+import { StructConn, ComponentBond } from '../../../../../mol-model-formats/structure/mmcif/bonds';
 
 function getGraph(atomA: number[], atomB: number[], _order: number[], _flags: number[], atomCount: number): IntraUnitLinks {
     const builder = new IntAdjacencyGraph.EdgeBuilder(atomCount, atomA, atomB);
diff --git a/src/mol-model/structure/structure/unit/pair-restraints/extract-cross-links.ts b/src/mol-model/structure/structure/unit/pair-restraints/extract-cross-links.ts
index a6e027e9cc5937eecdcd7e39b129c186cbbb6871..85ce85c8e3b63fda7679d859a78668df7cce348f 100644
--- a/src/mol-model/structure/structure/unit/pair-restraints/extract-cross-links.ts
+++ b/src/mol-model/structure/structure/unit/pair-restraints/extract-cross-links.ts
@@ -8,7 +8,7 @@ import Unit from '../../unit';
 import Structure from '../../structure';
 import { PairRestraints, CrossLinkRestraint } from './data';
 import { StructureElement } from '../../../structure';
-import { IHMCrossLinkRestraint } from 'mol-model-formats/structure/mmcif/pair-restraint';
+import { IHMCrossLinkRestraint } from '../../../../../mol-model-formats/structure/mmcif/pair-restraint';
 
 function _addRestraints(map: Map<number, number>, unit: Unit, restraints: IHMCrossLinkRestraint) {
     const { elements } = unit;
diff --git a/src/mol-model/structure/structure/unit/rings.ts b/src/mol-model/structure/structure/unit/rings.ts
index 64f9f857cb0f736216ea46ed887bbd84ba41cbc9..30cb5d14848353c63ec89865aa1713af4fa0fc0d 100644
--- a/src/mol-model/structure/structure/unit/rings.ts
+++ b/src/mol-model/structure/structure/unit/rings.ts
@@ -7,7 +7,7 @@
 import { computeRings, getFingerprint, createIndex } from './rings/compute'
 import Unit from '../unit';
 import StructureElement from '../element';
-import { SortedArray } from 'mol-data/int';
+import { SortedArray } from '../../../../mol-data/int';
 import { ResidueIndex } from '../../model';
 import { ElementSymbol } from '../../model/types';
 
diff --git a/src/mol-model/structure/structure/unit/rings/compute.ts b/src/mol-model/structure/structure/unit/rings/compute.ts
index 4517fb879f826cd4934682f6ab247d5075084f11..112b305b592b2d0a2dc3bb3339fd90a3921940e1 100644
--- a/src/mol-model/structure/structure/unit/rings/compute.ts
+++ b/src/mol-model/structure/structure/unit/rings/compute.ts
@@ -4,13 +4,13 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Segmentation, SortedArray } from 'mol-data/int';
-import { IntAdjacencyGraph } from 'mol-math/graph';
+import { Segmentation, SortedArray } from '../../../../../mol-data/int';
+import { IntAdjacencyGraph } from '../../../../../mol-math/graph';
 import { LinkType } from '../../../model/types';
 import { StructureElement } from '../../../structure';
 import Unit from '../../unit';
 import { IntraUnitLinks } from '../links/data';
-import { sortArray } from 'mol-data/util';
+import { sortArray } from '../../../../../mol-data/util';
 
 export function computeRings(unit: Unit.Atomic) {
     const size = largestResidue(unit);
diff --git a/src/mol-model/structure/structure/util/boundary.ts b/src/mol-model/structure/structure/util/boundary.ts
index e283f325bae318b809fd24f4b614e6011aa7aac5..1b9026a6adb7a144f6c14edecd24f19da78f5146 100644
--- a/src/mol-model/structure/structure/util/boundary.ts
+++ b/src/mol-model/structure/structure/util/boundary.ts
@@ -5,9 +5,9 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Box3D, Sphere3D } from 'mol-math/geometry';
-import { BoundaryHelper } from 'mol-math/geometry/boundary-helper';
-import { Vec3 } from 'mol-math/linear-algebra';
+import { Box3D, Sphere3D } from '../../../../mol-math/geometry';
+import { BoundaryHelper } from '../../../../mol-math/geometry/boundary-helper';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
 import Structure from '../structure';
 
 export type Boundary = { box: Box3D, sphere: Sphere3D }
diff --git a/src/mol-model/structure/structure/util/lookup3d.ts b/src/mol-model/structure/structure/util/lookup3d.ts
index d63fb8721dcb5c57df5cb326139d0a8a9b12bc04..eefc39f0120ce8ba2b3f06d383ec331f10147866 100644
--- a/src/mol-model/structure/structure/util/lookup3d.ts
+++ b/src/mol-model/structure/structure/util/lookup3d.ts
@@ -5,10 +5,10 @@
  */
 
 import Structure from '../structure'
-import { Lookup3D, GridLookup3D, Box3D, Sphere3D, Result } from 'mol-math/geometry';
-import { Vec3 } from 'mol-math/linear-algebra';
+import { Lookup3D, GridLookup3D, Box3D, Sphere3D, Result } from '../../../../mol-math/geometry';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
 import { computeStructureBoundary } from './boundary';
-import { OrderedSet } from 'mol-data/int';
+import { OrderedSet } from '../../../../mol-data/int';
 import { StructureUniqueSubsetBuilder } from './unique-subset-builder';
 import StructureElement from '../element';
 import Unit from '../unit';
diff --git a/src/mol-model/structure/structure/util/polymer.ts b/src/mol-model/structure/structure/util/polymer.ts
index ff60719d4811899e5cf2ccbd1f66333fa0e3293d..261cd942d56606756df7e2d354a58471f4e44415 100644
--- a/src/mol-model/structure/structure/util/polymer.ts
+++ b/src/mol-model/structure/structure/util/polymer.ts
@@ -4,10 +4,10 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, ElementIndex } from 'mol-model/structure';
-import { Segmentation, OrderedSet, Interval, SortedArray } from 'mol-data/int';
-import SortedRanges from 'mol-data/int/sorted-ranges';
-import { isNucleic, isProtein } from 'mol-model/structure/model/types';
+import { Unit, ElementIndex } from '../../../../mol-model/structure';
+import { Segmentation, OrderedSet, Interval, SortedArray } from '../../../../mol-data/int';
+import SortedRanges from '../../../../mol-data/int/sorted-ranges';
+import { isNucleic, isProtein } from '../../../../mol-model/structure/model/types';
 
 export function getAtomicPolymerElements(unit: Unit.Atomic) {
     const indices: ElementIndex[] = []
diff --git a/src/mol-model/structure/structure/util/subset-builder.ts b/src/mol-model/structure/structure/util/subset-builder.ts
index dbdf0cf774c647e4380a1c3a81f0b4ebff1fc8d0..de2cc6bf8c6eb45fd41d42ec5c68ae3dae95cf48 100644
--- a/src/mol-model/structure/structure/util/subset-builder.ts
+++ b/src/mol-model/structure/structure/util/subset-builder.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { IntMap, SortedArray } from 'mol-data/int';
-import { sortArray } from 'mol-data/util';
+import { IntMap, SortedArray } from '../../../../mol-data/int';
+import { sortArray } from '../../../../mol-data/util';
 import StructureElement from '../element';
 import StructureSymmetry from '../symmetry';
 import Unit from '../unit';
diff --git a/src/mol-model/structure/structure/util/superposition.ts b/src/mol-model/structure/structure/util/superposition.ts
index bcd72625890736cc51ee102d8759f0c84e7069d3..9f7ea91d25f11cb2340408ee3f31766b3bb7ef9e 100644
--- a/src/mol-model/structure/structure/util/superposition.ts
+++ b/src/mol-model/structure/structure/util/superposition.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { MinimizeRmsd } from 'mol-math/linear-algebra/3d/minimize-rmsd';
+import { MinimizeRmsd } from '../../../../mol-math/linear-algebra/3d/minimize-rmsd';
 import StructureElement from '../element';
-import { OrderedSet } from 'mol-data/int';
+import { OrderedSet } from '../../../../mol-data/int';
 
 export function superposeStructures(xs: StructureElement.Loci[]): MinimizeRmsd.Result[] {
     const ret: MinimizeRmsd.Result[] = [];
diff --git a/src/mol-model/structure/structure/util/unique-subset-builder.ts b/src/mol-model/structure/structure/util/unique-subset-builder.ts
index 8b808e2466b9b768288de4fc22e6ba783f99f0ab..13bdd18ccf3a4219bc1d0be91f7d2b7f3471838b 100644
--- a/src/mol-model/structure/structure/util/unique-subset-builder.ts
+++ b/src/mol-model/structure/structure/util/unique-subset-builder.ts
@@ -4,12 +4,12 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { IntMap, SortedArray } from 'mol-data/int';
-import { sortArray } from 'mol-data/util';
+import { IntMap, SortedArray } from '../../../../mol-data/int';
+import { sortArray } from '../../../../mol-data/util';
 import StructureSymmetry from '../symmetry';
 import Unit from '../unit';
 import Structure from '../structure';
-import { UniqueArray } from 'mol-data/generic';
+import { UniqueArray } from '../../../../mol-data/generic';
 
 type UArray = UniqueArray<number, number>
 
diff --git a/src/mol-model/structure/structure/util/unit-transforms.ts b/src/mol-model/structure/structure/util/unit-transforms.ts
index 2569f17e43efdc3d5c9170cdc3b6208f045789f2..edd11736ae34f243ccac038370f86279466f83d7 100644
--- a/src/mol-model/structure/structure/util/unit-transforms.ts
+++ b/src/mol-model/structure/structure/util/unit-transforms.ts
@@ -4,10 +4,10 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Structure, Unit } from 'mol-model/structure';
-import { Mat4 } from 'mol-math/linear-algebra';
-import { IntMap } from 'mol-data/int';
-import { fillIdentityTransform } from 'mol-geo/geometry/transform-data';
+import { Structure, Unit } from '../../../../mol-model/structure';
+import { Mat4 } from '../../../../mol-math/linear-algebra';
+import { IntMap } from '../../../../mol-data/int';
+import { fillIdentityTransform } from '../../../../mol-geo/geometry/transform-data';
 
 export class StructureUnitTransforms {
     private unitTransforms: Float32Array
diff --git a/src/mol-model/structure/util.ts b/src/mol-model/structure/util.ts
index 92069c44452a9d85c8d0c88c62e3cb033614da49..f43a6cc6d9ee6c37bf4b33f9cfe718954c2eea0f 100644
--- a/src/mol-model/structure/util.ts
+++ b/src/mol-model/structure/util.ts
@@ -6,9 +6,9 @@
 
 import { Model, ResidueIndex, ElementIndex } from './model';
 import { MoleculeType, AtomRole, MoleculeTypeAtomRoleId, getMoleculeType } from './model/types';
-import { Vec3 } from 'mol-math/linear-algebra';
+import { Vec3 } from '../../mol-math/linear-algebra';
 import { Unit } from './structure';
-import Matrix from 'mol-math/linear-algebra/matrix/matrix';
+import Matrix from '../../mol-math/linear-algebra/matrix/matrix';
 
 export function getCoarseBegCompId(unit: Unit.Spheres | Unit.Gaussians, element: ElementIndex) {
     const entityKey = unit.coarseElements.entityKey[element]
diff --git a/src/mol-model/volume/data.ts b/src/mol-model/volume/data.ts
index 4f414675ee8b6c5bd6ba57dcfc59a674a3aa95bc..9afc2c605da2c33a9a58009e076c6a6bc33666ba 100644
--- a/src/mol-model/volume/data.ts
+++ b/src/mol-model/volume/data.ts
@@ -5,9 +5,9 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { SpacegroupCell, Box3D } from 'mol-math/geometry'
-import { Tensor, Mat4, Vec3 } from 'mol-math/linear-algebra'
-import { equalEps } from 'mol-math/linear-algebra/3d/common';
+import { SpacegroupCell, Box3D } from '../../mol-math/geometry'
+import { Tensor, Mat4, Vec3 } from '../../mol-math/linear-algebra'
+import { equalEps } from '../../mol-math/linear-algebra/3d/common';
 
 /** The basic unit cell that contains the data. */
 interface VolumeData {
diff --git a/src/mol-plugin/behavior/behavior.ts b/src/mol-plugin/behavior/behavior.ts
index bdfb750c2b83beaff52c5d9d8fef4cf39c6bda94..12f0389f137f4bc4832dd7803098908b9754d98c 100644
--- a/src/mol-plugin/behavior/behavior.ts
+++ b/src/mol-plugin/behavior/behavior.ts
@@ -5,13 +5,13 @@
  */
 
 import { PluginStateTransform, PluginStateObject } from '../state/objects';
-import { StateTransformer, StateTransform } from 'mol-state';
-import { Task } from 'mol-task';
-import { PluginContext } from 'mol-plugin/context';
+import { StateTransformer, StateTransform } from '../../mol-state';
+import { Task } from '../../mol-task';
+import { PluginContext } from '../../mol-plugin/context';
 import { PluginCommand } from '../command';
 import { Observable } from 'rxjs';
-import { ParamDefinition } from 'mol-util/param-definition';
-import { shallowEqual } from 'mol-util';
+import { ParamDefinition } from '../../mol-util/param-definition';
+import { shallowEqual } from '../../mol-util';
 
 export { PluginBehavior }
 
diff --git a/src/mol-plugin/behavior/dynamic/camera.ts b/src/mol-plugin/behavior/dynamic/camera.ts
index 1f5376187ad9434ec27a4554a04a8e698f552a80..f2c194dc3ce7dc4353e015fb593b9ce17372463e 100644
--- a/src/mol-plugin/behavior/dynamic/camera.ts
+++ b/src/mol-plugin/behavior/dynamic/camera.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Loci } from 'mol-model/loci';
-import { ParamDefinition } from 'mol-util/param-definition';
+import { Loci } from '../../../mol-model/loci';
+import { ParamDefinition } from '../../../mol-util/param-definition';
 import { PluginBehavior } from '../behavior';
-import { ButtonsType, ModifiersKeys } from 'mol-util/input/input-observer';
+import { ButtonsType, ModifiersKeys } from '../../../mol-util/input/input-observer';
 
 export const FocusLociOnSelect = PluginBehavior.create<{ minRadius: number, extraRadius: number }>({
     name: 'focus-loci-on-select',
diff --git a/src/mol-plugin/behavior/dynamic/custom-props/computed/secondary-structure.ts b/src/mol-plugin/behavior/dynamic/custom-props/computed/secondary-structure.ts
index 72574abce296631ff7734b36d4b6049fa6a7e547..988605e7f8686d8fad21c915b2a4dd3dbc466e92 100644
--- a/src/mol-plugin/behavior/dynamic/custom-props/computed/secondary-structure.ts
+++ b/src/mol-plugin/behavior/dynamic/custom-props/computed/secondary-structure.ts
@@ -4,10 +4,10 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../../../mol-util/param-definition';
 import { PluginBehavior } from '../../../behavior';
-import { CustomPropertyRegistry } from 'mol-model-props/common/custom-property-registry';
-import { ComputedSecondaryStructure } from 'mol-model-props/computed/secondary-structure';
+import { CustomPropertyRegistry } from '../../../../../mol-model-props/common/custom-property-registry';
+import { ComputedSecondaryStructure } from '../../../../../mol-model-props/computed/secondary-structure';
 
 export const MolstarSecondaryStructure = PluginBehavior.create<{ autoAttach: boolean }>({
     name: 'molstar-computed-secondary-structure-prop',
diff --git a/src/mol-plugin/behavior/dynamic/custom-props/pdbe/structure-quality-report.ts b/src/mol-plugin/behavior/dynamic/custom-props/pdbe/structure-quality-report.ts
index f4bf9307cf4b9d0dfbe115e08856a514505d40be..77cceda3d9039a2abc86d4dc9749638c17eef960 100644
--- a/src/mol-plugin/behavior/dynamic/custom-props/pdbe/structure-quality-report.ts
+++ b/src/mol-plugin/behavior/dynamic/custom-props/pdbe/structure-quality-report.ts
@@ -4,15 +4,15 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { OrderedSet } from 'mol-data/int';
-import { StructureQualityReport } from 'mol-model-props/pdbe/structure-quality-report';
-import { StructureQualityReportColorTheme } from 'mol-model-props/pdbe/themes/structure-quality-report';
-import { Loci } from 'mol-model/loci';
-import { StructureElement } from 'mol-model/structure';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { OrderedSet } from '../../../../../mol-data/int';
+import { StructureQualityReport } from '../../../../../mol-model-props/pdbe/structure-quality-report';
+import { StructureQualityReportColorTheme } from '../../../../../mol-model-props/pdbe/themes/structure-quality-report';
+import { Loci } from '../../../../../mol-model/loci';
+import { StructureElement } from '../../../../../mol-model/structure';
+import { ParamDefinition as PD } from '../../../../../mol-util/param-definition';
 import { PluginBehavior } from '../../../behavior';
-import { ThemeDataContext } from 'mol-theme/theme';
-import { CustomPropertyRegistry } from 'mol-model-props/common/custom-property-registry';
+import { ThemeDataContext } from '../../../../../mol-theme/theme';
+import { CustomPropertyRegistry } from '../../../../../mol-model-props/common/custom-property-registry';
 
 export const PDBeStructureQualityReport = PluginBehavior.create<{ autoAttach: boolean }>({
     name: 'pdbe-structure-quality-report-prop',
diff --git a/src/mol-plugin/behavior/dynamic/custom-props/rcsb/assembly-symmetry.ts b/src/mol-plugin/behavior/dynamic/custom-props/rcsb/assembly-symmetry.ts
index a9d314aefd6f830e1c799c8ce0664d7221cc1c58..5e1b21231883d1880f390af42df7a56f16badced 100644
--- a/src/mol-plugin/behavior/dynamic/custom-props/rcsb/assembly-symmetry.ts
+++ b/src/mol-plugin/behavior/dynamic/custom-props/rcsb/assembly-symmetry.ts
@@ -4,15 +4,15 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { PluginBehavior } from 'mol-plugin/behavior';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { AssemblySymmetry } from 'mol-model-props/rcsb/assembly-symmetry';
-import { AssemblySymmetryClusterColorThemeProvider } from 'mol-model-props/rcsb/themes/assembly-symmetry-cluster';
-import { AssemblySymmetryAxesRepresentationProvider } from 'mol-model-props/rcsb/representations/assembly-symmetry-axes';
-import { Loci, isDataLoci } from 'mol-model/loci';
-import { OrderedSet } from 'mol-data/int';
-import { Table } from 'mol-data/db';
-import { CustomPropertyRegistry } from 'mol-model-props/common/custom-property-registry';
+import { ParamDefinition as PD } from '../../../../../mol-util/param-definition'
+import { AssemblySymmetry } from '../../../../../mol-model-props/rcsb/assembly-symmetry';
+import { AssemblySymmetryClusterColorThemeProvider } from '../../../../../mol-model-props/rcsb/themes/assembly-symmetry-cluster';
+import { AssemblySymmetryAxesRepresentationProvider } from '../../../../../mol-model-props/rcsb/representations/assembly-symmetry-axes';
+import { Loci, isDataLoci } from '../../../../../mol-model/loci';
+import { OrderedSet } from '../../../../../mol-data/int';
+import { Table } from '../../../../../mol-data/db';
+import { CustomPropertyRegistry } from '../../../../../mol-model-props/common/custom-property-registry';
+import { PluginBehavior } from '../../../behavior';
 
 export const RCSBAssemblySymmetry = PluginBehavior.create<{ autoAttach: boolean }>({
     name: 'rcsb-assembly-symmetry-prop',
diff --git a/src/mol-plugin/behavior/dynamic/labels.ts b/src/mol-plugin/behavior/dynamic/labels.ts
index b3597932ce0e3f68dbfcb74d00c6fc9c8e27a1bf..cc45ec7ea5dcc03af2923de55150d25458ea2e8c 100644
--- a/src/mol-plugin/behavior/dynamic/labels.ts
+++ b/src/mol-plugin/behavior/dynamic/labels.ts
@@ -4,23 +4,23 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { PluginContext } from 'mol-plugin/context';
+import { PluginContext } from '../../../mol-plugin/context';
 import { PluginBehavior } from '../behavior';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { Mat4, Vec3 } from 'mol-math/linear-algebra';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition'
+import { Mat4, Vec3 } from '../../../mol-math/linear-algebra';
 import { PluginStateObject as SO, PluginStateObject } from '../../state/objects';
-import { StateObjectCell, State, StateSelection } from 'mol-state';
-import { RuntimeContext } from 'mol-task';
-import { Shape } from 'mol-model/shape';
-import { Text } from 'mol-geo/geometry/text/text';
-import { ShapeRepresentation } from 'mol-repr/shape/representation';
-import { ColorNames } from 'mol-util/color/tables';
-import { TextBuilder } from 'mol-geo/geometry/text/text-builder';
-import { Unit, StructureElement, StructureProperties } from 'mol-model/structure';
-import { SetUtils } from 'mol-util/set';
-import { arrayEqual } from 'mol-util';
-import { MoleculeType } from 'mol-model/structure/model/types';
-import { getElementMoleculeType } from 'mol-model/structure/util';
+import { StateObjectCell, State, StateSelection } from '../../../mol-state';
+import { RuntimeContext } from '../../../mol-task';
+import { Shape } from '../../../mol-model/shape';
+import { Text } from '../../../mol-geo/geometry/text/text';
+import { ShapeRepresentation } from '../../../mol-repr/shape/representation';
+import { ColorNames } from '../../../mol-util/color/tables';
+import { TextBuilder } from '../../../mol-geo/geometry/text/text-builder';
+import { Unit, StructureElement, StructureProperties } from '../../../mol-model/structure';
+import { SetUtils } from '../../../mol-util/set';
+import { arrayEqual } from '../../../mol-util';
+import { MoleculeType } from '../../../mol-model/structure/model/types';
+import { getElementMoleculeType } from '../../../mol-model/structure/util';
 
 // TODO
 // - support more object types than structures
diff --git a/src/mol-plugin/behavior/dynamic/representation.ts b/src/mol-plugin/behavior/dynamic/representation.ts
index 32afe8027de6dc5f73fc03987a0fe2fea4ddb53a..eb10a2b15262ace4111c6c0a207ddf6893a62e34 100644
--- a/src/mol-plugin/behavior/dynamic/representation.ts
+++ b/src/mol-plugin/behavior/dynamic/representation.ts
@@ -5,13 +5,13 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { MarkerAction } from 'mol-geo/geometry/marker-data';
-import { EmptyLoci } from 'mol-model/loci';
-import { StructureElement } from 'mol-model/structure';
-import { PluginContext } from 'mol-plugin/context';
-import { Representation } from 'mol-repr/representation';
-import { labelFirst } from 'mol-theme/label';
-import { ButtonsType } from 'mol-util/input/input-observer';
+import { MarkerAction } from '../../../mol-geo/geometry/marker-data';
+import { EmptyLoci } from '../../../mol-model/loci';
+import { StructureElement } from '../../../mol-model/structure';
+import { PluginContext } from '../../../mol-plugin/context';
+import { Representation } from '../../../mol-repr/representation';
+import { labelFirst } from '../../../mol-theme/label';
+import { ButtonsType } from '../../../mol-util/input/input-observer';
 import { PluginBehavior } from '../behavior';
 
 export const HighlightLoci = PluginBehavior.create({
diff --git a/src/mol-plugin/behavior/dynamic/selection/structure-representation-interaction.ts b/src/mol-plugin/behavior/dynamic/selection/structure-representation-interaction.ts
index 7fc4487aa03f3610b41120f4ce75eb9bbf4d3609..f883837006f41bc0afe6cbc42575f9f15288cac7 100644
--- a/src/mol-plugin/behavior/dynamic/selection/structure-representation-interaction.ts
+++ b/src/mol-plugin/behavior/dynamic/selection/structure-representation-interaction.ts
@@ -4,21 +4,21 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Structure, StructureElement } from 'mol-model/structure';
-import { PluginBehavior } from 'mol-plugin/behavior';
-import { PluginCommands } from 'mol-plugin/command';
-import { PluginContext } from 'mol-plugin/context';
-import { PluginStateObject } from 'mol-plugin/state/objects';
-import { StateTransforms } from 'mol-plugin/state/transforms';
-import { StructureRepresentation3DHelpers } from 'mol-plugin/state/transforms/representation';
-import { BuiltInStructureRepresentations } from 'mol-repr/structure/registry';
-import { MolScriptBuilder as MS } from 'mol-script/language/builder';
-import { StateObjectCell, StateSelection, StateTransform } from 'mol-state';
-import { BuiltInColorThemes } from 'mol-theme/color';
-import { BuiltInSizeThemes } from 'mol-theme/size';
-import { ColorNames } from 'mol-util/color/tables';
-import { ButtonsType } from 'mol-util/input/input-observer';
-import { Representation } from 'mol-repr/representation';
+import { Structure, StructureElement } from '../../../../mol-model/structure';
+import { PluginBehavior } from '../../../../mol-plugin/behavior';
+import { PluginCommands } from '../../../../mol-plugin/command';
+import { PluginContext } from '../../../../mol-plugin/context';
+import { PluginStateObject } from '../../../../mol-plugin/state/objects';
+import { StateTransforms } from '../../../../mol-plugin/state/transforms';
+import { StructureRepresentation3DHelpers } from '../../../../mol-plugin/state/transforms/representation';
+import { BuiltInStructureRepresentations } from '../../../../mol-repr/structure/registry';
+import { MolScriptBuilder as MS } from '../../../../mol-script/language/builder';
+import { StateObjectCell, StateSelection, StateTransform } from '../../../../mol-state';
+import { BuiltInColorThemes } from '../../../../mol-theme/color';
+import { BuiltInSizeThemes } from '../../../../mol-theme/size';
+import { ColorNames } from '../../../../mol-util/color/tables';
+import { ButtonsType } from '../../../../mol-util/input/input-observer';
+import { Representation } from '../../../../mol-repr/representation';
 
 type Params = { }
 
diff --git a/src/mol-plugin/behavior/dynamic/volume-streaming/behavior.ts b/src/mol-plugin/behavior/dynamic/volume-streaming/behavior.ts
index 1af2657b195c1f9590641a3db6571c6147c883fd..50a524740a6dbcf4b59baac01b946519fedada9c 100644
--- a/src/mol-plugin/behavior/dynamic/volume-streaming/behavior.ts
+++ b/src/mol-plugin/behavior/dynamic/volume-streaming/behavior.ts
@@ -4,25 +4,25 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import CIF from 'mol-io/reader/cif';
-import { Box3D } from 'mol-math/geometry';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { volumeFromDensityServerData } from 'mol-model-formats/volume/density-server';
-import { StructureElement } from 'mol-model/structure';
-import { VolumeData, VolumeIsoValue } from 'mol-model/volume';
-import { PluginBehavior } from 'mol-plugin/behavior';
-import { PluginContext } from 'mol-plugin/context';
-import { PluginStateObject } from 'mol-plugin/state/objects';
-import { createIsoValueParam } from 'mol-repr/volume/isosurface';
-import { Color } from 'mol-util/color';
-import { LRUCache } from 'mol-util/lru-cache';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { urlCombine } from 'mol-util/url';
+import { ParamDefinition as PD } from '../../../../mol-util/param-definition';
+import { PluginStateObject } from '../../../state/objects';
+import { VolumeIsoValue, VolumeData } from '../../../../mol-model/volume';
+import { createIsoValueParam } from '../../../../mol-repr/volume/isosurface';
 import { VolumeServerHeader, VolumeServerInfo } from './model';
-import { ButtonsType } from 'mol-util/input/input-observer';
-import { PluginCommands } from 'mol-plugin/command';
-import { StateSelection } from 'mol-state';
-import { Representation } from 'mol-repr/representation';
+import { Box3D } from '../../../../mol-math/geometry';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
+import { Color } from '../../../../mol-util/color';
+import { PluginBehavior } from '../../behavior';
+import { LRUCache } from '../../../../mol-util/lru-cache';
+import { urlCombine } from '../../../../mol-util/url';
+import { CIF } from '../../../../mol-io/reader/cif';
+import { volumeFromDensityServerData } from '../../../../mol-model-formats/volume/density-server';
+import { PluginCommands } from '../../../command';
+import { StateSelection } from '../../../../mol-state';
+import { Representation } from '../../../../mol-repr/representation';
+import { ButtonsType } from '../../../../mol-util/input/input-observer';
+import { StructureElement } from '../../../../mol-model/structure';
+import { PluginContext } from '../../../context';
 
 export class VolumeStreaming extends PluginStateObject.CreateBehavior<VolumeStreaming.Behavior>({ name: 'Volume Streaming' }) { }
 
diff --git a/src/mol-plugin/behavior/dynamic/volume-streaming/model.ts b/src/mol-plugin/behavior/dynamic/volume-streaming/model.ts
index ba54b666d9f091c8ae407c3fb6d8ff4ad09a2398..213f0b1a9911dd4c57818d31113eb9ec9b4180ce 100644
--- a/src/mol-plugin/behavior/dynamic/volume-streaming/model.ts
+++ b/src/mol-plugin/behavior/dynamic/volume-streaming/model.ts
@@ -5,8 +5,8 @@
  */
 
 import { PluginStateObject } from '../../../state/objects';
-import { VolumeIsoValue } from 'mol-model/volume';
-import { Structure } from 'mol-model/structure';
+import { VolumeIsoValue } from '../../../../mol-model/volume';
+import { Structure } from '../../../../mol-model/structure';
 
 export class VolumeServerInfo extends PluginStateObject.Create<VolumeServerInfo.Data>({ name: 'Volume Streaming', typeClass: 'Object' }) { }
 
diff --git a/src/mol-plugin/behavior/dynamic/volume-streaming/transformers.ts b/src/mol-plugin/behavior/dynamic/volume-streaming/transformers.ts
index dfabd0d16c2df3eb5d6d3e5b7aa97afd9bc0db54..97b25f4ebc995eb8e4bea2c4aa0459019211c272 100644
--- a/src/mol-plugin/behavior/dynamic/volume-streaming/transformers.ts
+++ b/src/mol-plugin/behavior/dynamic/volume-streaming/transformers.ts
@@ -6,21 +6,21 @@
 
 import { PluginStateObject as SO, PluginStateTransform } from '../../../state/objects';
 import { VolumeServerInfo, VolumeServerHeader } from './model';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Task } from 'mol-task';
-import { PluginContext } from 'mol-plugin/context';
-import { urlCombine } from 'mol-util/url';
-import { createIsoValueParam } from 'mol-repr/volume/isosurface';
-import { VolumeIsoValue } from 'mol-model/volume';
-import { StateAction, StateObject, StateTransformer } from 'mol-state';
+import { ParamDefinition as PD } from '../../../../mol-util/param-definition';
+import { Task } from '../../../../mol-task';
+import { PluginContext } from '../../../../mol-plugin/context';
+import { urlCombine } from '../../../../mol-util/url';
+import { createIsoValueParam } from '../../../../mol-repr/volume/isosurface';
+import { VolumeIsoValue } from '../../../../mol-model/volume';
+import { StateAction, StateObject, StateTransformer } from '../../../../mol-state';
 import { getStreamingMethod, getEmdbIdAndContourLevel } from './util';
 import { VolumeStreaming } from './behavior';
-import { VolumeRepresentation3DHelpers } from 'mol-plugin/state/transforms/representation';
-import { BuiltInVolumeRepresentations } from 'mol-repr/volume/registry';
-import { createTheme } from 'mol-theme/theme';
-import { Box3D } from 'mol-math/geometry';
-import { Vec3 } from 'mol-math/linear-algebra';
-// import { PluginContext } from 'mol-plugin/context';
+import { VolumeRepresentation3DHelpers } from '../../../../mol-plugin/state/transforms/representation';
+import { BuiltInVolumeRepresentations } from '../../../../mol-repr/volume/registry';
+import { createTheme } from '../../../../mol-theme/theme';
+import { Box3D } from '../../../../mol-math/geometry';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
+// import { PluginContext } from '../../../../mol-plugin/context';
 
 export const InitVolumeStreaming = StateAction.build({
     display: { name: 'Volume Streaming' },
diff --git a/src/mol-plugin/behavior/dynamic/volume-streaming/util.ts b/src/mol-plugin/behavior/dynamic/volume-streaming/util.ts
index d3a4dbf87ff3177cad8fd51a36877b5bd01f9724..21b343e84869c3a9e3a4d8097e80ab9cd5584d5d 100644
--- a/src/mol-plugin/behavior/dynamic/volume-streaming/util.ts
+++ b/src/mol-plugin/behavior/dynamic/volume-streaming/util.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Structure } from 'mol-model/structure';
+import { Structure } from '../../../../mol-model/structure';
 import { VolumeServerInfo } from './model';
-import { PluginContext } from 'mol-plugin/context';
-import { RuntimeContext } from 'mol-task';
+import { PluginContext } from '../../../../mol-plugin/context';
+import { RuntimeContext } from '../../../../mol-task';
 
 export function getStreamingMethod(s?: Structure, defaultKind: VolumeServerInfo.Kind = 'x-ray'): VolumeServerInfo.Kind {
     if (!s) return defaultKind;
diff --git a/src/mol-plugin/behavior/static/camera.ts b/src/mol-plugin/behavior/static/camera.ts
index 3684aca0acc6d0e6a7ad6276090573ba84c9d2e7..347760a604fec4da9a0a49241d7915e39af019b0 100644
--- a/src/mol-plugin/behavior/static/camera.ts
+++ b/src/mol-plugin/behavior/static/camera.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { PluginContext } from 'mol-plugin/context';
-import { PluginCommands } from 'mol-plugin/command';
-import { CameraSnapshotManager } from 'mol-plugin/state/camera';
+import { PluginContext } from '../../../mol-plugin/context';
+import { PluginCommands } from '../../../mol-plugin/command';
+import { CameraSnapshotManager } from '../../../mol-plugin/state/camera';
 
 export function registerDefault(ctx: PluginContext) {
     Reset(ctx);
diff --git a/src/mol-plugin/behavior/static/misc.ts b/src/mol-plugin/behavior/static/misc.ts
index 8a400f1ca42dcdb5866d6fee6e9e48a37e9d46c9..5807476ddb72d3a2e5ab0e0ee35500a6c5d5f8e1 100644
--- a/src/mol-plugin/behavior/static/misc.ts
+++ b/src/mol-plugin/behavior/static/misc.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { PluginContext } from 'mol-plugin/context';
-import { PluginCommands } from 'mol-plugin/command';
+import { PluginContext } from '../../../mol-plugin/context';
+import { PluginCommands } from '../../../mol-plugin/command';
 
 export function registerDefault(ctx: PluginContext) {
     Canvas3DSetSettings(ctx);
diff --git a/src/mol-plugin/behavior/static/representation.ts b/src/mol-plugin/behavior/static/representation.ts
index df0310e777b3f0af68d50952f13a2f4c1279a616..0a608a768967a0ba4d4d549e9cfedb25f5c8e6ea 100644
--- a/src/mol-plugin/behavior/static/representation.ts
+++ b/src/mol-plugin/behavior/static/representation.ts
@@ -5,9 +5,9 @@
  */
 
 import { PluginStateObject as SO } from '../../state/objects';
-import { PluginContext } from 'mol-plugin/context';
-import { Representation } from 'mol-repr/representation';
-import { StateObjectCell } from 'mol-state';
+import { PluginContext } from '../../../mol-plugin/context';
+import { Representation } from '../../../mol-repr/representation';
+import { StateObjectCell } from '../../../mol-state';
 
 export function registerDefault(ctx: PluginContext) {
     SyncRepresentationToCanvas(ctx);
diff --git a/src/mol-plugin/behavior/static/state.ts b/src/mol-plugin/behavior/static/state.ts
index c4111b37104383e19db7b1f1d602892404d82b3d..35409be66f6f2286509fc60cfe409ffadeaf2c28 100644
--- a/src/mol-plugin/behavior/static/state.ts
+++ b/src/mol-plugin/behavior/static/state.ts
@@ -6,11 +6,11 @@
 
 import { PluginCommands } from '../../command';
 import { PluginContext } from '../../context';
-import { StateTree, StateTransform, State } from 'mol-state';
-import { PluginStateSnapshotManager } from 'mol-plugin/state/snapshots';
+import { StateTree, StateTransform, State } from '../../../mol-state';
+import { PluginStateSnapshotManager } from '../../../mol-plugin/state/snapshots';
 import { PluginStateObject as SO } from '../../state/objects';
-import { getFormattedTime } from 'mol-util/date';
-import { readFromFile } from 'mol-util/data-source';
+import { getFormattedTime } from '../../../mol-util/date';
+import { readFromFile } from '../../../mol-util/data-source';
 
 export function registerDefault(ctx: PluginContext) {
     SyncBehaviors(ctx);
diff --git a/src/mol-plugin/command.ts b/src/mol-plugin/command.ts
index 01e3375f9552d19827ba5c8c1efeb610f5b9e2b6..ce0c6a3192a05c55d5889a68ad8f20fb1823b55a 100644
--- a/src/mol-plugin/command.ts
+++ b/src/mol-plugin/command.ts
@@ -4,12 +4,12 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Camera } from 'mol-canvas3d/camera';
+import { Camera } from '../mol-canvas3d/camera';
 import { PluginCommand } from './command/base';
-import { StateTransform, State, StateAction } from 'mol-state';
-import { Canvas3DProps } from 'mol-canvas3d/canvas3d';
+import { StateTransform, State, StateAction } from '../mol-state';
+import { Canvas3DProps } from '../mol-canvas3d/canvas3d';
 import { PluginLayoutStateProps } from './layout';
-import { StructureElement } from 'mol-model/structure';
+import { StructureElement } from '../mol-model/structure';
 import { PluginState } from './state';
 
 export * from './command/base';
diff --git a/src/mol-plugin/command/base.ts b/src/mol-plugin/command/base.ts
index 70aca58427031bc88899b0e454839e4be830f30b..d1c77074b2f319c459eb45d49e1b0f524d557e3c 100644
--- a/src/mol-plugin/command/base.ts
+++ b/src/mol-plugin/command/base.ts
@@ -5,7 +5,7 @@
  */
 
 import { PluginContext } from '../context';
-import { UUID } from 'mol-util';
+import { UUID } from '../../mol-util';
 
 export { PluginCommand }
 
diff --git a/src/mol-plugin/component.ts b/src/mol-plugin/component.ts
index b49f80c1bb2d219fe334bbbf9b093bf37e66fa1e..e60e69c1976f3dc1a460b66f9872088467bddb55 100644
--- a/src/mol-plugin/component.ts
+++ b/src/mol-plugin/component.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { shallowMergeArray } from 'mol-util/object';
-import { RxEventHelper } from 'mol-util/rx-event-helper';
+import { shallowMergeArray } from '../mol-util/object';
+import { RxEventHelper } from '../mol-util/rx-event-helper';
 
 export class PluginComponent<State> {
     private _ev: RxEventHelper;
diff --git a/src/mol-plugin/context.ts b/src/mol-plugin/context.ts
index 42ff3b531c615038b3b9142ea774ad7e8c0d6db0..cb75bfa17818f1e7361c89ecd49dbeac700c62c8 100644
--- a/src/mol-plugin/context.ts
+++ b/src/mol-plugin/context.ts
@@ -5,19 +5,19 @@
  */
 
 import { List } from 'immutable';
-import { Canvas3D } from 'mol-canvas3d/canvas3d';
-import { CustomPropertyRegistry } from 'mol-model-props/common/custom-property-registry';
-import { StructureRepresentationRegistry } from 'mol-repr/structure/registry';
-import { VolumeRepresentationRegistry } from 'mol-repr/volume/registry';
-import { State, StateTransform, StateTransformer } from 'mol-state';
-import { Task } from 'mol-task';
-import { ColorTheme } from 'mol-theme/color';
-import { SizeTheme } from 'mol-theme/size';
-import { ThemeRegistryContext } from 'mol-theme/theme';
-import { Color } from 'mol-util/color';
-import { ajaxGet } from 'mol-util/data-source';
-import { LogEntry } from 'mol-util/log-entry';
-import { RxEventHelper } from 'mol-util/rx-event-helper';
+import { Canvas3D } from '../mol-canvas3d/canvas3d';
+import { CustomPropertyRegistry } from '../mol-model-props/common/custom-property-registry';
+import { StructureRepresentationRegistry } from '../mol-repr/structure/registry';
+import { VolumeRepresentationRegistry } from '../mol-repr/volume/registry';
+import { State, StateTransform, StateTransformer } from '../mol-state';
+import { Task } from '../mol-task';
+import { ColorTheme } from '../mol-theme/color';
+import { SizeTheme } from '../mol-theme/size';
+import { ThemeRegistryContext } from '../mol-theme/theme';
+import { Color } from '../mol-util/color';
+import { ajaxGet } from '../mol-util/data-source';
+import { LogEntry } from '../mol-util/log-entry';
+import { RxEventHelper } from '../mol-util/rx-event-helper';
 import { merge } from 'rxjs';
 import { BuiltInPluginBehaviors } from './behavior';
 import { PluginBehavior } from './behavior/behavior';
@@ -32,10 +32,10 @@ import { TaskManager } from './util/task-manager';
 import { PLUGIN_VERSION, PLUGIN_VERSION_DATE } from './version';
 import { StructureElementSelectionManager } from './util/structure-element-selection';
 import { SubstructureParentHelper } from './util/substructure-parent-helper';
-import { Representation } from 'mol-repr/representation';
-import { ModifiersKeys } from 'mol-util/input/input-observer';
-import { isProductionMode, isDebugMode } from 'mol-util/debug';
-import { Model, Structure } from 'mol-model/structure';
+import { Representation } from '../mol-repr/representation';
+import { ModifiersKeys } from '../mol-util/input/input-observer';
+import { isProductionMode, isDebugMode } from '../mol-util/debug';
+import { Model, Structure } from '../mol-model/structure';
 
 export class PluginContext {
     private disposed = false;
diff --git a/src/mol-plugin/layout.ts b/src/mol-plugin/layout.ts
index 3be770d7036fa5db618f7c72d8bbf9f088d616e5..bdff4dcdcded588b332e4aab5931a56c01148a30 100644
--- a/src/mol-plugin/layout.ts
+++ b/src/mol-plugin/layout.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../mol-util/param-definition';
 import { PluginComponent } from './component';
 import { PluginContext } from './context';
 import { PluginCommands } from './command';
diff --git a/src/mol-plugin/spec.ts b/src/mol-plugin/spec.ts
index 6a8599df9b7870cd3b5d8b31de1b59ad89516ca5..f165ddad13b952c0b020f9097b069a5c2a88a74d 100644
--- a/src/mol-plugin/spec.ts
+++ b/src/mol-plugin/spec.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { StateTransformer, StateAction } from 'mol-state';
+import { StateTransformer, StateAction } from '../mol-state';
 import { StateTransformParameters } from './ui/state/common';
 import { PluginLayoutStateProps } from './layout';
 import { PluginStateAnimation } from './state/animation/model';
diff --git a/src/mol-plugin/state.ts b/src/mol-plugin/state.ts
index 25f6c1035fe071c91ca4c1f06bc0577e2717a863..e28aa4cc2147ef53944354056f148ebef01dfdea 100644
--- a/src/mol-plugin/state.ts
+++ b/src/mol-plugin/state.ts
@@ -4,18 +4,18 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { State } from 'mol-state';
+import { State } from '../mol-state';
 import { PluginStateObject as SO } from './state/objects';
-import { Camera } from 'mol-canvas3d/camera';
+import { Camera } from '../mol-canvas3d/camera';
 import { PluginBehavior } from './behavior';
 import { CameraSnapshotManager } from './state/camera';
 import { PluginStateSnapshotManager } from './state/snapshots';
-import { RxEventHelper } from 'mol-util/rx-event-helper';
-import { Canvas3DProps } from 'mol-canvas3d/canvas3d';
+import { RxEventHelper } from '../mol-util/rx-event-helper';
+import { Canvas3DProps } from '../mol-canvas3d/canvas3d';
 import { PluginCommands } from './command';
 import { PluginAnimationManager } from './state/animation/manager';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { UUID } from 'mol-util';
+import { ParamDefinition as PD } from '../mol-util/param-definition';
+import { UUID } from '../mol-util';
 export { PluginState }
 
 class PluginState {
diff --git a/src/mol-plugin/state/actions/data-format.ts b/src/mol-plugin/state/actions/data-format.ts
index 9a0ffd829f3fb6808703f6ee63f8028c72b6f3a3..b5fbf0cb99a63ac30859ed2bb1dfa60e10d003a6 100644
--- a/src/mol-plugin/state/actions/data-format.ts
+++ b/src/mol-plugin/state/actions/data-format.ts
@@ -4,16 +4,16 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { PluginContext } from 'mol-plugin/context';
-import { State, StateBuilder, StateAction } from 'mol-state';
-import { Task } from 'mol-task';
-import { FileInfo, getFileInfo } from 'mol-util/file-info';
+import { PluginContext } from '../../../mol-plugin/context';
+import { State, StateBuilder, StateAction } from '../../../mol-state';
+import { Task } from '../../../mol-task';
+import { FileInfo, getFileInfo } from '../../../mol-util/file-info';
 import { PluginStateObject } from '../objects';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { Ccp4Provider, Dsn6Provider, DscifProvider } from './volume';
 import { StateTransforms } from '../transforms';
 import { MmcifProvider, PdbProvider, GroProvider } from './structure';
-import msgpackDecode from 'mol-io/common/msgpack/decode'
+import msgpackDecode from '../../../mol-io/common/msgpack/decode'
 import { PlyProvider } from './shape';
 
 export class DataFormatRegistry<D extends PluginStateObject.Data.Binary | PluginStateObject.Data.String> {
diff --git a/src/mol-plugin/state/actions/shape.ts b/src/mol-plugin/state/actions/shape.ts
index 7a1311149ed894a5112b189a1ab0f92f323b79d8..0257c8857ca0be3b90afa2c0a61d15ca785caf6c 100644
--- a/src/mol-plugin/state/actions/shape.ts
+++ b/src/mol-plugin/state/actions/shape.ts
@@ -4,10 +4,10 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { PluginContext } from 'mol-plugin/context';
-import { State, StateBuilder } from 'mol-state';
-import { Task } from 'mol-task';
-import { FileInfo } from 'mol-util/file-info';
+import { PluginContext } from '../../../mol-plugin/context';
+import { State, StateBuilder } from '../../../mol-state';
+import { Task } from '../../../mol-task';
+import { FileInfo } from '../../../mol-util/file-info';
 import { PluginStateObject } from '../objects';
 import { StateTransforms } from '../transforms';
 import { DataFormatProvider } from './data-format';
diff --git a/src/mol-plugin/state/actions/structure.ts b/src/mol-plugin/state/actions/structure.ts
index a3481bb0727e518dd3cc3c2d1604bdb58cbd518d..f287e64facb80d76ece1c22b67fced01e3f23a76 100644
--- a/src/mol-plugin/state/actions/structure.ts
+++ b/src/mol-plugin/state/actions/structure.ts
@@ -5,18 +5,18 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { PluginContext } from 'mol-plugin/context';
-import { StateAction, StateBuilder, StateSelection, StateTransformer, State } from 'mol-state';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { PluginContext } from '../../../mol-plugin/context';
+import { StateAction, StateBuilder, StateSelection, StateTransformer, State } from '../../../mol-state';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { PluginStateObject } from '../objects';
 import { StateTransforms } from '../transforms';
 import { Download } from '../transforms/data';
 import { StructureRepresentation3DHelpers } from '../transforms/representation';
 import { CustomModelProperties, StructureSelection, CustomStructureProperties } from '../transforms/model';
 import { DataFormatProvider, guessCifVariant } from './data-format';
-import { FileInfo } from 'mol-util/file-info';
-import { Task } from 'mol-task';
-import { StructureElement } from 'mol-model/structure';
+import { FileInfo } from '../../../mol-util/file-info';
+import { Task } from '../../../mol-task';
+import { StructureElement } from '../../../mol-model/structure';
 
 export const MmcifProvider: DataFormatProvider<any> = {
     label: 'mmCIF',
diff --git a/src/mol-plugin/state/actions/volume.ts b/src/mol-plugin/state/actions/volume.ts
index 727114bf9f8b56ec9b7c619130b28e208d79ab06..6f9f6a8a63922e7db2c245002833cfacc357f0bf 100644
--- a/src/mol-plugin/state/actions/volume.ts
+++ b/src/mol-plugin/state/actions/volume.ts
@@ -5,13 +5,13 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { VolumeIsoValue } from 'mol-model/volume';
-import { PluginContext } from 'mol-plugin/context';
-import { State, StateAction, StateBuilder, StateTransformer } from 'mol-state';
-import { Task } from 'mol-task';
-import { ColorNames } from 'mol-util/color/tables';
-import { FileInfo, getFileInfo } from 'mol-util/file-info';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { VolumeIsoValue } from '../../../mol-model/volume';
+import { PluginContext } from '../../../mol-plugin/context';
+import { State, StateAction, StateBuilder, StateTransformer } from '../../../mol-state';
+import { Task } from '../../../mol-task';
+import { ColorNames } from '../../../mol-util/color/tables';
+import { FileInfo, getFileInfo } from '../../../mol-util/file-info';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { PluginStateObject } from '../objects';
 import { StateTransforms } from '../transforms';
 import { Download } from '../transforms/data';
diff --git a/src/mol-plugin/state/animation/built-in.ts b/src/mol-plugin/state/animation/built-in.ts
index 4bbab98fe88601f239b20f6a5b45812123ce7aec..172423baba7bc8bf272246acc483b4feb50489d1 100644
--- a/src/mol-plugin/state/animation/built-in.ts
+++ b/src/mol-plugin/state/animation/built-in.ts
@@ -7,10 +7,10 @@
 import { PluginStateAnimation } from './model';
 import { PluginStateObject } from '../objects';
 import { StateTransforms } from '../transforms';
-import { StateSelection, StateTransform } from 'mol-state';
-import { PluginCommands } from 'mol-plugin/command';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { PluginContext } from 'mol-plugin/context';
+import { StateSelection, StateTransform } from '../../../mol-state';
+import { PluginCommands } from '../../../mol-plugin/command';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { PluginContext } from '../../../mol-plugin/context';
 
 export const AnimateModelIndex = PluginStateAnimation.create({
     name: 'built-in.animate-model-index',
diff --git a/src/mol-plugin/state/animation/helpers.ts b/src/mol-plugin/state/animation/helpers.ts
index d86448d5fedb44a6d39f2e87c4c3a895e112d238..7d0a51bdcd35c2e35633cb48410f0a98738d98e7 100644
--- a/src/mol-plugin/state/animation/helpers.ts
+++ b/src/mol-plugin/state/animation/helpers.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { SymmetryOperator } from 'mol-math/geometry';
-import { Mat4, Vec3 } from 'mol-math/linear-algebra';
-import { Structure } from 'mol-model/structure';
-import { StructureUnitTransforms } from 'mol-model/structure/structure/util/unit-transforms';
+import { SymmetryOperator } from '../../../mol-math/geometry';
+import { Mat4, Vec3 } from '../../../mol-math/linear-algebra';
+import { Structure } from '../../../mol-model/structure';
+import { StructureUnitTransforms } from '../../../mol-model/structure/structure/util/unit-transforms';
 
 const _unwindMatrix = Mat4.zero();
 export function unwindStructureAssembly(structure: Structure, unitTransforms: StructureUnitTransforms, t: number) {
diff --git a/src/mol-plugin/state/animation/manager.ts b/src/mol-plugin/state/animation/manager.ts
index 2fe7350f341fe0c02387594b46dfe5b8aecf13dc..2b73af3ed09298f00578c79acb99aa9647b04b15 100644
--- a/src/mol-plugin/state/animation/manager.ts
+++ b/src/mol-plugin/state/animation/manager.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { PluginComponent } from 'mol-plugin/component';
-import { PluginContext } from 'mol-plugin/context';
+import { PluginComponent } from '../../../mol-plugin/component';
+import { PluginContext } from '../../../mol-plugin/context';
 import { PluginStateAnimation } from './model';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 
 export { PluginAnimationManager }
 
diff --git a/src/mol-plugin/state/animation/model.ts b/src/mol-plugin/state/animation/model.ts
index 5759feca7b0ced9e1975f6e9d4dc1c1620475f9d..20e6f422ff565bdeaa5605e9e375563afa7ab91f 100644
--- a/src/mol-plugin/state/animation/model.ts
+++ b/src/mol-plugin/state/animation/model.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { PluginContext } from 'mol-plugin/context';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { PluginContext } from '../../../mol-plugin/context';
 
 export { PluginStateAnimation }
 
diff --git a/src/mol-plugin/state/camera.ts b/src/mol-plugin/state/camera.ts
index 830dbaf8de461f343944f16c1d1e1cfc21021579..ef5792d839e35b8632099bd7dbf39d32fd266e09 100644
--- a/src/mol-plugin/state/camera.ts
+++ b/src/mol-plugin/state/camera.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Camera } from 'mol-canvas3d/camera';
+import { Camera } from '../../mol-canvas3d/camera';
 import { OrderedMap } from 'immutable';
-import { UUID } from 'mol-util';
-import { PluginComponent } from 'mol-plugin/component';
+import { UUID } from '../../mol-util';
+import { PluginComponent } from '../../mol-plugin/component';
 
 export { CameraSnapshotManager }
 
diff --git a/src/mol-plugin/state/objects.ts b/src/mol-plugin/state/objects.ts
index c3a0a8c979c81d6c9fc04c2fc5c3830c571774dd..f1ebece9e0266f31d19dab8ab1b4365234017130 100644
--- a/src/mol-plugin/state/objects.ts
+++ b/src/mol-plugin/state/objects.ts
@@ -5,20 +5,20 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { CifFile } from 'mol-io/reader/cif';
-import { PlyFile } from 'mol-io/reader/ply/schema';
-import { Model as _Model, Structure as _Structure } from 'mol-model/structure';
-import { VolumeData } from 'mol-model/volume';
-import { PluginBehavior } from 'mol-plugin/behavior/behavior';
-import { Representation } from 'mol-repr/representation';
-import { StructureRepresentation, StructureRepresentationState } from 'mol-repr/structure/representation';
-import { VolumeRepresentation } from 'mol-repr/volume/representation';
-import { StateObject, StateTransformer } from 'mol-state';
-import { Ccp4File } from 'mol-io/reader/ccp4/schema';
-import { Dsn6File } from 'mol-io/reader/dsn6/schema';
-import { ShapeRepresentation } from 'mol-repr/shape/representation';
-import { Shape as _Shape } from 'mol-model/shape';
-import { ShapeProvider } from 'mol-model/shape/provider';
+import { CifFile } from '../../mol-io/reader/cif';
+import { PlyFile } from '../../mol-io/reader/ply/schema';
+import { Model as _Model, Structure as _Structure } from '../../mol-model/structure';
+import { VolumeData } from '../../mol-model/volume';
+import { PluginBehavior } from '../../mol-plugin/behavior/behavior';
+import { Representation } from '../../mol-repr/representation';
+import { StructureRepresentation, StructureRepresentationState } from '../../mol-repr/structure/representation';
+import { VolumeRepresentation } from '../../mol-repr/volume/representation';
+import { StateObject, StateTransformer } from '../../mol-state';
+import { Ccp4File } from '../../mol-io/reader/ccp4/schema';
+import { Dsn6File } from '../../mol-io/reader/dsn6/schema';
+import { ShapeRepresentation } from '../../mol-repr/shape/representation';
+import { Shape as _Shape } from '../../mol-model/shape';
+import { ShapeProvider } from '../../mol-model/shape/provider';
 
 export type TypeClass = 'root' | 'data' | 'prop'
 
diff --git a/src/mol-plugin/state/snapshots.ts b/src/mol-plugin/state/snapshots.ts
index 318925085f7891c62039ec79bdaa114fbc66face..a37ecf699fde69a9c3e70e5b460bebcfe96a32dd 100644
--- a/src/mol-plugin/state/snapshots.ts
+++ b/src/mol-plugin/state/snapshots.ts
@@ -5,10 +5,10 @@
  */
 
 import { List } from 'immutable';
-import { UUID } from 'mol-util';
+import { UUID } from '../../mol-util';
 import { PluginState } from '../state';
-import { PluginComponent } from 'mol-plugin/component';
-import { PluginContext } from 'mol-plugin/context';
+import { PluginComponent } from '../../mol-plugin/component';
+import { PluginContext } from '../../mol-plugin/context';
 
 export { PluginStateSnapshotManager }
 
diff --git a/src/mol-plugin/state/transforms/data.ts b/src/mol-plugin/state/transforms/data.ts
index 43c82b639de8388404961518f571027401a37003..68d145692859885a8311a18ba294199c486ff4c8 100644
--- a/src/mol-plugin/state/transforms/data.ts
+++ b/src/mol-plugin/state/transforms/data.ts
@@ -7,15 +7,15 @@
 
 import { PluginStateTransform } from '../objects';
 import { PluginStateObject as SO } from '../objects';
-import { Task } from 'mol-task';
-import CIF from 'mol-io/reader/cif'
-import { PluginContext } from 'mol-plugin/context';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { StateTransformer } from 'mol-state';
-import { readFromFile, ajaxGetMany } from 'mol-util/data-source';
-import * as CCP4 from 'mol-io/reader/ccp4/parser'
-import * as DSN6 from 'mol-io/reader/dsn6/parser'
-import * as PLY from 'mol-io/reader/ply/parser'
+import { Task } from '../../../mol-task';
+import { CIF } from '../../../mol-io/reader/cif'
+import { PluginContext } from '../../../mol-plugin/context';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { StateTransformer } from '../../../mol-state';
+import { readFromFile, ajaxGetMany } from '../../../mol-util/data-source';
+import * as CCP4 from '../../../mol-io/reader/ccp4/parser'
+import * as DSN6 from '../../../mol-io/reader/dsn6/parser'
+import * as PLY from '../../../mol-io/reader/ply/parser'
 
 export { Download }
 type Download = typeof Download
diff --git a/src/mol-plugin/state/transforms/helpers.ts b/src/mol-plugin/state/transforms/helpers.ts
index 2a72f7a52fdb7e631e41519fa8fca721dc389c09..509c96410d860437597a43007b448c761a8e971e 100644
--- a/src/mol-plugin/state/transforms/helpers.ts
+++ b/src/mol-plugin/state/transforms/helpers.ts
@@ -4,14 +4,14 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Structure, StructureSelection, QueryContext } from 'mol-model/structure';
-import { Color } from 'mol-util/color';
-import { Overpaint } from 'mol-theme/overpaint';
-import { parseMolScript } from 'mol-script/language/parser';
-import { transpileMolScript } from 'mol-script/script/mol-script/symbols';
-import { compile } from 'mol-script/runtime/query/compiler';
-import { Transparency } from 'mol-theme/transparency';
-import { ComputedSecondaryStructure } from 'mol-model-props/computed/secondary-structure';
+import { Structure, StructureSelection, QueryContext } from '../../../mol-model/structure';
+import { Color } from '../../../mol-util/color';
+import { Overpaint } from '../../../mol-theme/overpaint';
+import { parseMolScript } from '../../../mol-script/language/parser';
+import { transpileMolScript } from '../../../mol-script/script/mol-script/symbols';
+import { compile } from '../../../mol-script/runtime/query/compiler';
+import { Transparency } from '../../../mol-theme/transparency';
+import { ComputedSecondaryStructure } from '../../../mol-model-props/computed/secondary-structure';
 
 type Script = { language: string, expression: string }
 
diff --git a/src/mol-plugin/state/transforms/misc.ts b/src/mol-plugin/state/transforms/misc.ts
index 69aac3a93e405563d7c0a55c3b442439a25a5fff..702644591e24b183fa2b4c8b0f4dd0ef90b87496 100644
--- a/src/mol-plugin/state/transforms/misc.ts
+++ b/src/mol-plugin/state/transforms/misc.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { StateTransformer } from 'mol-state';
-import { shallowEqual } from 'mol-util';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { StateTransformer } from '../../../mol-state';
+import { shallowEqual } from '../../../mol-util';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { PluginStateObject as SO, PluginStateTransform } from '../objects';
 
 export { CreateGroup };
diff --git a/src/mol-plugin/state/transforms/model.ts b/src/mol-plugin/state/transforms/model.ts
index a114d88739f6333af382ccf0e8ebd27c81192e18..0813edd0cc757dd8fa050a431b956c17f7603a36 100644
--- a/src/mol-plugin/state/transforms/model.ts
+++ b/src/mol-plugin/state/transforms/model.ts
@@ -5,27 +5,27 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { parsePDB } from 'mol-io/reader/pdb/parser';
-import { Vec3, Mat4, Quat } from 'mol-math/linear-algebra';
-import { trajectoryFromMmCIF } from 'mol-model-formats/structure/mmcif';
-import { trajectoryFromPDB } from 'mol-model-formats/structure/pdb';
-import { Model, ModelSymmetry, Queries, QueryContext, Structure, StructureQuery, StructureSelection as Sel, StructureSymmetry, QueryFn } from 'mol-model/structure';
-import { Assembly } from 'mol-model/structure/model/properties/symmetry';
-import { PluginContext } from 'mol-plugin/context';
-import { MolScriptBuilder } from 'mol-script/language/builder';
-import Expression from 'mol-script/language/expression';
-import { compile } from 'mol-script/runtime/query/compiler';
-import { StateObject, StateTransformer } from 'mol-state';
-import { RuntimeContext, Task } from 'mol-task';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { stringToWords } from 'mol-util/string';
+import { parsePDB } from '../../../mol-io/reader/pdb/parser';
+import { Vec3, Mat4, Quat } from '../../../mol-math/linear-algebra';
+import { trajectoryFromMmCIF } from '../../../mol-model-formats/structure/mmcif';
+import { trajectoryFromPDB } from '../../../mol-model-formats/structure/pdb';
+import { Model, ModelSymmetry, Queries, QueryContext, Structure, StructureQuery, StructureSelection as Sel, StructureSymmetry, QueryFn } from '../../../mol-model/structure';
+import { Assembly } from '../../../mol-model/structure/model/properties/symmetry';
+import { PluginContext } from '../../../mol-plugin/context';
+import { MolScriptBuilder } from '../../../mol-script/language/builder';
+import Expression from '../../../mol-script/language/expression';
+import { compile } from '../../../mol-script/runtime/query/compiler';
+import { StateObject, StateTransformer } from '../../../mol-state';
+import { RuntimeContext, Task } from '../../../mol-task';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { stringToWords } from '../../../mol-util/string';
 import { PluginStateObject as SO, PluginStateTransform } from '../objects';
-import { trajectoryFromGRO } from 'mol-model-formats/structure/gro';
-import { parseGRO } from 'mol-io/reader/gro/parser';
-import { parseMolScript } from 'mol-script/language/parser';
-import { transpileMolScript } from 'mol-script/script/mol-script/symbols';
-import { shapeFromPly } from 'mol-model-formats/shape/ply';
-import { SymmetryOperator } from 'mol-math/geometry';
+import { trajectoryFromGRO } from '../../../mol-model-formats/structure/gro';
+import { parseGRO } from '../../../mol-io/reader/gro/parser';
+import { parseMolScript } from '../../../mol-script/language/parser';
+import { transpileMolScript } from '../../../mol-script/script/mol-script/symbols';
+import { shapeFromPly } from '../../../mol-model-formats/shape/ply';
+import { SymmetryOperator } from '../../../mol-math/geometry';
 import { ensureSecondaryStructure } from './helpers';
 
 export { TrajectoryFromBlob };
diff --git a/src/mol-plugin/state/transforms/representation.ts b/src/mol-plugin/state/transforms/representation.ts
index 127a50758decff275db4f14da3d144103e3d0016..90136b1fd25b6f7c3fa797c8b6ebe513ec9948bc 100644
--- a/src/mol-plugin/state/transforms/representation.ts
+++ b/src/mol-plugin/state/transforms/representation.ts
@@ -5,32 +5,32 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Structure } from 'mol-model/structure';
-import { VolumeData, VolumeIsoValue } from 'mol-model/volume';
-import { PluginContext } from 'mol-plugin/context';
-import { RepresentationProvider } from 'mol-repr/representation';
-import { BuiltInStructureRepresentationsName } from 'mol-repr/structure/registry';
-import { StructureParams } from 'mol-repr/structure/representation';
-import { BuiltInVolumeRepresentationsName } from 'mol-repr/volume/registry';
-import { VolumeParams } from 'mol-repr/volume/representation';
-import { StateTransformer } from 'mol-state';
-import { Task } from 'mol-task';
-import { BuiltInColorThemeName, ColorTheme, BuiltInColorThemes } from 'mol-theme/color';
-import { BuiltInSizeThemeName, SizeTheme } from 'mol-theme/size';
-import { createTheme, ThemeRegistryContext } from 'mol-theme/theme';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { Structure } from '../../../mol-model/structure';
+import { VolumeData, VolumeIsoValue } from '../../../mol-model/volume';
+import { PluginContext } from '../../../mol-plugin/context';
+import { RepresentationProvider } from '../../../mol-repr/representation';
+import { BuiltInStructureRepresentationsName } from '../../../mol-repr/structure/registry';
+import { StructureParams } from '../../../mol-repr/structure/representation';
+import { BuiltInVolumeRepresentationsName } from '../../../mol-repr/volume/registry';
+import { VolumeParams } from '../../../mol-repr/volume/representation';
+import { StateTransformer } from '../../../mol-state';
+import { Task } from '../../../mol-task';
+import { BuiltInColorThemeName, ColorTheme, BuiltInColorThemes } from '../../../mol-theme/color';
+import { BuiltInSizeThemeName, SizeTheme } from '../../../mol-theme/size';
+import { createTheme, ThemeRegistryContext } from '../../../mol-theme/theme';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { PluginStateObject as SO, PluginStateTransform } from '../objects';
-import { Text } from 'mol-geo/geometry/text/text';
-import { ColorNames } from 'mol-util/color/tables';
-import { getLabelRepresentation } from 'mol-plugin/util/structure-labels';
-import { ShapeRepresentation } from 'mol-repr/shape/representation';
-import { StructureUnitTransforms } from 'mol-model/structure/structure/util/unit-transforms';
+import { Text } from '../../../mol-geo/geometry/text/text';
+import { ColorNames } from '../../../mol-util/color/tables';
+import { getLabelRepresentation } from '../../../mol-plugin/util/structure-labels';
+import { ShapeRepresentation } from '../../../mol-repr/shape/representation';
+import { StructureUnitTransforms } from '../../../mol-model/structure/structure/util/unit-transforms';
 import { unwindStructureAssembly, explodeStructure } from '../animation/helpers';
-import { Color } from 'mol-util/color';
-import { Overpaint } from 'mol-theme/overpaint';
-import { Transparency } from 'mol-theme/transparency';
+import { Color } from '../../../mol-util/color';
+import { Overpaint } from '../../../mol-theme/overpaint';
+import { Transparency } from '../../../mol-theme/transparency';
 import { getStructureOverpaint, getStructureTransparency } from './helpers';
-import { BaseGeometry } from 'mol-geo/geometry/base';
+import { BaseGeometry } from '../../../mol-geo/geometry/base';
 
 export { StructureRepresentation3D }
 export { StructureRepresentation3DHelpers }
diff --git a/src/mol-plugin/state/transforms/volume.ts b/src/mol-plugin/state/transforms/volume.ts
index 6861dc237dd801dfb0d7be565107e0840d545508..e7313f7e59f2833a27ee7d4ff9d32e109c112d81 100644
--- a/src/mol-plugin/state/transforms/volume.ts
+++ b/src/mol-plugin/state/transforms/volume.ts
@@ -5,13 +5,13 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import CIF from 'mol-io/reader/cif';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { volumeFromCcp4 } from 'mol-model-formats/volume/ccp4';
-import { volumeFromDensityServerData } from 'mol-model-formats/volume/density-server';
-import { volumeFromDsn6 } from 'mol-model-formats/volume/dsn6';
-import { Task } from 'mol-task';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { CIF } from '../../../mol-io/reader/cif';
+import { Vec3 } from '../../../mol-math/linear-algebra';
+import { volumeFromCcp4 } from '../../../mol-model-formats/volume/ccp4';
+import { volumeFromDensityServerData } from '../../../mol-model-formats/volume/density-server';
+import { volumeFromDsn6 } from '../../../mol-model-formats/volume/dsn6';
+import { Task } from '../../../mol-task';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { PluginStateObject as SO, PluginStateTransform } from '../objects';
 
 export { VolumeFromCcp4 };
diff --git a/src/mol-plugin/ui/camera.tsx b/src/mol-plugin/ui/camera.tsx
index 2d85a73149d5ad99778d9c1da883913d0a26fd27..f09ae177c49f3d8cb778612c7d093b17dc8b632c 100644
--- a/src/mol-plugin/ui/camera.tsx
+++ b/src/mol-plugin/ui/camera.tsx
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { PluginCommands } from 'mol-plugin/command';
+import { PluginCommands } from '../../mol-plugin/command';
 import * as React from 'react';
 import { PluginUIComponent } from './base';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
 import { ParameterControls } from './controls/parameters';
 import { Icon } from './controls/common';
 
diff --git a/src/mol-plugin/ui/controls.tsx b/src/mol-plugin/ui/controls.tsx
index 0b251fdc277c998271ca9a68334475f03ee59eb5..2758c3d29871a14f3964791b9324948fd2933e79 100644
--- a/src/mol-plugin/ui/controls.tsx
+++ b/src/mol-plugin/ui/controls.tsx
@@ -5,15 +5,15 @@
  */
 
 import * as React from 'react';
-import { PluginCommands } from 'mol-plugin/command';
-import { UpdateTrajectory } from 'mol-plugin/state/actions/structure';
+import { PluginCommands } from '../../mol-plugin/command';
+import { UpdateTrajectory } from '../../mol-plugin/state/actions/structure';
 import { PluginUIComponent } from './base';
-import { LociLabelEntry } from 'mol-plugin/util/loci-label-manager';
+import { LociLabelEntry } from '../../mol-plugin/util/loci-label-manager';
 import { IconButton } from './controls/common';
-import { PluginStateObject } from 'mol-plugin/state/objects';
-import { StateTransforms } from 'mol-plugin/state/transforms';
-import { StateTransformer } from 'mol-state';
-import { ModelFromTrajectory } from 'mol-plugin/state/transforms/model';
+import { PluginStateObject } from '../../mol-plugin/state/objects';
+import { StateTransforms } from '../../mol-plugin/state/transforms';
+import { StateTransformer } from '../../mol-state';
+import { ModelFromTrajectory } from '../../mol-plugin/state/transforms/model';
 import { AnimationControls } from './state/animation';
 
 export class TrajectoryViewportControls extends PluginUIComponent<{}, { show: boolean, label: string }> {
diff --git a/src/mol-plugin/ui/controls/common.tsx b/src/mol-plugin/ui/controls/common.tsx
index 71addd5cc48f58f839744099c10f339ada9d4b9d..7d3528763407449e732934a8c5b7dcd0e122663c 100644
--- a/src/mol-plugin/ui/controls/common.tsx
+++ b/src/mol-plugin/ui/controls/common.tsx
@@ -5,7 +5,7 @@
  */
 
 import * as React from 'react';
-import { Color } from 'mol-util/color';
+import { Color } from '../../../mol-util/color';
 
 export class ControlGroup extends React.Component<{ header: string, initialExpanded?: boolean }, { isExpanded: boolean }> {
     state = { isExpanded: !!this.props.initialExpanded }
diff --git a/src/mol-plugin/ui/controls/line-graph/line-graph-component.tsx b/src/mol-plugin/ui/controls/line-graph/line-graph-component.tsx
index 4322923f427bce0fb36d9627a291cb2661ba3dcd..70fafe032c9ad1df1fc3249bf4c4b029a6650336 100644
--- a/src/mol-plugin/ui/controls/line-graph/line-graph-component.tsx
+++ b/src/mol-plugin/ui/controls/line-graph/line-graph-component.tsx
@@ -6,7 +6,7 @@
 import PointComponent from './point-component';
 
 import * as React from 'react';
-import { Vec2 } from 'mol-math/linear-algebra';
+import { Vec2 } from '../../../../mol-math/linear-algebra';
 
 interface LineGraphComponentState {
     points: Vec2[],
@@ -43,12 +43,12 @@ export default class LineGraphComponent extends React.Component<any, LineGraphCo
         this.selected = undefined;
         this.ghostPoints = [];
         this.namespace = 'http://www.w3.org/2000/svg';
-    
+
         for (const point of this.props.data){
             this.state.points.push(point);
         }
-        
-        this.state.points.sort((a, b) => { 
+
+        this.state.points.sort((a, b) => {
             if(a[0] === b[0]){
                 if(a[0] === 0){
                     return a[1]-b[1];
@@ -70,28 +70,28 @@ export default class LineGraphComponent extends React.Component<any, LineGraphCo
         this.handleKeyUp = this.handleKeyUp.bind(this);
         this.handleLeave = this.handleLeave.bind(this);
         this.handleEnter = this.handleEnter.bind(this);
-        
+
     }
 
     public render() {
         const points = this.renderPoints();
         const lines = this.renderLines();
-        
+
         return ([
-            <div key="LineGraph">                
+            <div key="LineGraph">
                 <svg
                     className="msp-canvas"
-                    ref={this.refCallBack} 
+                    ref={this.refCallBack}
                     viewBox={`0 0 ${this.width+this.padding} ${this.height+this.padding}`}
-                    onMouseMove={this.handleDrag} 
+                    onMouseMove={this.handleDrag}
                     onMouseUp={this.handlePointUpdate}
                     onMouseLeave={this.handleLeave}
                     onMouseEnter={this.handleEnter}
                     tabIndex={0}
                     onKeyDown={this.handleKeyDown}
                     onKeyUp={this.handleKeyUp}
-                    onDoubleClick={this.handleDoubleClick}>  
-            
+                    onDoubleClick={this.handleDoubleClick}>
+
                     <g stroke="black" fill="black">
                         {lines}
                         {points}
@@ -112,7 +112,7 @@ export default class LineGraphComponent extends React.Component<any, LineGraphCo
         let copyPoints = points.slice();
         copyPoints.shift();
         copyPoints.pop();
-        this.props.onChange(copyPoints);    
+        this.props.onChange(copyPoints);
     }
 
     private handleKeyDown = (event: any) => {
@@ -135,7 +135,7 @@ export default class LineGraphComponent extends React.Component<any, LineGraphCo
         if (this.state.canSelectMultiple) {
             return;
         }
-        
+
         const copyPoint: Vec2 = this.normalizePoint(Vec2.create(this.state.points[id][0], this.state.points[id][1]));
         this.ghostPoints.push(document.createElementNS(this.namespace, 'circle') as SVGElement);
         this.ghostPoints[0].setAttribute('r', '10');
@@ -145,7 +145,7 @@ export default class LineGraphComponent extends React.Component<any, LineGraphCo
         this.ghostPoints[0].setAttribute('style', 'display: none');
         this.gElement.appendChild(this.ghostPoints[0]);
         this.updatedX = copyPoint[0];
-        this.updatedY = copyPoint[1]; 
+        this.updatedY = copyPoint[1];
         this.selected = [id];
     }
 
@@ -179,14 +179,14 @@ export default class LineGraphComponent extends React.Component<any, LineGraphCo
         } else {
             updatedCopyPoint = Vec2.create(svgP.x, svgP.y);
         }
-        
+
         this.updatedX = updatedCopyPoint[0];
         this.updatedY = updatedCopyPoint[1];
         const unNormalizePoint = this.unNormalizePoint(updatedCopyPoint);
         this.ghostPoints[0].setAttribute('style', 'display: visible');
         this.ghostPoints[0].setAttribute('cx', `${updatedCopyPoint[0]}`);
         this.ghostPoints[0].setAttribute('cy', `${updatedCopyPoint[1]}`);
-        
+
 
         this.props.onDrag(unNormalizePoint);
     }
@@ -197,8 +197,8 @@ export default class LineGraphComponent extends React.Component<any, LineGraphCo
 
     private handlePointUpdate(event: any) {
         const selected = this.selected;
-        if (this.state.canSelectMultiple) { 
-            return; 
+        if (this.state.canSelectMultiple) {
+            return;
         }
 
         if(selected === undefined || selected[0] === 0 || selected[0] === this.state.points.length-1) {
@@ -208,11 +208,11 @@ export default class LineGraphComponent extends React.Component<any, LineGraphCo
             return;
         }
         this.selected = undefined;
-        
+
         const updatedPoint = this.unNormalizePoint(Vec2.create(this.updatedX, this.updatedY));
         const points = this.state.points.filter((_,i) => i !== selected[0]);
         points.push(updatedPoint);;
-        points.sort((a, b) => { 
+        points.sort((a, b) => {
             if(a[0] === b[0]){
                 if(a[0] === 0){
                     return a[1]-b[1];
@@ -241,17 +241,17 @@ export default class LineGraphComponent extends React.Component<any, LineGraphCo
         pt.y = event.clientY;
         const svgP = pt.matrixTransform(this.myRef.getScreenCTM().inverse());
         const points = this.state.points;
-        const padding = this.padding/2; 
+        const padding = this.padding/2;
 
-        if( svgP.x < (padding) || 
-            svgP.x > (this.width+(padding)) || 
-            svgP.y > (this.height+(padding)) || 
+        if( svgP.x < (padding) ||
+            svgP.x > (this.width+(padding)) ||
+            svgP.y > (this.height+(padding)) ||
             svgP.y < (this.padding/2)) {
             return;
         }
         newPoint = this.unNormalizePoint(Vec2.create(svgP.x, svgP.y));
         points.push(newPoint);
-        points.sort((a, b) => { 
+        points.sort((a, b) => {
             if(a[0] === b[0]){
                 if(a[0] === 0){
                     return a[1]-b[1];
@@ -270,7 +270,7 @@ export default class LineGraphComponent extends React.Component<any, LineGraphCo
     private deletePoint = (i:number) => (event: any) => {
     if(i===0 || i===this.state.points.length-1){ return; }
         const points = this.state.points.filter((_,j) => j !== i);
-        points.sort((a, b) => { 
+        points.sort((a, b) => {
             if(a[0] === b[0]){
                 if(a[0] === 0){
                     return a[1]-b[1];
@@ -304,8 +304,8 @@ export default class LineGraphComponent extends React.Component<any, LineGraphCo
     private normalizePoint(point: Vec2) {
         const min = this.padding/2;
         const maxX = this.width+min;
-        const maxY = this.height+min; 
-        const normalizedX = (point[0]*(maxX-min))+min; 
+        const maxY = this.height+min;
+        const normalizedX = (point[0]*(maxX-min))+min;
         const normalizedY = (point[1]*(maxY-min))+min;
         const reverseY = (this.height+this.padding)-normalizedY;
         const newPoint = Vec2.create(normalizedX, reverseY);
@@ -314,12 +314,12 @@ export default class LineGraphComponent extends React.Component<any, LineGraphCo
 
     private unNormalizePoint(point: Vec2) {
         const min = this.padding/2;
-        const maxX = this.width+min; 
+        const maxX = this.width+min;
         const maxY = this.height+min;
         const unNormalizedX = (point[0]-min)/(maxX-min);
 
         // we have to take into account that we reversed y when we first normalized it.
-        const unNormalizedY = ((this.height+this.padding)-point[1]-min)/(maxY-min); 
+        const unNormalizedY = ((this.height+this.padding)-point[1]-min)/(maxY-min);
 
         return Vec2.create(unNormalizedX, unNormalizedY);
     }
@@ -339,7 +339,7 @@ export default class LineGraphComponent extends React.Component<any, LineGraphCo
                 points.push(<PointComponent
                         key={i}
                         id={i}
-                        x={point[0]} 
+                        x={point[0]}
                         y={point[1]}
                         nX={this.state.points[i][0]}
                         nY={this.state.points[i][1]}
@@ -367,8 +367,8 @@ export default class LineGraphComponent extends React.Component<any, LineGraphCo
         for(const point of this.state.points){
             min = this.padding/2;
             maxX = this.width+min;
-            maxY = this.height+min; 
-            normalizedX = (point[0]*(maxX-min))+min; 
+            maxY = this.height+min;
+            normalizedX = (point[0]*(maxX-min))+min;
             normalizedY = (point[1]*(maxY-min))+min;
             reverseY = this.height+this.padding-normalizedY;
             points.push(Vec2.create(normalizedX, reverseY));
@@ -382,10 +382,10 @@ export default class LineGraphComponent extends React.Component<any, LineGraphCo
             const y1 = data[i][1];
             const x2 = data[i+1][0];
             const y2 = data[i+1][1];
-    
+
             lines.push(<line key={`lineOf${i}`} x1={x1} x2={x2} y1={y1} y2={y2} stroke="#cec9ba" strokeWidth="5"/>)
         }
-        
+
         return lines;
     }
 }
\ No newline at end of file
diff --git a/src/mol-plugin/ui/controls/line-graph/point-component.tsx b/src/mol-plugin/ui/controls/line-graph/point-component.tsx
index 07ebdc7bc9ad9d9cbbc8f17643f5c75feb37d832..c05f2d9ea4b061fd603a985a830b37770949b487 100644
--- a/src/mol-plugin/ui/controls/line-graph/point-component.tsx
+++ b/src/mol-plugin/ui/controls/line-graph/point-component.tsx
@@ -1,13 +1,13 @@
 
 import * as React from 'react';
 
-import { Vec2 } from 'mol-math/linear-algebra';
+import { Vec2 } from '../../../../mol-math/linear-algebra';
 
 export default class PointComponent extends React.Component<any, {show: boolean}> {
-    constructor(props: any){
+    constructor(props: any) {
         super(props);
         this.state = {show: false}
-        
+
         this.handleHover = this.handleHover.bind(this);
         this.handleHoverOff = this.handleHoverOff.bind(this);
         this.deletePoint = this.deletePoint.bind(this);
@@ -19,26 +19,26 @@ export default class PointComponent extends React.Component<any, {show: boolean}
         this.props.onmouseover(point);
     }
 
-    private handleHoverOff(){
+    private handleHoverOff() {
         this.setState({show: false});
         this.props.onmouseover(undefined);
     }
 
     private deletePoint() {
-        this.props.delete(this.props.id);   
+        this.props.delete(this.props.id);
     }
 
     public render() {
         return([
-            <circle 
+            <circle
                 r="10"
                 key={`${this.props.id}circle`}
                 id={`${this.props.id}`}
-                cx={this.props.x} 
-                cy={this.props.y} 
+                cx={this.props.x}
+                cy={this.props.y}
                 onClick={this.props.onclick}
                 onDoubleClick={this.props.delete(this.props.id)}
-                onMouseEnter={this.handleHover} 
+                onMouseEnter={this.handleHover}
                 onMouseLeave={this.handleHoverOff}
                 onMouseDown={this.props.onmousedown}
                 fill="black"
diff --git a/src/mol-plugin/ui/controls/parameters.tsx b/src/mol-plugin/ui/controls/parameters.tsx
index e179f8cfabfef097d13bee5106eaad2819ee8e15..19323297adbb3af4c45b2fa741d8851a590750fc 100644
--- a/src/mol-plugin/ui/controls/parameters.tsx
+++ b/src/mol-plugin/ui/controls/parameters.tsx
@@ -5,13 +5,13 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Vec2, Vec3 } from 'mol-math/linear-algebra';
-import { Color } from 'mol-util/color';
-import { ColorListName, getColorListFromName } from 'mol-util/color/scale';
-import { ColorNames, ColorNamesValueMap } from 'mol-util/color/tables';
-import { memoize1 } from 'mol-util/memoize';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { camelCaseToWords } from 'mol-util/string';
+import { Vec2, Vec3 } from '../../../mol-math/linear-algebra';
+import { Color } from '../../../mol-util/color';
+import { ColorListName, getColorListFromName } from '../../../mol-util/color/scale';
+import { ColorNames, ColorNamesValueMap } from '../../../mol-util/color/tables';
+import { memoize1 } from '../../../mol-util/memoize';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { camelCaseToWords } from '../../../mol-util/string';
 import * as React from 'react';
 import LineGraphComponent from './line-graph/line-graph-component';
 import { Slider, Slider2 } from './slider';
diff --git a/src/mol-plugin/ui/controls/slider.tsx b/src/mol-plugin/ui/controls/slider.tsx
index b57f3efc8d806a20518ad4b636596e0b2e88e353..34e00c3e362fdbd2bf37d5895b6c5d72811aa4d3 100644
--- a/src/mol-plugin/ui/controls/slider.tsx
+++ b/src/mol-plugin/ui/controls/slider.tsx
@@ -6,7 +6,7 @@
 
 import * as React from 'react'
 import { NumericInput } from './common';
-import { noop } from 'mol-util';
+import { noop } from '../../../mol-util';
 
 export class Slider extends React.Component<{
     min: number,
diff --git a/src/mol-plugin/ui/custom/volume.tsx b/src/mol-plugin/ui/custom/volume.tsx
index f03ff2f052d8184d0c81d3c2c303c5d93e73f210..886f9a105cdd04145e167c632d04fc642accefda 100644
--- a/src/mol-plugin/ui/custom/volume.tsx
+++ b/src/mol-plugin/ui/custom/volume.tsx
@@ -7,13 +7,13 @@
 import { PluginUIComponent } from '../base';
 import { StateTransformParameters } from '../state/common';
 import * as React from 'react';
-import { VolumeStreaming } from 'mol-plugin/behavior/dynamic/volume-streaming/behavior';
+import { VolumeStreaming } from '../../../mol-plugin/behavior/dynamic/volume-streaming/behavior';
 import { ExpandableGroup } from '../controls/common';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { ParameterControls, ParamOnChange } from '../controls/parameters';
 import { Slider } from '../controls/slider';
-import { VolumeIsoValue, VolumeData } from 'mol-model/volume';
-import { Vec3 } from 'mol-math/linear-algebra';
+import { VolumeIsoValue, VolumeData } from '../../../mol-model/volume';
+import { Vec3 } from '../../../mol-math/linear-algebra';
 
 const ChannelParams = {
     color: PD.Color(0 as any),
diff --git a/src/mol-plugin/ui/plugin.tsx b/src/mol-plugin/ui/plugin.tsx
index 4951a7bbb571169115de743792125b56475cea5c..dad27abdbb59757cf1e9fc0a89f24da62b426538 100644
--- a/src/mol-plugin/ui/plugin.tsx
+++ b/src/mol-plugin/ui/plugin.tsx
@@ -5,9 +5,9 @@
  */
 
 import { List } from 'immutable';
-import { PluginState } from 'mol-plugin/state';
-import { formatTime } from 'mol-util';
-import { LogEntry } from 'mol-util/log-entry';
+import { PluginState } from '../../mol-plugin/state';
+import { formatTime } from '../../mol-util';
+import { LogEntry } from '../../mol-util/log-entry';
 import * as React from 'react';
 import { PluginContext } from '../context';
 import { PluginReactContext, PluginUIComponent } from './base';
@@ -17,7 +17,7 @@ import { StateObjectActions } from './state/actions';
 import { StateTree } from './state/tree';
 import { BackgroundTaskProgress } from './task';
 import { Viewport, ViewportControls } from './viewport';
-import { StateTransform } from 'mol-state';
+import { StateTransform } from '../../mol-state';
 import { UpdateTransformContol } from './state/update-transform';
 
 export class Plugin extends React.Component<{ plugin: PluginContext }, {}> {
diff --git a/src/mol-plugin/ui/state.tsx b/src/mol-plugin/ui/state.tsx
index a2a2f400dd2c103ccea6a4bfa504e4ca117bcaed..d16a2845a4ef8b661c90e43f2cbffbcb6232b4f2 100644
--- a/src/mol-plugin/ui/state.tsx
+++ b/src/mol-plugin/ui/state.tsx
@@ -4,17 +4,17 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { PluginCommands } from 'mol-plugin/command';
+import { PluginCommands } from '../../mol-plugin/command';
 import * as React from 'react';
 import { PluginUIComponent, PurePluginUIComponent } from './base';
-import { shallowEqual } from 'mol-util';
+import { shallowEqual } from '../../mol-util';
 import { OrderedMap } from 'immutable';
 import { ParameterControls } from './controls/parameters';
-import { ParamDefinition as PD} from 'mol-util/param-definition';
-import { PluginState } from 'mol-plugin/state';
-import { urlCombine } from 'mol-util/url';
+import { ParamDefinition as PD} from '../../mol-util/param-definition';
+import { PluginState } from '../../mol-plugin/state';
+import { urlCombine } from '../../mol-util/url';
 import { IconButton, Icon } from './controls/common';
-import { formatTimespan } from 'mol-util/now';
+import { formatTimespan } from '../../mol-util/now';
 
 export class StateSnapshots extends PluginUIComponent<{ }> {
     downloadToFile = () => {
diff --git a/src/mol-plugin/ui/state/actions.tsx b/src/mol-plugin/ui/state/actions.tsx
index a56467f7f3c6f4005d84ad8cd229fd613ae0111e..bdd186f2a933e602441ec130381b99d436967c6a 100644
--- a/src/mol-plugin/ui/state/actions.tsx
+++ b/src/mol-plugin/ui/state/actions.tsx
@@ -7,7 +7,7 @@
 import * as React from 'react';
 import { PluginUIComponent } from '../base';
 import { ApplyActionContol } from './apply-action';
-import { State } from 'mol-state';
+import { State } from '../../../mol-state';
 import { Icon } from '../controls/common';
 
 export class StateObjectActions extends PluginUIComponent<{ state: State, nodeRef: string, hideHeader?: boolean, initiallyColapsed?: boolean }> {
diff --git a/src/mol-plugin/ui/state/apply-action.tsx b/src/mol-plugin/ui/state/apply-action.tsx
index c4b1b211681f72940d10cc513e667cd2aeca443d..e53e6aa9fd735d273925d29bc94ea21ee2eb0d26 100644
--- a/src/mol-plugin/ui/state/apply-action.tsx
+++ b/src/mol-plugin/ui/state/apply-action.tsx
@@ -4,12 +4,12 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { PluginCommands } from 'mol-plugin/command';
-import { PluginContext } from 'mol-plugin/context';
-import { State, StateTransform, StateAction } from 'mol-state';
-import { memoizeLatest } from 'mol-util/memoize';
+import { PluginCommands } from '../../../mol-plugin/command';
+import { PluginContext } from '../../../mol-plugin/context';
+import { State, StateTransform, StateAction } from '../../../mol-state';
+import { memoizeLatest } from '../../../mol-util/memoize';
 import { StateTransformParameters, TransformContolBase } from './common';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 
 export { ApplyActionContol };
 
diff --git a/src/mol-plugin/ui/state/common.tsx b/src/mol-plugin/ui/state/common.tsx
index 5bc1a9aa6be5f1dc24cb1cb3d7895f0894ffc8b9..5dc1bc71aaadeaaed011ddb5f4fe384128ea98ef 100644
--- a/src/mol-plugin/ui/state/common.tsx
+++ b/src/mol-plugin/ui/state/common.tsx
@@ -4,12 +4,12 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { State, StateTransform, StateTransformer, StateAction, StateObject } from 'mol-state';
+import { State, StateTransform, StateTransformer, StateAction, StateObject } from '../../../mol-state';
 import * as React from 'react';
 import { PurePluginUIComponent } from '../base';
 import { ParameterControls, ParamOnChange } from '../controls/parameters';
-import { PluginContext } from 'mol-plugin/context';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { PluginContext } from '../../../mol-plugin/context';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { Subject } from 'rxjs';
 import { Icon } from '../controls/common';
 
diff --git a/src/mol-plugin/ui/state/tree.tsx b/src/mol-plugin/ui/state/tree.tsx
index 16293756d3cb72c941337869271fc52a0a629e0c..beff34741520a890703f1dc6ebc44366d3de13a1 100644
--- a/src/mol-plugin/ui/state/tree.tsx
+++ b/src/mol-plugin/ui/state/tree.tsx
@@ -5,9 +5,9 @@
  */
 
 import * as React from 'react';
-import { PluginStateObject } from 'mol-plugin/state/objects';
-import { State, StateObject, StateTransform, StateObjectCell } from 'mol-state'
-import { PluginCommands } from 'mol-plugin/command';
+import { PluginStateObject } from '../../../mol-plugin/state/objects';
+import { State, StateObject, StateTransform, StateObjectCell } from '../../../mol-state'
+import { PluginCommands } from '../../../mol-plugin/command';
 import { PluginUIComponent, _Props, _State } from '../base';
 import { StateObjectActions } from './actions';
 
diff --git a/src/mol-plugin/ui/state/update-transform.tsx b/src/mol-plugin/ui/state/update-transform.tsx
index c48d67128df7db5ec1cd1ffdb014486e4c912ef0..1e6cd3ba90a9514e94cff73e318b036bad9b6ade 100644
--- a/src/mol-plugin/ui/state/update-transform.tsx
+++ b/src/mol-plugin/ui/state/update-transform.tsx
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { State, StateTransform, StateTransformer } from 'mol-state';
-import { memoizeLatest } from 'mol-util/memoize';
+import { State, StateTransform, StateTransformer } from '../../../mol-state';
+import { memoizeLatest } from '../../../mol-util/memoize';
 import { StateTransformParameters, TransformContolBase } from './common';
 import { Observable } from 'rxjs';
 import * as React from 'react';
diff --git a/src/mol-plugin/ui/task.tsx b/src/mol-plugin/ui/task.tsx
index 20b1c7f14a072a0276ef709d4893c9f0785e8f8f..aec6e264adec93da9d3dbdd02122750f5f9edfa8 100644
--- a/src/mol-plugin/ui/task.tsx
+++ b/src/mol-plugin/ui/task.tsx
@@ -7,9 +7,9 @@
 import * as React from 'react';
 import { PluginUIComponent } from './base';
 import { OrderedMap } from 'immutable';
-import { TaskManager } from 'mol-plugin/util/task-manager';
+import { TaskManager } from '../../mol-plugin/util/task-manager';
 import { filter } from 'rxjs/operators';
-import { Progress } from 'mol-task';
+import { Progress } from '../../mol-task';
 
 export class BackgroundTaskProgress extends PluginUIComponent<{ }, { tracked: OrderedMap<number, TaskManager.ProgressEvent> }> {
     componentDidMount() {
diff --git a/src/mol-plugin/ui/viewport.tsx b/src/mol-plugin/ui/viewport.tsx
index 3c9d3b4c84a920220e501127d963af84a81ef888..c42dfe9e17abf851df5960eb9fb1be5cf9a17124 100644
--- a/src/mol-plugin/ui/viewport.tsx
+++ b/src/mol-plugin/ui/viewport.tsx
@@ -7,13 +7,13 @@
 
 import * as React from 'react';
 import { PluginUIComponent } from './base';
-import { PluginCommands } from 'mol-plugin/command';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { PluginCommands } from '../../mol-plugin/command';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
 import { ParameterControls } from './controls/parameters';
-import { Canvas3DParams } from 'mol-canvas3d/canvas3d';
-import { PluginLayoutStateParams } from 'mol-plugin/layout';
+import { Canvas3DParams } from '../../mol-canvas3d/canvas3d';
+import { PluginLayoutStateParams } from '../../mol-plugin/layout';
 import { ControlGroup, IconButton } from './controls/common';
-import { resizeCanvas } from 'mol-canvas3d/util';
+import { resizeCanvas } from '../../mol-canvas3d/util';
 
 interface ViewportState {
     noWebGl: boolean
diff --git a/src/mol-plugin/util/loci-label-manager.ts b/src/mol-plugin/util/loci-label-manager.ts
index 9475f0b6f63d380c3f76466cd801f74cdb291b26..869f519585ff6251a75e27ac581e34a578e31d41 100644
--- a/src/mol-plugin/util/loci-label-manager.ts
+++ b/src/mol-plugin/util/loci-label-manager.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { PluginContext } from 'mol-plugin/context';
-import { Loci } from 'mol-model/loci';
-import { Representation } from 'mol-repr/representation';
+import { PluginContext } from '../../mol-plugin/context';
+import { Loci } from '../../mol-model/loci';
+import { Representation } from '../../mol-repr/representation';
 
 export type LociLabelEntry = JSX.Element | string
 export type LociLabelProvider = (info: Loci, repr?: Representation<any>) => LociLabelEntry | undefined
diff --git a/src/mol-plugin/util/structure-element-selection.ts b/src/mol-plugin/util/structure-element-selection.ts
index f990cfa79e2d0399801cb8a157619d22cbb911d5..1fe46be6ddecbe047587a0d0453616af58976edf 100644
--- a/src/mol-plugin/util/structure-element-selection.ts
+++ b/src/mol-plugin/util/structure-element-selection.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { OrderedSet } from 'mol-data/int';
-import { EmptyLoci, Loci } from 'mol-model/loci';
-import { Structure, StructureElement } from 'mol-model/structure';
-import { StateObject } from 'mol-state';
+import { OrderedSet } from '../../mol-data/int';
+import { EmptyLoci, Loci } from '../../mol-model/loci';
+import { Structure, StructureElement } from '../../mol-model/structure';
+import { StateObject } from '../../mol-state';
 import { PluginContext } from '../context';
 import { PluginStateObject } from '../state/objects';
 
diff --git a/src/mol-plugin/util/structure-labels.ts b/src/mol-plugin/util/structure-labels.ts
index 1ec7fd2b6cbad2d19e840cd72ce2e500380f176e..e66efd60bb1434c1167c9d17cc659768f42948e2 100644
--- a/src/mol-plugin/util/structure-labels.ts
+++ b/src/mol-plugin/util/structure-labels.ts
@@ -4,18 +4,18 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Structure, StructureElement, StructureProperties, Unit } from 'mol-model/structure';
-import { StateTransformer } from 'mol-state';
+import { Structure, StructureElement, StructureProperties, Unit } from '../../mol-model/structure';
+import { StateTransformer } from '../../mol-state';
 import { StructureLabels3D } from '../state/transforms/representation';
-import { ShapeRepresentation } from 'mol-repr/shape/representation';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { Text } from 'mol-geo/geometry/text/text';
-import { TextBuilder } from 'mol-geo/geometry/text/text-builder';
-import { Shape } from 'mol-model/shape';
-import { ColorNames } from 'mol-util/color/tables';
-import { RuntimeContext } from 'mol-task';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { BoundaryHelper } from 'mol-math/geometry/boundary-helper';
+import { ShapeRepresentation } from '../../mol-repr/shape/representation';
+import { Vec3 } from '../../mol-math/linear-algebra';
+import { Text } from '../../mol-geo/geometry/text/text';
+import { TextBuilder } from '../../mol-geo/geometry/text/text-builder';
+import { Shape } from '../../mol-model/shape';
+import { ColorNames } from '../../mol-util/color/tables';
+import { RuntimeContext } from '../../mol-task';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
+import { BoundaryHelper } from '../../mol-math/geometry/boundary-helper';
 
 interface LabelsData {
     texts: string[],
diff --git a/src/mol-plugin/util/substructure-parent-helper.ts b/src/mol-plugin/util/substructure-parent-helper.ts
index 322f43f73fc08805df92ca02e2017e43d5f308de..d7449a0c46d0db9201b660a1e122d7d43ec7c316 100644
--- a/src/mol-plugin/util/substructure-parent-helper.ts
+++ b/src/mol-plugin/util/substructure-parent-helper.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Structure } from 'mol-model/structure';
-import { State, StateObject, StateSelection, StateObjectCell } from 'mol-state';
+import { Structure } from '../../mol-model/structure';
+import { State, StateObject, StateSelection, StateObjectCell } from '../../mol-state';
 import { PluginContext } from '../context';
 import { PluginStateObject } from '../state/objects';
 
diff --git a/src/mol-plugin/util/task-manager.ts b/src/mol-plugin/util/task-manager.ts
index d053c4a618e29b5c8c93b05210d44c8d6d002c06..6bd257f26afbd28ad9ee64dc582aa492379507b8 100644
--- a/src/mol-plugin/util/task-manager.ts
+++ b/src/mol-plugin/util/task-manager.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Task, Progress } from 'mol-task';
-import { RxEventHelper } from 'mol-util/rx-event-helper';
-import { now } from 'mol-util/now';
+import { Task, Progress } from '../../mol-task';
+import { RxEventHelper } from '../../mol-util/rx-event-helper';
+import { now } from '../../mol-util/now';
 
 export { TaskManager }
 
diff --git a/src/mol-repr/representation.ts b/src/mol-repr/representation.ts
index 812bc71d0ecbc3d35f9d0dc03200f76f2cfcd8d1..d7ff15ff57084e67667a7e7f0d8b3203bdcdcf42 100644
--- a/src/mol-repr/representation.ts
+++ b/src/mol-repr/representation.ts
@@ -4,23 +4,23 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Task } from 'mol-task'
-import { GraphicsRenderObject } from 'mol-gl/render-object'
+import { ParamDefinition as PD } from '../mol-util/param-definition';
+import { WebGLContext } from '../mol-gl/webgl/context';
+import { ColorTheme } from '../mol-theme/color';
+import { SizeTheme } from '../mol-theme/size';
+import { ThemeRegistryContext, Theme, createEmptyTheme } from '../mol-theme/theme';
+import { Subject } from 'rxjs';
+import { GraphicsRenderObject } from '../mol-gl/render-object';
+import { Task } from '../mol-task';
 import { PickingId } from '../mol-geo/geometry/picking';
-import { Loci as ModelLoci, isEmptyLoci, EmptyLoci } from 'mol-model/loci';
 import { MarkerAction } from '../mol-geo/geometry/marker-data';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { WebGLContext } from 'mol-gl/webgl/context';
+import { Loci as ModelLoci, EmptyLoci, isEmptyLoci } from '../mol-model/loci';
+import { Overpaint } from '../mol-theme/overpaint';
+import { Transparency } from '../mol-theme/transparency';
+import { Mat4 } from '../mol-math/linear-algebra';
 import { getQualityProps } from './util';
-import { ColorTheme } from 'mol-theme/color';
-import { SizeTheme } from 'mol-theme/size';
-import { Theme, ThemeRegistryContext, createEmptyTheme } from 'mol-theme/theme';
-import { Subject } from 'rxjs';
-import { Mat4 } from 'mol-math/linear-algebra';
-import { BaseGeometry } from 'mol-geo/geometry/base';
+import { BaseGeometry } from '../mol-geo/geometry/base';
 import { Visual } from './visual';
-import { Overpaint } from 'mol-theme/overpaint';
-import { Transparency } from 'mol-theme/transparency';
 
 // export interface RepresentationProps {
 //     visuals?: string[]
diff --git a/src/mol-repr/shape/representation.ts b/src/mol-repr/shape/representation.ts
index 43fb6ea0f44cbe77c4ebabe94b0d3096657460f5..a7196b8b24a6c6ac9ea7826c14e43f274c44476f 100644
--- a/src/mol-repr/shape/representation.ts
+++ b/src/mol-repr/shape/representation.ts
@@ -4,28 +4,28 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Task, RuntimeContext } from 'mol-task'
-import { createRenderObject, getNextMaterialId, RenderObjectKindType, RenderObjectValuesType } from 'mol-gl/render-object';
+import { Geometry, GeometryUtils } from '../../mol-geo/geometry/geometry';
 import { Representation } from '../representation';
-import { Loci, EmptyLoci, isEveryLoci } from 'mol-model/loci';
-import { ValueCell } from 'mol-util';
-import { Shape, ShapeGroup } from 'mol-model/shape';
-import { OrderedSet, Interval } from 'mol-data/int';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { createTransform, TransformData } from 'mol-geo/geometry/transform-data';
-import { PickingId } from 'mol-geo/geometry/picking';
-import { MarkerAction, createMarkers } from 'mol-geo/geometry/marker-data';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { createEmptyTheme, Theme } from 'mol-theme/theme';
+import { Shape, ShapeGroup } from '../../mol-model/shape';
 import { Subject } from 'rxjs';
-import { Geometry, GeometryUtils } from 'mol-geo/geometry/geometry';
-import { ShapeGroupColorTheme } from 'mol-theme/color/shape-group';
-import { createColors } from 'mol-geo/geometry/color-data';
-import { VisualUpdateState } from 'mol-repr/util';
-import { Mat4 } from 'mol-math/linear-algebra';
-import { Visual } from 'mol-repr/visual';
-import { createSizes } from 'mol-geo/geometry/size-data';
-import { ShapeGroupSizeTheme } from 'mol-theme/size/shape-group';
+import { getNextMaterialId, RenderObjectKindType, createRenderObject, RenderObjectValuesType } from '../../mol-gl/render-object';
+import { createEmptyTheme, Theme } from '../../mol-theme/theme';
+import { LocationIterator } from '../../mol-geo/util/location-iterator';
+import { VisualUpdateState } from '../util';
+import { ShapeGroupColorTheme } from '../../mol-theme/color/shape-group';
+import { ShapeGroupSizeTheme } from '../../mol-theme/size/shape-group';
+import { createMarkers, MarkerAction } from '../../mol-geo/geometry/marker-data';
+import { ValueCell } from '../../mol-util';
+import { createColors } from '../../mol-geo/geometry/color-data';
+import { createSizes } from '../../mol-geo/geometry/size-data';
+import { Loci, isEveryLoci, EmptyLoci } from '../../mol-model/loci';
+import { Interval, OrderedSet } from '../../mol-data/int';
+import { PickingId } from '../../mol-geo/geometry/picking';
+import { Visual } from '../visual';
+import { Mat4 } from '../../mol-math/linear-algebra';
+import { TransformData, createTransform } from '../../mol-geo/geometry/transform-data';
+import { RuntimeContext, Task } from '../../mol-task';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
 
 export interface ShapeRepresentation<D, G extends Geometry, P extends Geometry.Params<G>> extends Representation<D, P> { }
 
diff --git a/src/mol-repr/structure/complex-representation.ts b/src/mol-repr/structure/complex-representation.ts
index e8ed4daf473e96be54a04d54cd67e357f1c6a329..872c691b2a5909587c712623ea51396d400ce682 100644
--- a/src/mol-repr/structure/complex-representation.ts
+++ b/src/mol-repr/structure/complex-representation.ts
@@ -5,18 +5,17 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Structure } from 'mol-model/structure';
-import { Task } from 'mol-task'
-import { Loci, EmptyLoci } from 'mol-model/loci';
-import { StructureRepresentation, StructureParams, StructureRepresentationStateBuilder, StructureRepresentationState } from './representation';
-import { ComplexVisual } from './complex-visual';
-import { PickingId } from 'mol-geo/geometry/picking';
-import { MarkerAction } from 'mol-geo/geometry/marker-data';
-import { RepresentationContext, RepresentationParamsGetter } from 'mol-repr/representation';
-import { Theme, createEmptyTheme } from 'mol-theme/theme';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
+import { StructureParams, ComplexVisual, StructureRepresentation, StructureRepresentationStateBuilder, StructureRepresentationState } from './representation';
+import { RepresentationContext, RepresentationParamsGetter } from '../representation';
+import { Structure } from '../../mol-model/structure';
 import { Subject } from 'rxjs';
-import { GraphicsRenderObject, getNextMaterialId } from 'mol-gl/render-object';
+import { getNextMaterialId, GraphicsRenderObject } from '../../mol-gl/render-object';
+import { createEmptyTheme, Theme } from '../../mol-theme/theme';
+import { Task } from '../../mol-task';
+import { PickingId } from '../../mol-geo/geometry/picking';
+import { EmptyLoci, Loci } from '../../mol-model/loci';
+import { MarkerAction } from '../../mol-geo/geometry/marker-data';
 
 export function ComplexRepresentation<P extends StructureParams>(label: string, ctx: RepresentationContext, getParams: RepresentationParamsGetter<Structure, P>, visualCtor: (materialId: number) => ComplexVisual<P>): StructureRepresentation<P> {
     let version = 0
diff --git a/src/mol-repr/structure/complex-visual.ts b/src/mol-repr/structure/complex-visual.ts
index 6728dfd3dfa217313e782b884ff3da9ee2eb106b..4df7c7eb833ad2d9d11dcfcc790cb25858d0fe1d 100644
--- a/src/mol-repr/structure/complex-visual.ts
+++ b/src/mol-repr/structure/complex-visual.ts
@@ -4,32 +4,32 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Structure } from 'mol-model/structure';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
+import { StructureParams, StructureMeshParams, StructureDirectVolumeParams } from './representation';
 import { Visual, VisualContext } from '../visual';
-import { createRenderObject, RenderObjectValuesType, RenderObjectKindType } from 'mol-gl/render-object';
+import { Structure } from '../../mol-model/structure';
+import { Geometry, GeometryUtils } from '../../mol-geo/geometry/geometry';
+import { LocationIterator } from '../../mol-geo/util/location-iterator';
+import { Theme, createEmptyTheme } from '../../mol-theme/theme';
+import { createIdentityTransform } from '../../mol-geo/geometry/transform-data';
+import { createRenderObject, RenderObjectKindType, RenderObjectValuesType } from '../../mol-gl/render-object';
 import { UnitKind, UnitKindOptions } from './visual/util/common';
-import { StructureMeshParams, StructureParams, StructureDirectVolumeParams } from './representation';
-import { deepEqual, ValueCell } from 'mol-util';
-import { Loci, isEveryLoci, EmptyLoci } from 'mol-model/loci';
-import { Interval } from 'mol-data/int';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { createSizes } from 'mol-geo/geometry/size-data';
-import { Geometry, GeometryUtils } from 'mol-geo/geometry/geometry';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { PickingId } from 'mol-geo/geometry/picking';
-import { createColors } from 'mol-geo/geometry/color-data';
-import { MarkerAction } from 'mol-geo/geometry/marker-data';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { VisualUpdateState } from 'mol-repr/util';
-import { Theme, createEmptyTheme } from 'mol-theme/theme';
-import { ColorTheme } from 'mol-theme/color';
-import { SizeTheme } from 'mol-theme/size';
+import { PickingId } from '../../mol-geo/geometry/picking';
+import { Loci, isEveryLoci, EmptyLoci } from '../../mol-model/loci';
+import { Interval } from '../../mol-data/int';
+import { VisualUpdateState } from '../util';
 import { UnitsParams } from './units-representation';
-import { DirectVolume } from 'mol-geo/geometry/direct-volume/direct-volume';
-import { Mat4 } from 'mol-math/linear-algebra';
-import { createIdentityTransform } from 'mol-geo/geometry/transform-data';
-import { Overpaint } from 'mol-theme/overpaint';
-import { Transparency } from 'mol-theme/transparency';
+import { ColorTheme } from '../../mol-theme/color';
+import { ValueCell, deepEqual } from '../../mol-util';
+import { createSizes } from '../../mol-geo/geometry/size-data';
+import { createColors } from '../../mol-geo/geometry/color-data';
+import { MarkerAction } from '../../mol-geo/geometry/marker-data';
+import { Mat4 } from '../../mol-math/linear-algebra';
+import { Overpaint } from '../../mol-theme/overpaint';
+import { Transparency } from '../../mol-theme/transparency';
+import { Mesh } from '../../mol-geo/geometry/mesh/mesh';
+import { SizeTheme } from '../../mol-theme/size';
+import { DirectVolume } from '../../mol-geo/geometry/direct-volume/direct-volume';
 
 export interface  ComplexVisual<P extends StructureParams> extends Visual<Structure, P> { }
 
diff --git a/src/mol-repr/structure/registry.ts b/src/mol-repr/structure/registry.ts
index c83be7e241276e7a6b96e5f9b216f4e0d48b8731..d2569805ea597e4eb2a000d7f0aa076b142bc99b 100644
--- a/src/mol-repr/structure/registry.ts
+++ b/src/mol-repr/structure/registry.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Structure } from 'mol-model/structure';
+import { Structure } from '../../mol-model/structure';
 import { RepresentationProvider, RepresentationRegistry } from '../representation';
 import { CartoonRepresentationProvider } from './representation/cartoon';
 import { BallAndStickRepresentationProvider } from './representation/ball-and-stick';
diff --git a/src/mol-repr/structure/representation.ts b/src/mol-repr/structure/representation.ts
index 427ab0c0fc33c18e1ed27a24710423c2b30003f1..94a99ac2a5deec9f0c98204f2f4d1c34c1a9d218 100644
--- a/src/mol-repr/structure/representation.ts
+++ b/src/mol-repr/structure/representation.ts
@@ -5,17 +5,17 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Structure } from 'mol-model/structure';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
 import { Representation, RepresentationProps, RepresentationProvider } from '../representation';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { BaseGeometry } from 'mol-geo/geometry/base';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { Points } from 'mol-geo/geometry/points/points';
-import { Lines } from 'mol-geo/geometry/lines/lines';
-import { DirectVolume } from 'mol-geo/geometry/direct-volume/direct-volume';
-import { Spheres } from 'mol-geo/geometry/spheres/spheres';
-import { StructureUnitTransforms } from 'mol-model/structure/structure/util/unit-transforms';
-import { TextureMesh } from 'mol-geo/geometry/texture-mesh/texture-mesh';
+import { StructureUnitTransforms } from '../../mol-model/structure/structure/util/unit-transforms';
+import { Structure } from '../../mol-model/structure';
+import { BaseGeometry } from '../../mol-geo/geometry/base';
+import { Mesh } from '../../mol-geo/geometry/mesh/mesh';
+import { Spheres } from '../../mol-geo/geometry/spheres/spheres';
+import { Points } from '../../mol-geo/geometry/points/points';
+import { Lines } from '../../mol-geo/geometry/lines/lines';
+import { DirectVolume } from '../../mol-geo/geometry/direct-volume/direct-volume';
+import { TextureMesh } from '../../mol-geo/geometry/texture-mesh/texture-mesh';
 
 export interface StructureRepresentationState extends Representation.State {
     unitTransforms: StructureUnitTransforms | null
diff --git a/src/mol-repr/structure/representation/ball-and-stick.ts b/src/mol-repr/structure/representation/ball-and-stick.ts
index a7b3e9accf7d1a73008a0a5caad0fc46c748eb36..324fb6eff2e7e26e03541f09bc5e9cb56a6e6a26 100644
--- a/src/mol-repr/structure/representation/ball-and-stick.ts
+++ b/src/mol-repr/structure/representation/ball-and-stick.ts
@@ -7,13 +7,13 @@
 import { getElementSphereVisual, ElementSphereParams } from '../visual/element-sphere';
 import { IntraUnitLinkVisual, IntraUnitLinkParams } from '../visual/intra-unit-link-cylinder';
 import { InterUnitLinkVisual, InterUnitLinkParams } from '../visual/inter-unit-link-cylinder';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { UnitsRepresentation } from '../units-representation';
 import { ComplexRepresentation } from '../complex-representation';
 import { StructureRepresentation, StructureRepresentationProvider, StructureRepresentationStateBuilder } from '../representation';
-import { Representation, RepresentationParamsGetter, RepresentationContext } from 'mol-repr/representation';
-import { ThemeRegistryContext } from 'mol-theme/theme';
-import { Structure } from 'mol-model/structure';
+import { Representation, RepresentationParamsGetter, RepresentationContext } from '../../../mol-repr/representation';
+import { ThemeRegistryContext } from '../../../mol-theme/theme';
+import { Structure } from '../../../mol-model/structure';
 import { UnitKind, UnitKindOptions } from '../visual/util/common';
 
 const BallAndStickVisuals = {
diff --git a/src/mol-repr/structure/representation/carbohydrate.ts b/src/mol-repr/structure/representation/carbohydrate.ts
index a4f4d3079ce4b63ce9356e4e7322d28d354e4ede..a36b8e7ec88696c6ce50cc36d6cb0ccad6078cb2 100644
--- a/src/mol-repr/structure/representation/carbohydrate.ts
+++ b/src/mol-repr/structure/representation/carbohydrate.ts
@@ -4,15 +4,15 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { CarbohydrateSymbolVisual, CarbohydrateSymbolParams } from '../visual/carbohydrate-symbol-mesh';
-import { CarbohydrateLinkVisual, CarbohydrateLinkParams } from '../visual/carbohydrate-link-cylinder';
-import { CarbohydrateTerminalLinkParams, CarbohydrateTerminalLinkVisual } from '../visual/carbohydrate-terminal-link-cylinder';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { Structure } from '../../../mol-model/structure';
+import { Representation, RepresentationContext, RepresentationParamsGetter } from '../../../mol-repr/representation';
+import { ThemeRegistryContext } from '../../../mol-theme/theme';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { ComplexRepresentation } from '../complex-representation';
 import { StructureRepresentation, StructureRepresentationProvider, StructureRepresentationStateBuilder } from '../representation';
-import { Representation, RepresentationParamsGetter, RepresentationContext } from 'mol-repr/representation';
-import { ThemeRegistryContext } from 'mol-theme/theme';
-import { Structure } from 'mol-model/structure';
+import { CarbohydrateLinkParams, CarbohydrateLinkVisual } from '../visual/carbohydrate-link-cylinder';
+import { CarbohydrateSymbolParams, CarbohydrateSymbolVisual } from '../visual/carbohydrate-symbol-mesh';
+import { CarbohydrateTerminalLinkParams, CarbohydrateTerminalLinkVisual } from '../visual/carbohydrate-terminal-link-cylinder';
 
 const CarbohydrateVisuals = {
     'carbohydrate-symbol': (ctx: RepresentationContext, getParams: RepresentationParamsGetter<Structure, CarbohydrateSymbolParams>) => ComplexRepresentation('Carbohydrate symbol mesh', ctx, getParams, CarbohydrateSymbolVisual),
diff --git a/src/mol-repr/structure/representation/cartoon.ts b/src/mol-repr/structure/representation/cartoon.ts
index 1fef6f9ef60ba99e322b3acc418ebfc9577c9434..e315ea78a6e657b1480dff8da795b2e2cbe00b9d 100644
--- a/src/mol-repr/structure/representation/cartoon.ts
+++ b/src/mol-repr/structure/representation/cartoon.ts
@@ -4,17 +4,17 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { PolymerTraceVisual,  PolymerTraceParams } from '../visual/polymer-trace-mesh';
-import { PolymerGapVisual, PolymerGapParams } from '../visual/polymer-gap-cylinder';
-import { NucleotideBlockVisual, NucleotideBlockParams } from '../visual/nucleotide-block-mesh';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { UnitsRepresentation } from '../units-representation';
+import { Structure, Unit } from '../../../mol-model/structure';
+import { Representation, RepresentationContext, RepresentationParamsGetter } from '../../../mol-repr/representation';
+import { ThemeRegistryContext } from '../../../mol-theme/theme';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { StructureRepresentation, StructureRepresentationProvider, StructureRepresentationStateBuilder } from '../representation';
-import { Representation, RepresentationParamsGetter, RepresentationContext } from 'mol-repr/representation';
-import { PolymerDirectionVisual, PolymerDirectionParams } from '../visual/polymer-direction-wedge';
-import { Structure, Unit } from 'mol-model/structure';
-import { ThemeRegistryContext } from 'mol-theme/theme';
+import { UnitsRepresentation } from '../units-representation';
+import { NucleotideBlockParams, NucleotideBlockVisual } from '../visual/nucleotide-block-mesh';
 import { NucleotideRingParams, NucleotideRingVisual } from '../visual/nucleotide-ring-mesh';
+import { PolymerDirectionParams, PolymerDirectionVisual } from '../visual/polymer-direction-wedge';
+import { PolymerGapParams, PolymerGapVisual } from '../visual/polymer-gap-cylinder';
+import { PolymerTraceParams, PolymerTraceVisual } from '../visual/polymer-trace-mesh';
 
 const CartoonVisuals = {
     'polymer-trace': (ctx: RepresentationContext, getParams: RepresentationParamsGetter<Structure, PolymerTraceParams>) => UnitsRepresentation('Polymer trace mesh', ctx, getParams, PolymerTraceVisual),
diff --git a/src/mol-repr/structure/representation/distance-restraint.ts b/src/mol-repr/structure/representation/distance-restraint.ts
index 096bf268b829982f631008c7f1bde095d4e6a48f..40788e2c94a055bee7e33249254effd71bb84052 100644
--- a/src/mol-repr/structure/representation/distance-restraint.ts
+++ b/src/mol-repr/structure/representation/distance-restraint.ts
@@ -5,12 +5,12 @@
  */
 
 import { CrossLinkRestraintVisual, CrossLinkRestraintParams } from '../visual/cross-link-restraint-cylinder';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { ComplexRepresentation } from '../complex-representation';
 import { StructureRepresentation, StructureRepresentationProvider, StructureRepresentationStateBuilder } from '../representation';
-import { Representation, RepresentationContext, RepresentationParamsGetter } from 'mol-repr/representation';
-import { ThemeRegistryContext } from 'mol-theme/theme';
-import { Structure } from 'mol-model/structure';
+import { Representation, RepresentationContext, RepresentationParamsGetter } from '../../../mol-repr/representation';
+import { ThemeRegistryContext } from '../../../mol-theme/theme';
+import { Structure } from '../../../mol-model/structure';
 import { UnitKind, UnitKindOptions } from '../visual/util/common';
 
 const DistanceRestraintVisuals = {
diff --git a/src/mol-repr/structure/representation/gaussian-surface.ts b/src/mol-repr/structure/representation/gaussian-surface.ts
index 1e1e748f9fb67134062c9ac9200f9000f7f77662..41711eeb7a1b4a69bfba893005b6cf9c701af832 100644
--- a/src/mol-repr/structure/representation/gaussian-surface.ts
+++ b/src/mol-repr/structure/representation/gaussian-surface.ts
@@ -7,11 +7,11 @@
 import { GaussianSurfaceMeshVisual, GaussianSurfaceTextureMeshVisual, GaussianSurfaceMeshParams } from '../visual/gaussian-surface-mesh';
 import { UnitsRepresentation } from '../units-representation';
 import { GaussianWireframeVisual, GaussianWireframeParams } from '../visual/gaussian-surface-wireframe';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { StructureRepresentation, StructureRepresentationProvider, StructureRepresentationStateBuilder } from '../representation';
-import { Representation, RepresentationParamsGetter, RepresentationContext } from 'mol-repr/representation';
-import { ThemeRegistryContext } from 'mol-theme/theme';
-import { Structure } from 'mol-model/structure';
+import { Representation, RepresentationParamsGetter, RepresentationContext } from '../../../mol-repr/representation';
+import { ThemeRegistryContext } from '../../../mol-theme/theme';
+import { Structure } from '../../../mol-model/structure';
 
 const GaussianSurfaceVisuals = {
     'gaussian-surface-mesh': (ctx: RepresentationContext, getParams: RepresentationParamsGetter<Structure, GaussianSurfaceMeshParams>) => UnitsRepresentation('Gaussian surface', ctx, getParams, GaussianSurfaceMeshVisual),
diff --git a/src/mol-repr/structure/representation/gaussian-volume.ts b/src/mol-repr/structure/representation/gaussian-volume.ts
index df1e99b19484849f29fd78ae690f0600f17ce96c..caf0913b437f376f686cc405022109504b8f6230 100644
--- a/src/mol-repr/structure/representation/gaussian-volume.ts
+++ b/src/mol-repr/structure/representation/gaussian-volume.ts
@@ -4,12 +4,12 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { GaussianDensityVolumeParams, GaussianDensityVolumeVisual } from '../visual/gaussian-density-volume';
 import { StructureRepresentation, StructureRepresentationProvider, ComplexRepresentation, StructureRepresentationStateBuilder } from '../representation';
-import { Representation, RepresentationParamsGetter, RepresentationContext } from 'mol-repr/representation';
-import { ThemeRegistryContext } from 'mol-theme/theme';
-import { Structure } from 'mol-model/structure';
+import { Representation, RepresentationParamsGetter, RepresentationContext } from '../../../mol-repr/representation';
+import { ThemeRegistryContext } from '../../../mol-theme/theme';
+import { Structure } from '../../../mol-model/structure';
 
 const GaussianVolumeVisuals = {
     'gaussian-volume': (ctx: RepresentationContext, getParams: RepresentationParamsGetter<Structure, GaussianDensityVolumeParams>) => ComplexRepresentation('Gaussian volume', ctx, getParams, GaussianDensityVolumeVisual)
diff --git a/src/mol-repr/structure/representation/molecular-surface.ts b/src/mol-repr/structure/representation/molecular-surface.ts
index 3a5f0c0510c8d7d3302c5c458d8f3d94a35d4b40..2a0c6ecc40085ade4f64e81b8a7d64d09345de3e 100644
--- a/src/mol-repr/structure/representation/molecular-surface.ts
+++ b/src/mol-repr/structure/representation/molecular-surface.ts
@@ -6,11 +6,11 @@
 
 import { MolecularSurfaceMeshVisual, MolecularSurfaceMeshParams } from '../visual/molecular-surface-mesh';
 import { UnitsRepresentation } from '../units-representation';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { StructureRepresentation, StructureRepresentationProvider, StructureRepresentationStateBuilder } from '../representation';
-import { Representation, RepresentationParamsGetter, RepresentationContext } from 'mol-repr/representation';
-import { ThemeRegistryContext } from 'mol-theme/theme';
-import { Structure } from 'mol-model/structure';
+import { Representation, RepresentationParamsGetter, RepresentationContext } from '../../../mol-repr/representation';
+import { ThemeRegistryContext } from '../../../mol-theme/theme';
+import { Structure } from '../../../mol-model/structure';
 
 const MolecularSurfaceVisuals = {
     'molecular-surface-mesh': (ctx: RepresentationContext, getParams: RepresentationParamsGetter<Structure, MolecularSurfaceMeshParams>) => UnitsRepresentation('Molecular surface', ctx, getParams, MolecularSurfaceMeshVisual),
diff --git a/src/mol-repr/structure/representation/point.ts b/src/mol-repr/structure/representation/point.ts
index fe54c0e2c1c417e6fbfdc48403bbc7a6a5f3662d..64157d4c9283ce4eedc63d85bf1c9c7e74566495 100644
--- a/src/mol-repr/structure/representation/point.ts
+++ b/src/mol-repr/structure/representation/point.ts
@@ -6,11 +6,11 @@
 
 import { ElementPointVisual, ElementPointParams } from '../visual/element-point';
 import { UnitsRepresentation } from '../units-representation';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { StructureRepresentation, StructureRepresentationProvider, StructureRepresentationStateBuilder } from '../representation';
-import { Representation, RepresentationParamsGetter, RepresentationContext } from 'mol-repr/representation';
-import { ThemeRegistryContext } from 'mol-theme/theme';
-import { Structure } from 'mol-model/structure';
+import { Representation, RepresentationParamsGetter, RepresentationContext } from '../../../mol-repr/representation';
+import { ThemeRegistryContext } from '../../../mol-theme/theme';
+import { Structure } from '../../../mol-model/structure';
 import { UnitKind, UnitKindOptions } from '../visual/util/common';
 
 const PointVisuals = {
diff --git a/src/mol-repr/structure/representation/putty.ts b/src/mol-repr/structure/representation/putty.ts
index b2d7f9c98cd8afbfea14fdd2145df50a84b1ae90..4623077e4f89c702ecb65f4dd49ad912d2799829 100644
--- a/src/mol-repr/structure/representation/putty.ts
+++ b/src/mol-repr/structure/representation/putty.ts
@@ -6,12 +6,12 @@
 
 import { PolymerTubeVisual,  PolymerTubeParams } from '../visual/polymer-tube-mesh';
 import { PolymerGapVisual, PolymerGapParams } from '../visual/polymer-gap-cylinder';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { UnitsRepresentation } from '../units-representation';
 import { StructureRepresentation, StructureRepresentationProvider, StructureRepresentationStateBuilder } from '../representation';
-import { Representation, RepresentationParamsGetter, RepresentationContext } from 'mol-repr/representation';
-import { Structure, Unit } from 'mol-model/structure';
-import { ThemeRegistryContext } from 'mol-theme/theme';
+import { Representation, RepresentationParamsGetter, RepresentationContext } from '../../../mol-repr/representation';
+import { Structure, Unit } from '../../../mol-model/structure';
+import { ThemeRegistryContext } from '../../../mol-theme/theme';
 
 const PuttyVisuals = {
     'polymer-tube': (ctx: RepresentationContext, getParams: RepresentationParamsGetter<Structure, PolymerTubeParams>) => UnitsRepresentation('Polymer tube mesh', ctx, getParams, PolymerTubeVisual),
diff --git a/src/mol-repr/structure/representation/spacefill.ts b/src/mol-repr/structure/representation/spacefill.ts
index 74ca4264ac9695dc178f65830c6816532261103e..91223e3a7561308895fc06127c9676e6ad0f130c 100644
--- a/src/mol-repr/structure/representation/spacefill.ts
+++ b/src/mol-repr/structure/representation/spacefill.ts
@@ -6,11 +6,11 @@
 
 import { getElementSphereVisual, ElementSphereParams } from '../visual/element-sphere';
 import { UnitsRepresentation } from '../units-representation';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { StructureRepresentation, StructureRepresentationProvider, StructureRepresentationStateBuilder } from '../representation';
-import { RepresentationParamsGetter, RepresentationContext, Representation } from 'mol-repr/representation';
-import { ThemeRegistryContext } from 'mol-theme/theme';
-import { Structure } from 'mol-model/structure';
+import { RepresentationParamsGetter, RepresentationContext, Representation } from '../../../mol-repr/representation';
+import { ThemeRegistryContext } from '../../../mol-theme/theme';
+import { Structure } from '../../../mol-model/structure';
 import { UnitKind, UnitKindOptions } from '../visual/util/common';
 
 const SpacefillVisuals = {
diff --git a/src/mol-repr/structure/units-representation.ts b/src/mol-repr/structure/units-representation.ts
index 89e7adc7b8f1fecb5075cc92a5e578e3957c5ee4..6c690ea2f73b736d859cc008d2b739f356576e3c 100644
--- a/src/mol-repr/structure/units-representation.ts
+++ b/src/mol-repr/structure/units-representation.ts
@@ -5,20 +5,20 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Structure, Unit } from 'mol-model/structure';
-import { Task } from 'mol-task'
-import { GraphicsRenderObject, getNextMaterialId } from 'mol-gl/render-object';
-import { RepresentationContext, RepresentationParamsGetter } from '../representation';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
+import { StructureParams, StructureRepresentation, StructureRepresentationStateBuilder, StructureRepresentationState } from './representation';
+import { UnitKind, UnitKindOptions } from './visual/util/common';
 import { Visual } from '../visual';
-import { Loci, EmptyLoci, isEmptyLoci } from 'mol-model/loci';
 import { StructureGroup } from './units-visual';
-import { StructureRepresentation, StructureParams, StructureRepresentationState, StructureRepresentationStateBuilder } from './representation';
-import { PickingId } from 'mol-geo/geometry/picking';
-import { MarkerAction } from 'mol-geo/geometry/marker-data';
-import { Theme, createEmptyTheme } from 'mol-theme/theme';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { UnitKind, UnitKindOptions } from './visual/util/common';
+import { RepresentationContext, RepresentationParamsGetter } from '../representation';
+import { Structure, Unit } from '../../mol-model/structure';
 import { Subject } from 'rxjs';
+import { getNextMaterialId, GraphicsRenderObject } from '../../mol-gl/render-object';
+import { createEmptyTheme, Theme } from '../../mol-theme/theme';
+import { Task } from '../../mol-task';
+import { PickingId } from '../../mol-geo/geometry/picking';
+import { Loci, EmptyLoci, isEmptyLoci } from '../../mol-model/loci';
+import { MarkerAction } from '../../mol-geo/geometry/marker-data';
 
 export const UnitsParams = {
     ...StructureParams,
diff --git a/src/mol-repr/structure/units-visual.ts b/src/mol-repr/structure/units-visual.ts
index 8f86a0556bff652edf3abef7f3f5f104bab5f37d..8b0266ba253ca72f96644decc3d39d7771017762 100644
--- a/src/mol-repr/structure/units-visual.ts
+++ b/src/mol-repr/structure/units-visual.ts
@@ -4,36 +4,36 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, Structure } from 'mol-model/structure';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
+import { Structure, Unit } from '../../mol-model/structure';
 import { RepresentationProps } from '../representation';
 import { Visual, VisualContext } from '../visual';
-import { StructureMeshParams, StructurePointsParams, StructureLinesParams, StructureDirectVolumeParams, StructureSpheresParams, StructureTextureMeshParams } from './representation';
-import { Loci, isEveryLoci, EmptyLoci } from 'mol-model/loci';
-import { createRenderObject, RenderObjectKindType, RenderObjectValuesType } from 'mol-gl/render-object';
-import { deepEqual, ValueCell } from 'mol-util';
-import { Interval } from 'mol-data/int';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Geometry, GeometryUtils } from 'mol-geo/geometry/geometry';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { PickingId } from 'mol-geo/geometry/picking';
-import { createMarkers, MarkerAction } from 'mol-geo/geometry/marker-data';
-import { createSizes } from 'mol-geo/geometry/size-data';
-import { createColors } from 'mol-geo/geometry/color-data';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { Points } from 'mol-geo/geometry/points/points';
-import { Lines } from 'mol-geo/geometry/lines/lines';
-import { DirectVolume } from 'mol-geo/geometry/direct-volume/direct-volume';
-import { VisualUpdateState } from 'mol-repr/util';
-import { Theme, createEmptyTheme } from 'mol-theme/theme';
-import { ColorTheme } from 'mol-theme/color';
-import { SizeTheme } from 'mol-theme/size';
-import { UnitsParams } from './units-representation';
-import { Mat4 } from 'mol-math/linear-algebra';
-import { Spheres } from 'mol-geo/geometry/spheres/spheres';
+import { Geometry, GeometryUtils } from '../../mol-geo/geometry/geometry';
+import { LocationIterator } from '../../mol-geo/util/location-iterator';
+import { Theme, createEmptyTheme } from '../../mol-theme/theme';
 import { createUnitsTransform, includesUnitKind } from './visual/util/common';
-import { Overpaint } from 'mol-theme/overpaint';
-import { Transparency } from 'mol-theme/transparency';
-import { TextureMesh } from 'mol-geo/geometry/texture-mesh/texture-mesh';
+import { createRenderObject, RenderObjectKindType, RenderObjectValuesType } from '../../mol-gl/render-object';
+import { UnitsParams } from './units-representation';
+import { PickingId } from '../../mol-geo/geometry/picking';
+import { Loci, isEveryLoci, EmptyLoci } from '../../mol-model/loci';
+import { Interval } from '../../mol-data/int';
+import { VisualUpdateState } from '../util';
+import { ColorTheme } from '../../mol-theme/color';
+import { createMarkers, MarkerAction } from '../../mol-geo/geometry/marker-data';
+import { ValueCell, deepEqual } from '../../mol-util';
+import { createSizes } from '../../mol-geo/geometry/size-data';
+import { createColors } from '../../mol-geo/geometry/color-data';
+import { Mat4 } from '../../mol-math/linear-algebra';
+import { Overpaint } from '../../mol-theme/overpaint';
+import { Transparency } from '../../mol-theme/transparency';
+import { StructureMeshParams, StructureSpheresParams, StructurePointsParams, StructureLinesParams, StructureDirectVolumeParams, StructureTextureMeshParams } from './representation';
+import { Mesh } from '../../mol-geo/geometry/mesh/mesh';
+import { SizeTheme } from '../../mol-theme/size';
+import { Spheres } from '../../mol-geo/geometry/spheres/spheres';
+import { Points } from '../../mol-geo/geometry/points/points';
+import { Lines } from '../../mol-geo/geometry/lines/lines';
+import { DirectVolume } from '../../mol-geo/geometry/direct-volume/direct-volume';
+import { TextureMesh } from '../../mol-geo/geometry/texture-mesh/texture-mesh';
 
 export type StructureGroup = { structure: Structure, group: Unit.SymmetryGroup }
 
diff --git a/src/mol-repr/structure/visual/carbohydrate-link-cylinder.ts b/src/mol-repr/structure/visual/carbohydrate-link-cylinder.ts
index 73cd6fe643016d4532dae2938660a55d23956009..094aef3eefdaaf8e9ca0ab45c9188b4f6bc8f93f 100644
--- a/src/mol-repr/structure/visual/carbohydrate-link-cylinder.ts
+++ b/src/mol-repr/structure/visual/carbohydrate-link-cylinder.ts
@@ -4,22 +4,22 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Structure, Link, StructureElement } from 'mol-model/structure';
-import { Loci, EmptyLoci } from 'mol-model/loci';
-import { Vec3 } from 'mol-math/linear-algebra';
+import { Structure, Link, StructureElement } from '../../../mol-model/structure';
+import { Loci, EmptyLoci } from '../../../mol-model/loci';
+import { Vec3 } from '../../../mol-math/linear-algebra';
 import { createLinkCylinderMesh, LinkCylinderParams } from './util/link';
-import { OrderedSet, Interval } from 'mol-data/int';
+import { OrderedSet, Interval } from '../../../mol-data/int';
 import { ComplexMeshVisual, ComplexVisual } from '../complex-visual';
-import { LinkType } from 'mol-model/structure/model/types';
-import { BitFlags } from 'mol-util';
+import { LinkType } from '../../../mol-model/structure/model/types';
+import { BitFlags } from '../../../mol-util';
 import { UnitsMeshParams } from '../units-visual';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { PickingId } from 'mol-geo/geometry/picking';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
+import { LocationIterator } from '../../../mol-geo/util/location-iterator';
+import { PickingId } from '../../../mol-geo/geometry/picking';
 import { VisualUpdateState } from '../../util';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
+import { VisualContext } from '../../../mol-repr/visual';
+import { Theme } from '../../../mol-theme/theme';
 
 function createCarbohydrateLinkCylinderMesh(ctx: VisualContext, structure: Structure, theme: Theme, props: PD.Values<CarbohydrateLinkParams>, mesh?: Mesh) {
     const { links, elements } = structure.carbohydrates
diff --git a/src/mol-repr/structure/visual/carbohydrate-symbol-mesh.ts b/src/mol-repr/structure/visual/carbohydrate-symbol-mesh.ts
index 10a0042d8b2c39b363ee647e52d1b8d767c141d4..db874c3fd941b8318f9bd7f96ecbf08a87ae2e82 100644
--- a/src/mol-repr/structure/visual/carbohydrate-symbol-mesh.ts
+++ b/src/mol-repr/structure/visual/carbohydrate-symbol-mesh.ts
@@ -4,27 +4,27 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Mat4, Vec3 } from 'mol-math/linear-algebra';
-import { Box, PerforatedBox } from 'mol-geo/primitive/box';
-import { OctagonalPyramid, PerforatedOctagonalPyramid } from 'mol-geo/primitive/pyramid';
-import { Star } from 'mol-geo/primitive/star';
-import { Octahedron, PerforatedOctahedron } from 'mol-geo/primitive/octahedron';
-import { DiamondPrism, PentagonalPrism, HexagonalPrism } from 'mol-geo/primitive/prism';
-import { Structure, StructureElement } from 'mol-model/structure';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder';
-import { getSaccharideShape, SaccharideShapes } from 'mol-model/structure/structure/carbohydrates/constants';
-import { addSphere } from 'mol-geo/geometry/mesh/builder/sphere';
+import { Mat4, Vec3 } from '../../../mol-math/linear-algebra';
+import { Box, PerforatedBox } from '../../../mol-geo/primitive/box';
+import { OctagonalPyramid, PerforatedOctagonalPyramid } from '../../../mol-geo/primitive/pyramid';
+import { Star } from '../../../mol-geo/primitive/star';
+import { Octahedron, PerforatedOctahedron } from '../../../mol-geo/primitive/octahedron';
+import { DiamondPrism, PentagonalPrism, HexagonalPrism } from '../../../mol-geo/primitive/prism';
+import { Structure, StructureElement } from '../../../mol-model/structure';
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
+import { MeshBuilder } from '../../../mol-geo/geometry/mesh/mesh-builder';
+import { getSaccharideShape, SaccharideShapes } from '../../../mol-model/structure/structure/carbohydrates/constants';
+import { addSphere } from '../../../mol-geo/geometry/mesh/builder/sphere';
 import { ComplexMeshParams, ComplexMeshVisual } from '../complex-visual';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
 import { ComplexVisual } from '../representation';
 import { VisualUpdateState } from '../../util';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { PickingId } from 'mol-geo/geometry/picking';
-import { OrderedSet, Interval } from 'mol-data/int';
-import { EmptyLoci, Loci } from 'mol-model/loci';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
+import { LocationIterator } from '../../../mol-geo/util/location-iterator';
+import { PickingId } from '../../../mol-geo/geometry/picking';
+import { OrderedSet, Interval } from '../../../mol-data/int';
+import { EmptyLoci, Loci } from '../../../mol-model/loci';
+import { VisualContext } from '../../../mol-repr/visual';
+import { Theme } from '../../../mol-theme/theme';
 import { getAltResidueLoci } from './util/common';
 
 const t = Mat4.identity()
diff --git a/src/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.ts b/src/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.ts
index 7a3d4e35a5274199d73aa36877da4172a214b866..460343df6f8c056173bf89cc6ad09d507356252c 100644
--- a/src/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.ts
+++ b/src/mol-repr/structure/visual/carbohydrate-terminal-link-cylinder.ts
@@ -4,22 +4,22 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Structure, Link, StructureElement } from 'mol-model/structure';
-import { Loci, EmptyLoci } from 'mol-model/loci';
-import { Vec3 } from 'mol-math/linear-algebra';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { VisualContext } from '../../visual';
+import { Structure, StructureElement, Link } from '../../../mol-model/structure';
+import { Theme } from '../../../mol-theme/theme';
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
+import { Vec3 } from '../../../mol-math/linear-algebra';
+import { BitFlags } from '../../../mol-util';
+import { LinkType } from '../../../mol-model/structure/model/types';
 import { createLinkCylinderMesh, LinkCylinderParams } from './util/link';
-import { OrderedSet, Interval } from 'mol-data/int';
-import { ComplexMeshVisual, ComplexVisual } from '../complex-visual';
-import { LinkType } from 'mol-model/structure/model/types';
-import { BitFlags } from 'mol-util';
 import { UnitsMeshParams } from '../units-visual';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { PickingId } from 'mol-geo/geometry/picking';
+import { ComplexVisual, ComplexMeshVisual } from '../complex-visual';
 import { VisualUpdateState } from '../../util';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
+import { LocationIterator } from '../../../mol-geo/util/location-iterator';
+import { OrderedSet, Interval } from '../../../mol-data/int';
+import { PickingId } from '../../../mol-geo/geometry/picking';
+import { EmptyLoci, Loci } from '../../../mol-model/loci';
 
 function createCarbohydrateTerminalLinkCylinderMesh(ctx: VisualContext, structure: Structure, theme: Theme, props: PD.Values<CarbohydrateTerminalLinkParams>, mesh?: Mesh) {
     const { terminalLinks, elements } = structure.carbohydrates
diff --git a/src/mol-repr/structure/visual/cross-link-restraint-cylinder.ts b/src/mol-repr/structure/visual/cross-link-restraint-cylinder.ts
index ccfb6c46ec9e170f9f4867156d1e017e3b7416aa..1971a36e4be76ace3231728529e93fa25ccfdd15 100644
--- a/src/mol-repr/structure/visual/cross-link-restraint-cylinder.ts
+++ b/src/mol-repr/structure/visual/cross-link-restraint-cylinder.ts
@@ -4,22 +4,21 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Link, Structure, StructureElement } from 'mol-model/structure';
-import { ComplexVisual } from '../representation';
-import { VisualUpdateState } from '../../util';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { VisualContext } from '../../visual';
+import { Structure, StructureElement, Link } from '../../../mol-model/structure';
+import { Theme } from '../../../mol-theme/theme';
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
+import { Vec3 } from '../../../mol-math/linear-algebra';
+import { BitFlags } from '../../../mol-util';
+import { LinkType } from '../../../mol-model/structure/model/types';
 import { createLinkCylinderMesh, LinkCylinderParams } from './util/link';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { Loci, EmptyLoci } from 'mol-model/loci';
-import { ComplexMeshVisual, ComplexMeshParams } from '../complex-visual';
-import { Interval } from 'mol-data/int';
-import { BitFlags } from 'mol-util';
-import { LinkType } from 'mol-model/structure/model/types';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { PickingId } from 'mol-geo/geometry/picking';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
+import { ComplexMeshParams, ComplexVisual, ComplexMeshVisual } from '../complex-visual';
+import { VisualUpdateState } from '../../util';
+import { LocationIterator } from '../../../mol-geo/util/location-iterator';
+import { PickingId } from '../../../mol-geo/geometry/picking';
+import { EmptyLoci, Loci } from '../../../mol-model/loci';
+import { Interval } from '../../../mol-data/int';
 
 function createCrossLinkRestraintCylinderMesh(ctx: VisualContext, structure: Structure, theme: Theme, props: PD.Values<CrossLinkRestraintParams>, mesh?: Mesh) {
 
diff --git a/src/mol-repr/structure/visual/element-point.ts b/src/mol-repr/structure/visual/element-point.ts
index 5292dfa8fb9fd51f34b0cab92788c401fd0a778a..1ee303c0672a26adf2d154c6bc8be9b195f2aeea 100644
--- a/src/mol-repr/structure/visual/element-point.ts
+++ b/src/mol-repr/structure/visual/element-point.ts
@@ -4,17 +4,16 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, Structure } from 'mol-model/structure';
-import { UnitsVisual } from '../representation';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { UnitsPointsParams, UnitsVisual, UnitsPointsVisual } from '../units-visual';
+import { VisualContext } from '../../visual';
+import { Unit, Structure } from '../../../mol-model/structure';
+import { Theme } from '../../../mol-theme/theme';
+import { Points } from '../../../mol-geo/geometry/points/points';
+import { PointsBuilder } from '../../../mol-geo/geometry/points/points-builder';
+import { Vec3 } from '../../../mol-math/linear-algebra';
+import { StructureElementIterator, getElementLoci, eachElement } from './util/element';
 import { VisualUpdateState } from '../../util';
-import { getElementLoci, StructureElementIterator, eachElement } from './util/element';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { UnitsPointsVisual, UnitsPointsParams } from '../units-visual';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Points } from 'mol-geo/geometry/points/points';
-import { PointsBuilder } from 'mol-geo/geometry/points/points-builder';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
 
 export const ElementPointParams = {
     ...UnitsPointsParams,
diff --git a/src/mol-repr/structure/visual/element-sphere.ts b/src/mol-repr/structure/visual/element-sphere.ts
index 6bff3a354f331036e868e6112026cc0b0cd4b616..cffa6ff9586048f3990bff930711e3b08dcd7cdb 100644
--- a/src/mol-repr/structure/visual/element-sphere.ts
+++ b/src/mol-repr/structure/visual/element-sphere.ts
@@ -5,12 +5,11 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { UnitsVisual } from '../representation';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { UnitsMeshParams, UnitsSpheresParams, UnitsVisual, UnitsSpheresVisual, UnitsMeshVisual } from '../units-visual';
+import { WebGLContext } from '../../../mol-gl/webgl/context';
+import { createElementSphereImpostor, StructureElementIterator, getElementLoci, eachElement, createElementSphereMesh } from './util/element';
 import { VisualUpdateState } from '../../util';
-import { createElementSphereMesh, eachElement, getElementLoci, StructureElementIterator, createElementSphereImpostor } from './util/element';
-import { UnitsMeshVisual, UnitsMeshParams, UnitsSpheresVisual, UnitsSpheresParams } from '../units-visual';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { WebGLContext } from 'mol-gl/webgl/context';
 
 export const ElementSphereParams = {
     ...UnitsMeshParams,
diff --git a/src/mol-repr/structure/visual/gaussian-density-volume.ts b/src/mol-repr/structure/visual/gaussian-density-volume.ts
index 40e2592a13516bdb707327dbb59381f7ae21b3bb..7c49603af3d7f8b8efe4c712a8100f251b3f8fdd 100644
--- a/src/mol-repr/structure/visual/gaussian-density-volume.ts
+++ b/src/mol-repr/structure/visual/gaussian-density-volume.ts
@@ -4,17 +4,17 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Structure } from 'mol-model/structure';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { VisualContext } from '../../visual';
+import { Structure } from '../../../mol-model/structure';
+import { Theme } from '../../../mol-theme/theme';
+import { GaussianDensityTextureProps, computeStructureGaussianDensityTexture, GaussianDensityTextureParams } from './util/gaussian';
+import { DirectVolume } from '../../../mol-geo/geometry/direct-volume/direct-volume';
+import { ComplexDirectVolumeParams, ComplexVisual, ComplexDirectVolumeVisual } from '../complex-visual';
+import { LocationIterator } from '../../../mol-geo/util/location-iterator';
+import { NullLocation } from '../../../mol-model/location';
+import { EmptyLoci } from '../../../mol-model/loci';
 import { VisualUpdateState } from '../../util';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { DirectVolume } from 'mol-geo/geometry/direct-volume/direct-volume';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
-import { ComplexVisual, ComplexDirectVolumeVisual, ComplexDirectVolumeParams } from '../complex-visual';
-import { EmptyLoci } from 'mol-model/loci';
-import { NullLocation } from 'mol-model/location';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { computeStructureGaussianDensityTexture, GaussianDensityTextureProps, GaussianDensityTextureParams } from './util/gaussian';
 
 async function createGaussianDensityVolume(ctx: VisualContext, structure: Structure, theme: Theme, props: GaussianDensityTextureProps, directVolume?: DirectVolume): Promise<DirectVolume> {
     const { runtime, webgl } = ctx
diff --git a/src/mol-repr/structure/visual/gaussian-surface-mesh.ts b/src/mol-repr/structure/visual/gaussian-surface-mesh.ts
index ae26f57dd3fdb3fbada4a32de7d1b48f8778c371..f937cedf0821f67793a91c868435774bad77f64e 100644
--- a/src/mol-repr/structure/visual/gaussian-surface-mesh.ts
+++ b/src/mol-repr/structure/visual/gaussian-surface-mesh.ts
@@ -4,23 +4,23 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, Structure } from 'mol-model/structure';
-import { UnitsVisual } from '../representation';
-import { VisualUpdateState } from '../../util';
-import { UnitsMeshVisual, UnitsMeshParams, UnitsTextureMeshParams, UnitsTextureMeshVisual } from '../units-visual';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { UnitsMeshParams, UnitsTextureMeshParams, UnitsVisual, UnitsMeshVisual, UnitsTextureMeshVisual } from '../units-visual';
+import { GaussianDensityParams, computeUnitGaussianDensity, GaussianDensityTextureProps, computeUnitGaussianDensityTexture2d } from './util/gaussian';
+import { WebGLContext } from '../../../mol-gl/webgl/context';
+import { VisualContext } from '../../visual';
+import { Unit, Structure } from '../../../mol-model/structure';
+import { Theme } from '../../../mol-theme/theme';
+import { GaussianDensityProps } from '../../../mol-math/geometry/gaussian-density';
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
+import { computeMarchingCubesMesh } from '../../../mol-geo/util/marching-cubes/algorithm';
 import { StructureElementIterator, getElementLoci, eachElement } from './util/element';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { computeMarchingCubesMesh } from 'mol-geo/util/marching-cubes/algorithm';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
-import { GaussianDensityProps, computeUnitGaussianDensity, GaussianDensityParams, computeUnitGaussianDensityTexture2d, GaussianDensityTextureProps } from './util/gaussian';
-import { WebGLContext } from 'mol-gl/webgl/context';
-import { TextureMesh } from 'mol-geo/geometry/texture-mesh/texture-mesh';
-import { calcActiveVoxels } from 'mol-gl/compute/marching-cubes/active-voxels';
-import { createHistogramPyramid } from 'mol-gl/compute/histogram-pyramid/reduction';
-import { createIsosurfaceBuffers } from 'mol-gl/compute/marching-cubes/isosurface';
-import { Sphere3D } from 'mol-math/geometry';
+import { VisualUpdateState } from '../../util';
+import { TextureMesh } from '../../../mol-geo/geometry/texture-mesh/texture-mesh';
+import { calcActiveVoxels } from '../../../mol-gl/compute/marching-cubes/active-voxels';
+import { createHistogramPyramid } from '../../../mol-gl/compute/histogram-pyramid/reduction';
+import { createIsosurfaceBuffers } from '../../../mol-gl/compute/marching-cubes/isosurface';
+import { Sphere3D } from '../../../mol-math/geometry';
 
 export const GaussianSurfaceMeshParams = {
     ...UnitsMeshParams,
diff --git a/src/mol-repr/structure/visual/gaussian-surface-wireframe.ts b/src/mol-repr/structure/visual/gaussian-surface-wireframe.ts
index 834b6fd41612761c1665a620955f1f224d038bca..241f86b8bf5b5839531ec7746821aa04f47cd5db 100644
--- a/src/mol-repr/structure/visual/gaussian-surface-wireframe.ts
+++ b/src/mol-repr/structure/visual/gaussian-surface-wireframe.ts
@@ -4,17 +4,17 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, Structure } from 'mol-model/structure';
-import { UnitsVisual } from '../representation';
-import { VisualUpdateState } from '../../util';
-import { UnitsLinesVisual, UnitsLinesParams } from '../units-visual';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { VisualContext } from '../../visual';
+import { Unit, Structure } from '../../../mol-model/structure';
+import { Theme } from '../../../mol-theme/theme';
+import { GaussianDensityProps } from '../../../mol-math/geometry/gaussian-density';
+import { Lines } from '../../../mol-geo/geometry/lines/lines';
+import { computeUnitGaussianDensity, GaussianDensityParams } from './util/gaussian';
+import { computeMarchingCubesLines } from '../../../mol-geo/util/marching-cubes/algorithm';
+import { UnitsLinesParams, UnitsVisual, UnitsLinesVisual } from '../units-visual';
 import { StructureElementIterator, getElementLoci, eachElement } from './util/element';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Lines } from 'mol-geo/geometry/lines/lines';
-import { computeMarchingCubesLines } from 'mol-geo/util/marching-cubes/algorithm';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
-import { GaussianDensityProps, GaussianDensityParams, computeUnitGaussianDensity } from './util/gaussian';
+import { VisualUpdateState } from '../../util';
 
 async function createGaussianWireframe(ctx: VisualContext, unit: Unit, structure: Structure, theme: Theme, props: GaussianDensityProps, lines?: Lines): Promise<Lines> {
     const { smoothness } = props
diff --git a/src/mol-repr/structure/visual/inter-unit-link-cylinder.ts b/src/mol-repr/structure/visual/inter-unit-link-cylinder.ts
index 90999a7f28ddfe8e4ff180e5f234ef69b30ee866..775534ce9864a7887a2c30974f27367407627ec7 100644
--- a/src/mol-repr/structure/visual/inter-unit-link-cylinder.ts
+++ b/src/mol-repr/structure/visual/inter-unit-link-cylinder.ts
@@ -4,20 +4,19 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Link, Structure, StructureElement } from 'mol-model/structure';
-import { ComplexVisual } from '../representation';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { VisualContext } from '../../visual';
+import { Structure, StructureElement, Link } from '../../../mol-model/structure';
+import { Theme } from '../../../mol-theme/theme';
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
+import { Vec3 } from '../../../mol-math/linear-algebra';
+import { BitFlags } from '../../../mol-util';
+import { createLinkCylinderMesh, LinkCylinderParams, LinkIterator } from './util/link';
+import { ComplexMeshParams, ComplexVisual, ComplexMeshVisual } from '../complex-visual';
 import { VisualUpdateState } from '../../util';
-import { createLinkCylinderMesh, LinkIterator, LinkCylinderParams } from './util/link';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { Loci, EmptyLoci } from 'mol-model/loci';
-import { ComplexMeshVisual, ComplexMeshParams } from '../complex-visual';
-import { Interval, OrderedSet } from 'mol-data/int';
-import { BitFlags } from 'mol-util';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { PickingId } from 'mol-geo/geometry/picking';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
+import { PickingId } from '../../../mol-geo/geometry/picking';
+import { EmptyLoci, Loci } from '../../../mol-model/loci';
+import { Interval, OrderedSet } from '../../../mol-data/int';
 
 function createInterUnitLinkCylinderMesh(ctx: VisualContext, structure: Structure, theme: Theme, props: PD.Values<InterUnitLinkParams>, mesh?: Mesh) {
     const links = structure.links
diff --git a/src/mol-repr/structure/visual/intra-unit-link-cylinder.ts b/src/mol-repr/structure/visual/intra-unit-link-cylinder.ts
index 7cbe60c189d4455ae3e134abbd682a02a1dd3adc..a881695b133cd20e6cc7276fbeb2785d35e8186c 100644
--- a/src/mol-repr/structure/visual/intra-unit-link-cylinder.ts
+++ b/src/mol-repr/structure/visual/intra-unit-link-cylinder.ts
@@ -5,20 +5,19 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Unit, Link, StructureElement, Structure } from 'mol-model/structure';
-import { UnitsVisual } from '../representation';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { VisualContext } from '../../visual';
+import { Unit, Structure, StructureElement, Link } from '../../../mol-model/structure';
+import { Theme } from '../../../mol-theme/theme';
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
+import { Vec3 } from '../../../mol-math/linear-algebra';
+import { BitFlags } from '../../../mol-util';
+import { createLinkCylinderMesh, LinkCylinderParams, LinkIterator } from './util/link';
+import { UnitsMeshParams, UnitsVisual, UnitsMeshVisual, StructureGroup } from '../units-visual';
 import { VisualUpdateState } from '../../util';
-import { createLinkCylinderMesh, LinkIterator, LinkCylinderParams } from './util/link';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { Loci, EmptyLoci } from 'mol-model/loci';
-import { UnitsMeshVisual, UnitsMeshParams, StructureGroup } from '../units-visual';
-import { Interval, OrderedSet } from 'mol-data/int';
-import { BitFlags } from 'mol-util';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { PickingId } from 'mol-geo/geometry/picking';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
+import { PickingId } from '../../../mol-geo/geometry/picking';
+import { EmptyLoci, Loci } from '../../../mol-model/loci';
+import { Interval, OrderedSet } from '../../../mol-data/int';
 
 function createIntraUnitLinkCylinderMesh(ctx: VisualContext, unit: Unit, structure: Structure, theme: Theme, props: PD.Values<IntraUnitLinkParams>, mesh?: Mesh) {
     if (!Unit.isAtomic(unit)) return Mesh.createEmpty(mesh)
diff --git a/src/mol-repr/structure/visual/molecular-surface-mesh.ts b/src/mol-repr/structure/visual/molecular-surface-mesh.ts
index aea6b6de911d54e3b67996e1cb028cf1c9881db8..2aa8c863eace962a891c3ec2a47b34c01b0b799d 100644
--- a/src/mol-repr/structure/visual/molecular-surface-mesh.ts
+++ b/src/mol-repr/structure/visual/molecular-surface-mesh.ts
@@ -4,18 +4,17 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, Structure } from 'mol-model/structure';
-import { UnitsVisual } from '../representation';
-import { VisualUpdateState } from '../../util';
-import { UnitsMeshVisual, UnitsMeshParams, UnitsTextureMeshParams } from '../units-visual';
-import { StructureElementIterator, getElementLoci, eachElement } from './util/element';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { computeMarchingCubesMesh } from 'mol-geo/util/marching-cubes/algorithm';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { UnitsMeshParams, UnitsTextureMeshParams, UnitsVisual, UnitsMeshVisual } from '../units-visual';
+import { MolecularSurfaceCalculationParams, MolecularSurfaceCalculationProps } from '../../../mol-math/geometry/molecular-surface';
+import { VisualContext } from '../../visual';
+import { Unit, Structure } from '../../../mol-model/structure';
+import { Theme } from '../../../mol-theme/theme';
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
 import { computeUnitMolecularSurface } from './util/molecular-surface';
-import { MolecularSurfaceCalculationParams, MolecularSurfaceCalculationProps } from 'mol-math/geometry/molecular-surface';
+import { computeMarchingCubesMesh } from '../../../mol-geo/util/marching-cubes/algorithm';
+import { StructureElementIterator, getElementLoci, eachElement } from './util/element';
+import { VisualUpdateState } from '../../util';
 
 export const MolecularSurfaceMeshParams = {
     ...UnitsMeshParams,
diff --git a/src/mol-repr/structure/visual/nucleotide-block-mesh.ts b/src/mol-repr/structure/visual/nucleotide-block-mesh.ts
index f23f1424ef64516424b4be5826a2a8f8f0df7232..885e01805c39cc7a2ec860e6d23035650b537729 100644
--- a/src/mol-repr/structure/visual/nucleotide-block-mesh.ts
+++ b/src/mol-repr/structure/visual/nucleotide-block-mesh.ts
@@ -4,22 +4,21 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, Structure, ElementIndex } from 'mol-model/structure';
-import { UnitsVisual } from '../representation';
-import { Vec3, Mat4 } from 'mol-math/linear-algebra';
-import { Segmentation } from 'mol-data/int';
-import { isNucleic, isPurinBase, isPyrimidineBase } from 'mol-model/structure/model/types';
-import { UnitsMeshVisual, UnitsMeshParams } from '../units-visual';
-import { NucleotideLocationIterator, eachNucleotideElement, getNucleotideElementLoci } from './util/nucleotide';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Box } from 'mol-geo/primitive/box';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder';
-import { addCylinder } from 'mol-geo/geometry/mesh/builder/cylinder';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
-import { VisualUpdateState } from 'mol-repr/util';
-import { CylinderProps } from 'mol-geo/primitive/cylinder';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { Vec3, Mat4 } from '../../../mol-math/linear-algebra';
+import { Box } from '../../../mol-geo/primitive/box';
+import { VisualContext } from '../../visual';
+import { Unit, Structure, ElementIndex } from '../../../mol-model/structure';
+import { Theme } from '../../../mol-theme/theme';
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
+import { MeshBuilder } from '../../../mol-geo/geometry/mesh/mesh-builder';
+import { Segmentation } from '../../../mol-data/int';
+import { CylinderProps } from '../../../mol-geo/primitive/cylinder';
+import { isNucleic, isPurinBase, isPyrimidineBase } from '../../../mol-model/structure/model/types';
+import { addCylinder } from '../../../mol-geo/geometry/mesh/builder/cylinder';
+import { UnitsMeshParams, UnitsVisual, UnitsMeshVisual } from '../units-visual';
+import { NucleotideLocationIterator, getNucleotideElementLoci, eachNucleotideElement } from './util/nucleotide';
+import { VisualUpdateState } from '../../util';
 
 const p1 = Vec3.zero()
 const p2 = Vec3.zero()
diff --git a/src/mol-repr/structure/visual/nucleotide-ring-mesh.ts b/src/mol-repr/structure/visual/nucleotide-ring-mesh.ts
index d3b246d5c68bea5bd3751d12a255f4e225a2616d..992b107cf2ee1e219370aee2d3f1b6c0fb20434f 100644
--- a/src/mol-repr/structure/visual/nucleotide-ring-mesh.ts
+++ b/src/mol-repr/structure/visual/nucleotide-ring-mesh.ts
@@ -4,23 +4,22 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, Structure, ElementIndex } from 'mol-model/structure';
-import { UnitsVisual } from '../representation';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { Segmentation } from 'mol-data/int';
-import { isNucleic, isPurinBase, isPyrimidineBase } from 'mol-model/structure/model/types';
-import { UnitsMeshVisual, UnitsMeshParams } from '../units-visual';
-import { NucleotideLocationIterator, eachNucleotideElement, getNucleotideElementLoci } from './util/nucleotide';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder';
-import { addCylinder } from 'mol-geo/geometry/mesh/builder/cylinder';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
-import { VisualUpdateState } from 'mol-repr/util';
-import { CylinderProps } from 'mol-geo/primitive/cylinder';
-import { NumberArray } from 'mol-util/type-helpers';
-import { addSphere } from 'mol-geo/geometry/mesh/builder/sphere';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { Vec3 } from '../../../mol-math/linear-algebra';
+import { NumberArray } from '../../../mol-util/type-helpers';
+import { VisualContext } from '../../visual';
+import { Unit, Structure, ElementIndex } from '../../../mol-model/structure';
+import { Theme } from '../../../mol-theme/theme';
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
+import { MeshBuilder } from '../../../mol-geo/geometry/mesh/mesh-builder';
+import { Segmentation } from '../../../mol-data/int';
+import { CylinderProps } from '../../../mol-geo/primitive/cylinder';
+import { isNucleic, isPurinBase, isPyrimidineBase } from '../../../mol-model/structure/model/types';
+import { addCylinder } from '../../../mol-geo/geometry/mesh/builder/cylinder';
+import { addSphere } from '../../../mol-geo/geometry/mesh/builder/sphere';
+import { UnitsMeshParams, UnitsVisual, UnitsMeshVisual } from '../units-visual';
+import { NucleotideLocationIterator, getNucleotideElementLoci, eachNucleotideElement } from './util/nucleotide';
+import { VisualUpdateState } from '../../util';
 
 const pTrace = Vec3.zero()
 const pN1 = Vec3.zero()
diff --git a/src/mol-repr/structure/visual/polymer-backbone-cylinder.ts b/src/mol-repr/structure/visual/polymer-backbone-cylinder.ts
index ce98d3d40174b412a73abff94212c3789c9c9634..830a0266b21679af9fb46531e13b139fdc07a69b 100644
--- a/src/mol-repr/structure/visual/polymer-backbone-cylinder.ts
+++ b/src/mol-repr/structure/visual/polymer-backbone-cylinder.ts
@@ -4,21 +4,20 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, Structure } from 'mol-model/structure';
-import { UnitsVisual } from '../representation';
-import { VisualUpdateState } from '../../util';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { VisualContext } from '../../visual';
+import { Unit, Structure } from '../../../mol-model/structure';
+import { Theme } from '../../../mol-theme/theme';
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
+import { MeshBuilder } from '../../../mol-geo/geometry/mesh/mesh-builder';
+import { Vec3 } from '../../../mol-math/linear-algebra';
+import { CylinderProps } from '../../../mol-geo/primitive/cylinder';
 import { PolymerBackboneIterator } from './util/polymer';
-import { getElementLoci, eachElement, StructureElementIterator } from './util/element';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { UnitsMeshVisual, UnitsMeshParams } from '../units-visual';
-import { OrderedSet } from 'mol-data/int';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder';
-import { CylinderProps } from 'mol-geo/primitive/cylinder';
-import { addCylinder } from 'mol-geo/geometry/mesh/builder/cylinder';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
+import { OrderedSet } from '../../../mol-data/int';
+import { addCylinder } from '../../../mol-geo/geometry/mesh/builder/cylinder';
+import { UnitsMeshParams, UnitsVisual, UnitsMeshVisual } from '../units-visual';
+import { StructureElementIterator, getElementLoci, eachElement } from './util/element';
+import { VisualUpdateState } from '../../util';
 
 export const PolymerBackboneCylinderParams = {
     sizeFactor: PD.Numeric(0.3, { min: 0, max: 10, step: 0.01 }),
diff --git a/src/mol-repr/structure/visual/polymer-direction-wedge.ts b/src/mol-repr/structure/visual/polymer-direction-wedge.ts
index 46523a359151140fdd2acd8b1a2e2b179a3fbea7..cc58aebdabce44193032647542fd6f13319181dd 100644
--- a/src/mol-repr/structure/visual/polymer-direction-wedge.ts
+++ b/src/mol-repr/structure/visual/polymer-direction-wedge.ts
@@ -4,19 +4,18 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, Structure } from 'mol-model/structure';
-import { UnitsVisual } from '../representation';
-import { PolymerTraceIterator, createCurveSegmentState, interpolateCurveSegment, PolymerLocationIterator, getPolymerElementLoci, eachPolymerElement } from './util/polymer';
-import { Vec3, Mat4 } from 'mol-math/linear-algebra';
-import { SecondaryStructureType, isNucleic } from 'mol-model/structure/model/types';
-import { UnitsMeshVisual, UnitsMeshParams } from '../units-visual';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Wedge } from 'mol-geo/primitive/wedge';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
-import { VisualUpdateState } from 'mol-repr/util';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { Mat4, Vec3 } from '../../../mol-math/linear-algebra';
+import { Wedge } from '../../../mol-geo/primitive/wedge';
+import { VisualContext } from '../../visual';
+import { Unit, Structure } from '../../../mol-model/structure';
+import { Theme } from '../../../mol-theme/theme';
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
+import { MeshBuilder } from '../../../mol-geo/geometry/mesh/mesh-builder';
+import { createCurveSegmentState, PolymerTraceIterator, interpolateCurveSegment, PolymerLocationIterator, getPolymerElementLoci, eachPolymerElement } from './util/polymer';
+import { isNucleic, SecondaryStructureType } from '../../../mol-model/structure/model/types';
+import { UnitsMeshParams, UnitsVisual, UnitsMeshVisual } from '../units-visual';
+import { VisualUpdateState } from '../../util';
 
 const t = Mat4.identity()
 const sVec = Vec3.zero()
diff --git a/src/mol-repr/structure/visual/polymer-gap-cylinder.ts b/src/mol-repr/structure/visual/polymer-gap-cylinder.ts
index 28dddc9f1eefcede5512fae57dc399d14de9d660..957fda462efc6decef15842ba676ba6c7ab255cc 100644
--- a/src/mol-repr/structure/visual/polymer-gap-cylinder.ts
+++ b/src/mol-repr/structure/visual/polymer-gap-cylinder.ts
@@ -4,21 +4,20 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, Structure } from 'mol-model/structure';
-import { UnitsVisual } from '../representation';
-import { VisualUpdateState } from '../../util';
-import { PolymerGapIterator, PolymerGapLocationIterator, eachPolymerGapElement, getPolymerGapElementLoci } from './util/polymer';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { UnitsMeshVisual, UnitsMeshParams } from '../units-visual';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { VisualContext } from '../../visual';
+import { Unit, Structure } from '../../../mol-model/structure';
+import { Theme } from '../../../mol-theme/theme';
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
+import { MeshBuilder } from '../../../mol-geo/geometry/mesh/mesh-builder';
+import { Vec3 } from '../../../mol-math/linear-algebra';
+import { CylinderProps } from '../../../mol-geo/primitive/cylinder';
+import { PolymerGapIterator, PolymerGapLocationIterator, getPolymerGapElementLoci, eachPolymerGapElement } from './util/polymer';
+import { addSphere } from '../../../mol-geo/geometry/mesh/builder/sphere';
+import { addFixedCountDashedCylinder } from '../../../mol-geo/geometry/mesh/builder/cylinder';
+import { UnitsMeshParams, UnitsVisual, UnitsMeshVisual } from '../units-visual';
 import { LinkCylinderParams } from './util/link';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder';
-import { CylinderProps } from 'mol-geo/primitive/cylinder';
-import { addSphere } from 'mol-geo/geometry/mesh/builder/sphere';
-import { addFixedCountDashedCylinder } from 'mol-geo/geometry/mesh/builder/cylinder';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
+import { VisualUpdateState } from '../../util';
 
 const segmentCount = 10
 
diff --git a/src/mol-repr/structure/visual/polymer-trace-mesh.ts b/src/mol-repr/structure/visual/polymer-trace-mesh.ts
index 19b4e85d1d680d74dfcdfce84c3af6c330ceeff1..16793765b52f454f5123e5a972128dcd30bf43ae 100644
--- a/src/mol-repr/structure/visual/polymer-trace-mesh.ts
+++ b/src/mol-repr/structure/visual/polymer-trace-mesh.ts
@@ -4,20 +4,19 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, Structure } from 'mol-model/structure';
-import { UnitsVisual } from '../representation';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { VisualContext } from '../../visual';
+import { Unit, Structure } from '../../../mol-model/structure';
+import { Theme } from '../../../mol-theme/theme';
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
+import { MeshBuilder } from '../../../mol-geo/geometry/mesh/mesh-builder';
+import { createCurveSegmentState, PolymerTraceIterator, interpolateCurveSegment, interpolateSizes, PolymerLocationIterator, getPolymerElementLoci, eachPolymerElement } from './util/polymer';
+import { isNucleic, SecondaryStructureType } from '../../../mol-model/structure/model/types';
+import { addSheet } from '../../../mol-geo/geometry/mesh/builder/sheet';
+import { addTube } from '../../../mol-geo/geometry/mesh/builder/tube';
+import { UnitsMeshParams, UnitsVisual, UnitsMeshVisual, StructureGroup } from '../units-visual';
 import { VisualUpdateState } from '../../util';
-import { PolymerTraceIterator, createCurveSegmentState, interpolateCurveSegment, PolymerLocationIterator, getPolymerElementLoci, eachPolymerElement, interpolateSizes } from './util/polymer';
-import { SecondaryStructureType, isNucleic } from 'mol-model/structure/model/types';
-import { UnitsMeshVisual, UnitsMeshParams, StructureGroup } from '../units-visual';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder';
-import { addSheet } from 'mol-geo/geometry/mesh/builder/sheet';
-import { addTube } from 'mol-geo/geometry/mesh/builder/tube';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
-import { ComputedSecondaryStructure } from 'mol-model-props/computed/secondary-structure';
+import { ComputedSecondaryStructure } from '../../../mol-model-props/computed/secondary-structure';
 
 export const PolymerTraceMeshParams = {
     sizeFactor: PD.Numeric(0.2, { min: 0, max: 10, step: 0.01 }),
diff --git a/src/mol-repr/structure/visual/polymer-tube-mesh.ts b/src/mol-repr/structure/visual/polymer-tube-mesh.ts
index 4678499c11b606519af8862339a8fc2892aa3502..dd9184143cfe6e91ba2d5cc3b0803883e9c3155c 100644
--- a/src/mol-repr/structure/visual/polymer-tube-mesh.ts
+++ b/src/mol-repr/structure/visual/polymer-tube-mesh.ts
@@ -4,18 +4,17 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, Structure } from 'mol-model/structure';
-import { UnitsVisual } from '../representation';
+import { ParamDefinition as PD } from '../../../mol-util/param-definition';
+import { VisualContext } from '../../visual';
+import { Unit, Structure } from '../../../mol-model/structure';
+import { Theme } from '../../../mol-theme/theme';
+import { Mesh } from '../../../mol-geo/geometry/mesh/mesh';
+import { MeshBuilder } from '../../../mol-geo/geometry/mesh/mesh-builder';
+import { createCurveSegmentState, PolymerTraceIterator, interpolateCurveSegment, interpolateSizes, PolymerLocationIterator, getPolymerElementLoci, eachPolymerElement } from './util/polymer';
+import { isNucleic } from '../../../mol-model/structure/model/types';
+import { addTube } from '../../../mol-geo/geometry/mesh/builder/tube';
+import { UnitsMeshParams, UnitsVisual, UnitsMeshVisual } from '../units-visual';
 import { VisualUpdateState } from '../../util';
-import { PolymerTraceIterator, createCurveSegmentState, interpolateCurveSegment, PolymerLocationIterator, getPolymerElementLoci, eachPolymerElement, interpolateSizes } from './util/polymer';
-import { isNucleic } from 'mol-model/structure/model/types';
-import { UnitsMeshVisual, UnitsMeshParams } from '../units-visual';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder';
-import { addTube } from 'mol-geo/geometry/mesh/builder/tube';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
 
 export const PolymerTubeMeshParams = {
     sizeFactor: PD.Numeric(0.2, { min: 0, max: 10, step: 0.01 }),
diff --git a/src/mol-repr/structure/visual/util/common.ts b/src/mol-repr/structure/visual/util/common.ts
index 7aaa308dafc2f6dc70d7c765279d3e684caedb77..de52db7f568b1b85178b57c91e52eed3573f7091 100644
--- a/src/mol-repr/structure/visual/util/common.ts
+++ b/src/mol-repr/structure/visual/util/common.ts
@@ -4,12 +4,12 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, Structure, ElementIndex, StructureElement } from 'mol-model/structure';
-import { Mat4 } from 'mol-math/linear-algebra';
-import { TransformData, createTransform } from 'mol-geo/geometry/transform-data';
-import { OrderedSet, SortedArray } from 'mol-data/int';
-import { EmptyLoci, Loci } from 'mol-model/loci';
-import { PhysicalSizeTheme } from 'mol-theme/size/physical';
+import { Unit, Structure, ElementIndex, StructureElement } from '../../../../mol-model/structure';
+import { Mat4 } from '../../../../mol-math/linear-algebra';
+import { TransformData, createTransform } from '../../../../mol-geo/geometry/transform-data';
+import { OrderedSet, SortedArray } from '../../../../mol-data/int';
+import { EmptyLoci, Loci } from '../../../../mol-model/loci';
+import { PhysicalSizeTheme } from '../../../../mol-theme/size/physical';
 
 /** Return a Loci for the elements of a whole residue the elementIndex belongs to. */
 export function getResidueLoci(structure: Structure, unit: Unit.Atomic, elementIndex: ElementIndex): Loci {
diff --git a/src/mol-repr/structure/visual/util/element.ts b/src/mol-repr/structure/visual/util/element.ts
index 1ce958ec96e37b0cf6612f086c7ec72132c50dda..d70dc06a3b71b61f1bcf6c4b8b0d35c14b8deeb3 100644
--- a/src/mol-repr/structure/visual/util/element.ts
+++ b/src/mol-repr/structure/visual/util/element.ts
@@ -4,21 +4,21 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Vec3 } from 'mol-math/linear-algebra';
-import { Unit, StructureElement, Structure } from 'mol-model/structure';
-import { Loci, EmptyLoci } from 'mol-model/loci';
-import { Interval, OrderedSet } from 'mol-data/int';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { sphereVertexCount } from 'mol-geo/primitive/sphere';
-import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder';
-import { addSphere } from 'mol-geo/geometry/mesh/builder/sphere';
-import { PickingId } from 'mol-geo/geometry/picking';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { VisualContext } from 'mol-repr/visual';
-import { Theme } from 'mol-theme/theme';
-import { StructureGroup } from 'mol-repr/structure/units-visual';
-import { Spheres } from 'mol-geo/geometry/spheres/spheres';
-import { SpheresBuilder } from 'mol-geo/geometry/spheres/spheres-builder';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
+import { Unit, StructureElement, Structure } from '../../../../mol-model/structure';
+import { Loci, EmptyLoci } from '../../../../mol-model/loci';
+import { Interval, OrderedSet } from '../../../../mol-data/int';
+import { Mesh } from '../../../../mol-geo/geometry/mesh/mesh';
+import { sphereVertexCount } from '../../../../mol-geo/primitive/sphere';
+import { MeshBuilder } from '../../../../mol-geo/geometry/mesh/mesh-builder';
+import { addSphere } from '../../../../mol-geo/geometry/mesh/builder/sphere';
+import { PickingId } from '../../../../mol-geo/geometry/picking';
+import { LocationIterator } from '../../../../mol-geo/util/location-iterator';
+import { VisualContext } from '../../../../mol-repr/visual';
+import { Theme } from '../../../../mol-theme/theme';
+import { StructureGroup } from '../../../../mol-repr/structure/units-visual';
+import { Spheres } from '../../../../mol-geo/geometry/spheres/spheres';
+import { SpheresBuilder } from '../../../../mol-geo/geometry/spheres/spheres-builder';
 
 export interface ElementSphereMeshProps {
     detail: number,
diff --git a/src/mol-repr/structure/visual/util/gaussian.ts b/src/mol-repr/structure/visual/util/gaussian.ts
index 2011ee1e1e7716c89e56ce08435cda4310b1d802..401e68a60bfebe196deb6e8b66c41e7bbe3f8d43 100644
--- a/src/mol-repr/structure/visual/util/gaussian.ts
+++ b/src/mol-repr/structure/visual/util/gaussian.ts
@@ -4,13 +4,13 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, Structure } from 'mol-model/structure';
-import { GaussianDensity } from 'mol-math/geometry/gaussian-density';
-import { Task } from 'mol-task';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { GaussianDensityTexture, GaussianDensityTexture2d } from 'mol-math/geometry/gaussian-density/gpu';
-import { Texture } from 'mol-gl/webgl/texture';
-import { WebGLContext } from 'mol-gl/webgl/context';
+import { Unit, Structure } from '../../../../mol-model/structure';
+import { GaussianDensity } from '../../../../mol-math/geometry/gaussian-density';
+import { Task } from '../../../../mol-task';
+import { ParamDefinition as PD } from '../../../../mol-util/param-definition';
+import { GaussianDensityTexture, GaussianDensityTexture2d } from '../../../../mol-math/geometry/gaussian-density/gpu';
+import { Texture } from '../../../../mol-gl/webgl/texture';
+import { WebGLContext } from '../../../../mol-gl/webgl/context';
 import { getUnitConformationAndRadius, getStructureConformationAndRadius } from './common';
 
 export const GaussianDensityParams = {
diff --git a/src/mol-repr/structure/visual/util/link.ts b/src/mol-repr/structure/visual/util/link.ts
index df61f267d2e2a0da909d8409aab8b349de8ecd36..0952cd022dad7ebe1f2b8ec28a74f0da585d7366 100644
--- a/src/mol-repr/structure/visual/util/link.ts
+++ b/src/mol-repr/structure/visual/util/link.ts
@@ -4,16 +4,16 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Vec3 } from 'mol-math/linear-algebra';
-import { LinkType } from 'mol-model/structure/model/types';
-import { Unit, StructureElement, Structure, Link } from 'mol-model/structure';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder';
-import { CylinderProps } from 'mol-geo/primitive/cylinder';
-import { addFixedCountDashedCylinder, addCylinder, addDoubleCylinder } from 'mol-geo/geometry/mesh/builder/cylinder';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { VisualContext } from 'mol-repr/visual';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
+import { LinkType } from '../../../../mol-model/structure/model/types';
+import { Unit, StructureElement, Structure, Link } from '../../../../mol-model/structure';
+import { ParamDefinition as PD } from '../../../../mol-util/param-definition';
+import { Mesh } from '../../../../mol-geo/geometry/mesh/mesh';
+import { MeshBuilder } from '../../../../mol-geo/geometry/mesh/mesh-builder';
+import { CylinderProps } from '../../../../mol-geo/primitive/cylinder';
+import { addFixedCountDashedCylinder, addCylinder, addDoubleCylinder } from '../../../../mol-geo/geometry/mesh/builder/cylinder';
+import { LocationIterator } from '../../../../mol-geo/util/location-iterator';
+import { VisualContext } from '../../../../mol-repr/visual';
 
 export const LinkCylinderParams = {
     linkScale: PD.Numeric(0.4, { min: 0, max: 1, step: 0.1 }),
diff --git a/src/mol-repr/structure/visual/util/molecular-surface.ts b/src/mol-repr/structure/visual/util/molecular-surface.ts
index a1b54e9ff690de393d97b2ed9524861d04b427cb..4444ec06142e2b76c507c79dc2dc538f46df4e99 100644
--- a/src/mol-repr/structure/visual/util/molecular-surface.ts
+++ b/src/mol-repr/structure/visual/util/molecular-surface.ts
@@ -4,12 +4,12 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit } from 'mol-model/structure';
-import { Task, RuntimeContext } from 'mol-task';
+import { Unit } from '../../../../mol-model/structure';
+import { Task, RuntimeContext } from '../../../../mol-task';
 import { getUnitConformationAndRadius } from './common';
-import { PositionData, DensityData } from 'mol-math/geometry';
-import { MolecularSurfaceCalculationProps, calcMolecularSurface } from 'mol-math/geometry/molecular-surface';
-import { OrderedSet } from 'mol-data/int';
+import { PositionData, DensityData } from '../../../../mol-math/geometry';
+import { MolecularSurfaceCalculationProps, calcMolecularSurface } from '../../../../mol-math/geometry/molecular-surface';
+import { OrderedSet } from '../../../../mol-data/int';
 
 function getPositionDataAndMaxRadius(unit: Unit, props: MolecularSurfaceCalculationProps) {
     const { position, radius } = getUnitConformationAndRadius(unit)
diff --git a/src/mol-repr/structure/visual/util/nucleotide.ts b/src/mol-repr/structure/visual/util/nucleotide.ts
index f97703e71dd3bce59823b0439fbba85e35bcacbe..e3d968dea150cd69f235c9075c308792f9e0cb25 100644
--- a/src/mol-repr/structure/visual/util/nucleotide.ts
+++ b/src/mol-repr/structure/visual/util/nucleotide.ts
@@ -4,12 +4,12 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, StructureElement, Structure } from 'mol-model/structure';
-import { Loci, EmptyLoci } from 'mol-model/loci';
-import { OrderedSet, Interval } from 'mol-data/int';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { PickingId } from 'mol-geo/geometry/picking';
-import { StructureGroup } from 'mol-repr/structure/units-visual';
+import { Unit, StructureElement, Structure } from '../../../../mol-model/structure';
+import { Loci, EmptyLoci } from '../../../../mol-model/loci';
+import { OrderedSet, Interval } from '../../../../mol-data/int';
+import { LocationIterator } from '../../../../mol-geo/util/location-iterator';
+import { PickingId } from '../../../../mol-geo/geometry/picking';
+import { StructureGroup } from '../../../../mol-repr/structure/units-visual';
 import { getResidueLoci } from './common';
 
 export namespace NucleotideLocationIterator {
diff --git a/src/mol-repr/structure/visual/util/polymer.ts b/src/mol-repr/structure/visual/util/polymer.ts
index 5734c8dee6464fd4c6ffe60c26f38129f139f9be..f025da7b1051f81df491a3a6658341f4a8f55436 100644
--- a/src/mol-repr/structure/visual/util/polymer.ts
+++ b/src/mol-repr/structure/visual/util/polymer.ts
@@ -4,13 +4,13 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, ElementIndex, StructureElement, Link, Structure } from 'mol-model/structure';
-import SortedRanges from 'mol-data/int/sorted-ranges';
-import { OrderedSet, Interval } from 'mol-data/int';
-import { EmptyLoci, Loci } from 'mol-model/loci';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { PickingId } from 'mol-geo/geometry/picking';
-import { StructureGroup } from 'mol-repr/structure/units-visual';
+import { Unit, ElementIndex, StructureElement, Link, Structure } from '../../../../mol-model/structure';
+import SortedRanges from '../../../../mol-data/int/sorted-ranges';
+import { OrderedSet, Interval } from '../../../../mol-data/int';
+import { EmptyLoci, Loci } from '../../../../mol-model/loci';
+import { LocationIterator } from '../../../../mol-geo/util/location-iterator';
+import { PickingId } from '../../../../mol-geo/geometry/picking';
+import { StructureGroup } from '../../../structure/units-visual';
 import { getResidueLoci } from './common';
 
 export * from './polymer/backbone-iterator'
diff --git a/src/mol-repr/structure/visual/util/polymer/backbone-iterator.ts b/src/mol-repr/structure/visual/util/polymer/backbone-iterator.ts
index 103246a32fcc74c9c85abd2a43bb4e9bbf4a7c6e..dcba744057537dabb3a73fd098ab1f5e02dad15a 100644
--- a/src/mol-repr/structure/visual/util/polymer/backbone-iterator.ts
+++ b/src/mol-repr/structure/visual/util/polymer/backbone-iterator.ts
@@ -4,10 +4,10 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, StructureElement, ElementIndex, ResidueIndex } from 'mol-model/structure';
-import { Segmentation } from 'mol-data/int';
-import Iterator from 'mol-data/iterator';
-import SortedRanges from 'mol-data/int/sorted-ranges';
+import { Unit, StructureElement, ElementIndex, ResidueIndex } from '../../../../../mol-model/structure';
+import { Segmentation } from '../../../../../mol-data/int';
+import Iterator from '../../../../../mol-data/iterator';
+import SortedRanges from '../../../../../mol-data/int/sorted-ranges';
 import { getPolymerRanges } from '../polymer';
 
 /** Iterates over consecutive pairs of residues/coarse elements in polymers */
diff --git a/src/mol-repr/structure/visual/util/polymer/curve-segment.ts b/src/mol-repr/structure/visual/util/polymer/curve-segment.ts
index 07ebb90f650415900756038b8a3d779e3df85a9a..b096422dcab5a3eab1771bd0c61475c14c9a1eaf 100644
--- a/src/mol-repr/structure/visual/util/polymer/curve-segment.ts
+++ b/src/mol-repr/structure/visual/util/polymer/curve-segment.ts
@@ -4,9 +4,9 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Vec3 } from 'mol-math/linear-algebra';
-import { NumberArray } from 'mol-util/type-helpers';
-import { lerp } from 'mol-math/interpolate';
+import { Vec3 } from '../../../../../mol-math/linear-algebra';
+import { NumberArray } from '../../../../../mol-util/type-helpers';
+import { lerp } from '../../../../../mol-math/interpolate';
 
 export interface CurveSegmentState {
     curvePoints: NumberArray,
diff --git a/src/mol-repr/structure/visual/util/polymer/gap-iterator.ts b/src/mol-repr/structure/visual/util/polymer/gap-iterator.ts
index 6a612ab598af2b92c1213a59d37a6eb6ce7de3f3..11e6311543614b58269bc7dd7309669498bdec47 100644
--- a/src/mol-repr/structure/visual/util/polymer/gap-iterator.ts
+++ b/src/mol-repr/structure/visual/util/polymer/gap-iterator.ts
@@ -4,9 +4,9 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, StructureElement, ElementIndex, ResidueIndex } from 'mol-model/structure';
-import Iterator from 'mol-data/iterator';
-import SortedRanges from 'mol-data/int/sorted-ranges';
+import { Unit, StructureElement, ElementIndex, ResidueIndex } from '../../../../../mol-model/structure';
+import Iterator from '../../../../../mol-data/iterator';
+import SortedRanges from '../../../../../mol-data/int/sorted-ranges';
 import { getGapRanges } from '../polymer';
 
 /** Iterates over gaps, i.e. the stem residues/coarse elements adjacent to gaps */
diff --git a/src/mol-repr/structure/visual/util/polymer/trace-iterator.ts b/src/mol-repr/structure/visual/util/polymer/trace-iterator.ts
index 68b46ca5e576fc9b5205d9b36fd109f9c11ca41a..c731071615a795d4c00b7c34ef8ee104eaadbefb 100644
--- a/src/mol-repr/structure/visual/util/polymer/trace-iterator.ts
+++ b/src/mol-repr/structure/visual/util/polymer/trace-iterator.ts
@@ -4,17 +4,17 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, StructureElement, ElementIndex, ResidueIndex, Structure } from 'mol-model/structure';
-import { Segmentation } from 'mol-data/int';
-import { MoleculeType, SecondaryStructureType } from 'mol-model/structure/model/types';
-import Iterator from 'mol-data/iterator';
-import { Vec3 } from 'mol-math/linear-algebra';
-import SortedRanges from 'mol-data/int/sorted-ranges';
-import { CoarseSphereConformation, CoarseGaussianConformation } from 'mol-model/structure/model/properties/coarse';
+import { Unit, StructureElement, ElementIndex, ResidueIndex, Structure } from '../../../../../mol-model/structure';
+import { Segmentation } from '../../../../../mol-data/int';
+import { MoleculeType, SecondaryStructureType } from '../../../../../mol-model/structure/model/types';
+import Iterator from '../../../../../mol-data/iterator';
+import { Vec3 } from '../../../../../mol-math/linear-algebra';
+import SortedRanges from '../../../../../mol-data/int/sorted-ranges';
+import { CoarseSphereConformation, CoarseGaussianConformation } from '../../../../../mol-model/structure/model/properties/coarse';
 import { getPolymerRanges } from '../polymer';
-import { AtomicConformation } from 'mol-model/structure/model/properties/atomic';
-import { ComputedSecondaryStructure } from 'mol-model-props/computed/secondary-structure';
-import { SecondaryStructure } from 'mol-model/structure/model/properties/seconday-structure';
+import { AtomicConformation } from '../../../../../mol-model/structure/model/properties/atomic';
+import { ComputedSecondaryStructure } from '../../../../../mol-model-props/computed/secondary-structure';
+import { SecondaryStructure } from '../../../../../mol-model/structure/model/properties/seconday-structure';
 
 /**
  * Iterates over individual residues/coarse elements in polymers of a unit while
diff --git a/src/mol-repr/util.ts b/src/mol-repr/util.ts
index e9e1a5962157dc8d1980230d4bf22a225704d7d4..5eadb325c04979c5a05ed3470a89f26644431429 100644
--- a/src/mol-repr/util.ts
+++ b/src/mol-repr/util.ts
@@ -4,9 +4,9 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { defaults } from 'mol-util';
-import { Structure } from 'mol-model/structure';
-import { VisualQuality } from 'mol-geo/geometry/base';
+import { defaults } from '../mol-util';
+import { Structure } from '../mol-model/structure';
+import { VisualQuality } from '../mol-geo/geometry/base';
 
 export interface VisualUpdateState {
     updateTransform: boolean
diff --git a/src/mol-repr/visual.ts b/src/mol-repr/visual.ts
index f0e6f182ab17fcd3423ff4b2211e5bca664ddfb8..fd205a7fa842433d0811f6059003f93adfa95119 100644
--- a/src/mol-repr/visual.ts
+++ b/src/mol-repr/visual.ts
@@ -4,23 +4,23 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { RuntimeContext } from 'mol-task'
-import { GraphicsRenderObject } from 'mol-gl/render-object'
+import { RuntimeContext } from '../mol-task'
+import { GraphicsRenderObject } from '../mol-gl/render-object'
 import { PickingId } from '../mol-geo/geometry/picking';
-import { Loci, isEmptyLoci } from 'mol-model/loci';
+import { Loci, isEmptyLoci } from '../mol-model/loci';
 import { MarkerAction, applyMarkerAction } from '../mol-geo/geometry/marker-data';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { WebGLContext } from 'mol-gl/webgl/context';
-import { Theme } from 'mol-theme/theme';
-import { Mat4 } from 'mol-math/linear-algebra';
-import { updateTransformData, fillIdentityTransform } from 'mol-geo/geometry/transform-data';
-import { calculateTransformBoundingSphere } from 'mol-gl/renderable/util';
-import { ValueCell } from 'mol-util';
-import { Overpaint } from 'mol-theme/overpaint';
-import { createOverpaint, clearOverpaint, applyOverpaintColor } from 'mol-geo/geometry/overpaint-data';
-import { Interval } from 'mol-data/int';
-import { Transparency } from 'mol-theme/transparency';
-import { createTransparency, clearTransparency, applyTransparencyValue } from 'mol-geo/geometry/transparency-data';
+import { ParamDefinition as PD } from '../mol-util/param-definition';
+import { WebGLContext } from '../mol-gl/webgl/context';
+import { Theme } from '../mol-theme/theme';
+import { Mat4 } from '../mol-math/linear-algebra';
+import { updateTransformData, fillIdentityTransform } from '../mol-geo/geometry/transform-data';
+import { calculateTransformBoundingSphere } from '../mol-gl/renderable/util';
+import { ValueCell } from '../mol-util';
+import { Overpaint } from '../mol-theme/overpaint';
+import { createOverpaint, clearOverpaint, applyOverpaintColor } from '../mol-geo/geometry/overpaint-data';
+import { Interval } from '../mol-data/int';
+import { Transparency } from '../mol-theme/transparency';
+import { createTransparency, clearTransparency, applyTransparencyValue } from '../mol-geo/geometry/transparency-data';
 
 export interface VisualContext {
     readonly runtime: RuntimeContext
diff --git a/src/mol-repr/volume/direct-volume.ts b/src/mol-repr/volume/direct-volume.ts
index 813a030f9899169011e9fa674f953800afa93abb..6d223ada5d419aa0d5385846ec69988e7eca65c4 100644
--- a/src/mol-repr/volume/direct-volume.ts
+++ b/src/mol-repr/volume/direct-volume.ts
@@ -4,23 +4,23 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { VolumeData } from 'mol-model/volume'
-import { RuntimeContext } from 'mol-task'
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
+import { Vec3, Mat4 } from '../../mol-math/linear-algebra';
+import { Box3D } from '../../mol-math/geometry';
+import { VolumeData } from '../../mol-model/volume';
+import { RuntimeContext } from '../../mol-task';
+import { WebGLContext } from '../../mol-gl/webgl/context';
+import { DirectVolume } from '../../mol-geo/geometry/direct-volume/direct-volume';
+import { createTexture } from '../../mol-gl/webgl/texture';
+import { VisualContext } from '../visual';
+import { Theme, ThemeRegistryContext } from '../../mol-theme/theme';
+import { BaseGeometry } from '../../mol-geo/geometry/base';
 import { VolumeVisual, VolumeRepresentation, VolumeRepresentationProvider } from './representation';
-import { EmptyLoci } from 'mol-model/loci';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Vec3, Mat4 } from 'mol-math/linear-algebra';
-import { Box3D } from 'mol-math/geometry';
-import { WebGLContext } from 'mol-gl/webgl/context';
-import { createTexture } from 'mol-gl/webgl/texture';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { DirectVolume } from 'mol-geo/geometry/direct-volume/direct-volume';
-import { BaseGeometry } from 'mol-geo/geometry/base';
-import { VisualUpdateState } from 'mol-repr/util';
-import { RepresentationContext, RepresentationParamsGetter } from 'mol-repr/representation';
-import { Theme, ThemeRegistryContext } from 'mol-theme/theme';
-import { VisualContext } from 'mol-repr/visual';
-import { NullLocation } from 'mol-model/location';
+import { LocationIterator } from '../../mol-geo/util/location-iterator';
+import { NullLocation } from '../../mol-model/location';
+import { EmptyLoci } from '../../mol-model/loci';
+import { VisualUpdateState } from '../util';
+import { RepresentationContext, RepresentationParamsGetter } from '../representation';
 
 function getBoundingBox(gridDimension: Vec3, transform: Mat4) {
     const bbox = Box3D.empty()
diff --git a/src/mol-repr/volume/isosurface.ts b/src/mol-repr/volume/isosurface.ts
index 224afe6779457f11d03b73c9a9e4806d41d0e752..ce877d67d56cc21f4cdd0f027ef967c0d09e5489 100644
--- a/src/mol-repr/volume/isosurface.ts
+++ b/src/mol-repr/volume/isosurface.ts
@@ -5,19 +5,19 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { VolumeData, VolumeIsoValue } from 'mol-model/volume'
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
+import { VolumeData, VolumeIsoValue } from '../../mol-model/volume';
+import { VisualContext } from '../visual';
+import { Theme, ThemeRegistryContext } from '../../mol-theme/theme';
+import { Mesh } from '../../mol-geo/geometry/mesh/mesh';
+import { computeMarchingCubesMesh, computeMarchingCubesLines } from '../../mol-geo/util/marching-cubes/algorithm';
 import { VolumeVisual, VolumeRepresentation, VolumeRepresentationProvider } from './representation';
-import { EmptyLoci } from 'mol-model/loci';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { computeMarchingCubesMesh, computeMarchingCubesLines } from 'mol-geo/util/marching-cubes/algorithm';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { VisualUpdateState } from 'mol-repr/util';
-import { RepresentationContext, RepresentationParamsGetter, Representation } from 'mol-repr/representation';
-import { Theme, ThemeRegistryContext } from 'mol-theme/theme';
-import { VisualContext } from 'mol-repr/visual';
-import { NullLocation } from 'mol-model/location';
-import { Lines } from 'mol-geo/geometry/lines/lines';
+import { LocationIterator } from '../../mol-geo/util/location-iterator';
+import { NullLocation } from '../../mol-model/location';
+import { EmptyLoci } from '../../mol-model/loci';
+import { VisualUpdateState } from '../util';
+import { Lines } from '../../mol-geo/geometry/lines/lines';
+import { RepresentationContext, RepresentationParamsGetter, Representation } from '../representation';
 
 const defaultStats: VolumeData['dataStats'] = { min: -1, max: 1, mean: 0, sigma: 0.1  };
 export function createIsoValueParam(defaultValue: VolumeIsoValue, stats?: VolumeData['dataStats']) {
diff --git a/src/mol-repr/volume/registry.ts b/src/mol-repr/volume/registry.ts
index fde44525b8afd8496cb737c17c03cacfae3163dc..3177b30bbe29691774232f16977f77a74bb0268c 100644
--- a/src/mol-repr/volume/registry.ts
+++ b/src/mol-repr/volume/registry.ts
@@ -5,7 +5,7 @@
  */
 
 import { RepresentationProvider, RepresentationRegistry, Representation } from '../representation';
-import { VolumeData } from 'mol-model/volume';
+import { VolumeData } from '../../mol-model/volume';
 import { IsosurfaceRepresentationProvider } from './isosurface';
 
 export class VolumeRepresentationRegistry extends RepresentationRegistry<VolumeData, Representation.State> {
diff --git a/src/mol-repr/volume/representation.ts b/src/mol-repr/volume/representation.ts
index 309a65ac9bccea852e46dadefe3b6c943d554fca..a4be3321f7a39e433700eb3658976f1a52d8899f 100644
--- a/src/mol-repr/volume/representation.ts
+++ b/src/mol-repr/volume/representation.ts
@@ -4,30 +4,30 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Task } from 'mol-task'
-import { Representation, RepresentationContext, RepresentationProvider, RepresentationParamsGetter } from '../representation';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
 import { Visual, VisualContext } from '../visual';
-import { VolumeData } from 'mol-model/volume';
-import { Loci, EmptyLoci, isEveryLoci } from 'mol-model/loci';
-import { Geometry, GeometryUtils } from 'mol-geo/geometry/geometry';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { PickingId } from 'mol-geo/geometry/picking';
-import { MarkerAction } from 'mol-geo/geometry/marker-data';
-import { GraphicsRenderObject, createRenderObject, getNextMaterialId, RenderObjectKindType, RenderObjectValuesType } from 'mol-gl/render-object';
-import { Interval } from 'mol-data/int';
-import { LocationIterator } from 'mol-geo/util/location-iterator';
-import { VisualUpdateState } from 'mol-repr/util';
-import { ValueCell } from 'mol-util';
-import { Theme, createEmptyTheme } from 'mol-theme/theme';
+import { VolumeData } from '../../mol-model/volume';
+import { Geometry, GeometryUtils } from '../../mol-geo/geometry/geometry';
+import { LocationIterator } from '../../mol-geo/util/location-iterator';
+import { Theme, createEmptyTheme } from '../../mol-theme/theme';
+import { createIdentityTransform } from '../../mol-geo/geometry/transform-data';
+import { createRenderObject, RenderObjectKindType, RenderObjectValuesType, getNextMaterialId, GraphicsRenderObject } from '../../mol-gl/render-object';
+import { PickingId } from '../../mol-geo/geometry/picking';
+import { Loci, isEveryLoci, EmptyLoci } from '../../mol-model/loci';
+import { Interval } from '../../mol-data/int';
+import { VisualUpdateState } from '../util';
+import { ColorTheme } from '../../mol-theme/color';
+import { ValueCell } from '../../mol-util';
+import { createSizes } from '../../mol-geo/geometry/size-data';
+import { createColors } from '../../mol-geo/geometry/color-data';
+import { MarkerAction } from '../../mol-geo/geometry/marker-data';
+import { Mat4 } from '../../mol-math/linear-algebra';
+import { Overpaint } from '../../mol-theme/overpaint';
+import { Transparency } from '../../mol-theme/transparency';
+import { Representation, RepresentationProvider, RepresentationContext, RepresentationParamsGetter } from '../representation';
+import { BaseGeometry } from '../../mol-geo/geometry/base';
 import { Subject } from 'rxjs';
-import { Mat4 } from 'mol-math/linear-algebra';
-import { BaseGeometry } from 'mol-geo/geometry/base';
-import { createIdentityTransform } from 'mol-geo/geometry/transform-data';
-import { ColorTheme } from 'mol-theme/color';
-import { createColors } from 'mol-geo/geometry/color-data';
-import { createSizes } from 'mol-geo/geometry/size-data';
-import { Overpaint } from 'mol-theme/overpaint';
-import { Transparency } from 'mol-theme/transparency';
+import { Task } from '../../mol-task';
 
 export interface VolumeVisual<P extends VolumeParams> extends Visual<VolumeData, P> { }
 
diff --git a/src/mol-script/language/parser.ts b/src/mol-script/language/parser.ts
index a1074abdf4f6eaa94c583537f65ebad965ad91de..5fdfbee14f7e7c3fc7c41b729081fffdb42956e0 100644
--- a/src/mol-script/language/parser.ts
+++ b/src/mol-script/language/parser.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { MonadicParser as P } from 'mol-util/monadic-parser'
+import { MonadicParser as P } from '../../mol-util/monadic-parser'
 import Expression from './expression'
 import { MolScriptBuilder as B } from './builder'
 
diff --git a/src/mol-script/runtime/query/compiler.ts b/src/mol-script/runtime/query/compiler.ts
index 28b96cb5275dda8bb12fa12f8b03eaf49d09af5e..9faac5f14ad92da41ce0ddcadb9ea19503679b08 100644
--- a/src/mol-script/runtime/query/compiler.ts
+++ b/src/mol-script/runtime/query/compiler.ts
@@ -5,7 +5,7 @@
  */
 
 import Expression from '../../language/expression';
-import { QueryContext, QueryFn, Structure, CustomPropertyDescriptor } from 'mol-model/structure';
+import { QueryContext, QueryFn, Structure, CustomPropertyDescriptor } from '../../../mol-model/structure';
 import { MSymbol } from '../../language/symbol';
 
 export class QueryRuntimeTable {
diff --git a/src/mol-script/runtime/query/table.ts b/src/mol-script/runtime/query/table.ts
index ca269c8b679b911795fe653ba7706b5b493655a9..e2d75927f1b7e559f70b67f4650f59aa5f7d77a3 100644
--- a/src/mol-script/runtime/query/table.ts
+++ b/src/mol-script/runtime/query/table.ts
@@ -6,12 +6,12 @@
 
 import { MolScriptSymbolTable as MolScript } from '../../language/symbol-table';
 import { DefaultQueryRuntimeTable, QuerySymbolRuntime, QueryRuntimeArguments } from './compiler';
-import { Queries, StructureProperties, StructureElement, QueryContext } from 'mol-model/structure';
-import { ElementSymbol } from 'mol-model/structure/model/types';
-import { SetUtils } from 'mol-util/set';
-import toUpperCase from 'mol-util/upper-case';
-import { VdwRadius, AtomWeight, AtomNumber } from 'mol-model/structure/model/properties/atomic';
-import { cantorPairing } from 'mol-data/util';
+import { Queries, StructureProperties, StructureElement, QueryContext } from '../../../mol-model/structure';
+import { ElementSymbol } from '../../../mol-model/structure/model/types';
+import { SetUtils } from '../../../mol-util/set';
+import toUpperCase from '../../../mol-util/upper-case';
+import { VdwRadius, AtomWeight, AtomNumber } from '../../../mol-model/structure/model/properties/atomic';
+import { cantorPairing } from '../../../mol-data/util';
 import C = QuerySymbolRuntime.Const
 import D = QuerySymbolRuntime.Dynamic
 
diff --git a/src/mol-script/script/mol-script/symbols.ts b/src/mol-script/script/mol-script/symbols.ts
index 9bd1119533c764200a1ab49b9e0f2e13faed0738..9893d843b4cdfec6a42314a131f0a3d7c8efcfdc 100644
--- a/src/mol-script/script/mol-script/symbols.ts
+++ b/src/mol-script/script/mol-script/symbols.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { UniqueArray } from 'mol-data/generic';
+import { UniqueArray } from '../../../mol-data/generic';
 import Expression from '../../language/expression';
 import { Argument, MSymbol } from '../../language/symbol';
 import { MolScriptSymbolTable as MolScript } from '../../language/symbol-table';
diff --git a/src/mol-state/action.ts b/src/mol-state/action.ts
index 81baf5fc5e3f34971c159c1cfce116cf98e5694b..fc99fae33ae042ca2c3245837a28476049863aab 100644
--- a/src/mol-state/action.ts
+++ b/src/mol-state/action.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Task } from 'mol-task';
-import { UUID } from 'mol-util';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { Task } from '../mol-task';
+import { UUID } from '../mol-util';
+import { ParamDefinition as PD } from '../mol-util/param-definition';
 import { StateObject, StateObjectCell } from './object';
 import { State } from './state';
 import { StateTransformer } from './transformer';
diff --git a/src/mol-state/object.ts b/src/mol-state/object.ts
index dd4c5c1d34261e53c36614f9ffca1c8c86543c44..3591c7089bf3401bad6f43713ff7ce196d5f22ca 100644
--- a/src/mol-state/object.ts
+++ b/src/mol-state/object.ts
@@ -4,11 +4,11 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { UUID } from 'mol-util';
+import { UUID } from '../mol-util';
 import { StateTransform } from './transform';
-import { ParamDefinition } from 'mol-util/param-definition';
+import { ParamDefinition } from '../mol-util/param-definition';
 import { State } from './state';
-import { StateSelection, StateTransformer } from 'mol-state';
+import { StateSelection, StateTransformer } from '../mol-state';
 
 export { StateObject, StateObjectCell }
 
diff --git a/src/mol-state/state.ts b/src/mol-state/state.ts
index 6ffb8ff6480353dec56a2d1a6692e573a3314f71..a054588b80300851f9579a67ac6d9a7777e64aa2 100644
--- a/src/mol-state/state.ts
+++ b/src/mol-state/state.ts
@@ -8,18 +8,18 @@ import { StateObject, StateObjectCell } from './object';
 import { StateTree } from './tree';
 import { StateTransform } from './transform';
 import { StateTransformer } from './transformer';
-import { RuntimeContext, Task } from 'mol-task';
+import { RuntimeContext, Task } from '../mol-task';
 import { StateSelection } from './state/selection';
-import { RxEventHelper } from 'mol-util/rx-event-helper';
+import { RxEventHelper } from '../mol-util/rx-event-helper';
 import { StateBuilder } from './state/builder';
 import { StateAction } from './action';
 import { StateActionManager } from './action/manager';
 import { TransientTree } from './tree/transient';
-import { LogEntry } from 'mol-util/log-entry';
-import { now, formatTimespan } from 'mol-util/now';
-import { ParamDefinition } from 'mol-util/param-definition';
+import { LogEntry } from '../mol-util/log-entry';
+import { now, formatTimespan } from '../mol-util/now';
+import { ParamDefinition } from '../mol-util/param-definition';
 import { StateTreeSpine } from './tree/spine';
-import { AsyncQueue } from 'mol-util/async-queue';
+import { AsyncQueue } from '../mol-util/async-queue';
 
 export { State }
 
diff --git a/src/mol-state/state/builder.ts b/src/mol-state/state/builder.ts
index ec9fd4d9217a875edaeb6fc9c2cfab05a998152e..98b457b038573450862e7cc4aac59f6668d1de6b 100644
--- a/src/mol-state/state/builder.ts
+++ b/src/mol-state/state/builder.ts
@@ -9,7 +9,7 @@ import { TransientTree } from '../tree/transient';
 import { StateObject, StateObjectCell } from '../object';
 import { StateTransform } from '../transform';
 import { StateTransformer } from '../transformer';
-import { State } from 'mol-state/state';
+import { State } from '../state';
 
 export { StateBuilder }
 
diff --git a/src/mol-state/transform.ts b/src/mol-state/transform.ts
index fe4b251bf76b60ec6e6cea23d6b903f99b6586cf..4fa3ba40be4433f346b83c0ca157dc6701c65147 100644
--- a/src/mol-state/transform.ts
+++ b/src/mol-state/transform.ts
@@ -5,7 +5,7 @@
  */
 
 import { StateTransformer } from './transformer';
-import { UUID } from 'mol-util';
+import { UUID } from '../mol-util';
 
 export { Transform as StateTransform }
 
diff --git a/src/mol-state/transformer.ts b/src/mol-state/transformer.ts
index 4e60189b745c7bbd21e844f0a28f230c736cd1cc..725aeac6d061b7064595bd50ec285be46b1e2fad 100644
--- a/src/mol-state/transformer.ts
+++ b/src/mol-state/transformer.ts
@@ -4,12 +4,12 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Task } from 'mol-task';
+import { Task } from '../mol-task';
 import { StateObject, StateObjectCell } from './object';
 import { StateTransform } from './transform';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { ParamDefinition as PD } from '../mol-util/param-definition';
 import { StateAction } from './action';
-import { capitalize } from 'mol-util/string';
+import { capitalize } from '../mol-util/string';
 import { StateTreeSpine } from './tree/spine';
 
 export { Transformer as StateTransformer }
diff --git a/src/mol-state/tree/transient.ts b/src/mol-state/tree/transient.ts
index c9a5e8d8402a08a0c2115b2caca26af4bb424105..27aca7d71bf7b2b87efae5f63a9995f0f7022faf 100644
--- a/src/mol-state/tree/transient.ts
+++ b/src/mol-state/tree/transient.ts
@@ -7,7 +7,7 @@
 import { Map as ImmutableMap, OrderedSet } from 'immutable';
 import { StateTransform } from '../transform';
 import { StateTree } from './immutable';
-import { shallowEqual } from 'mol-util/object';
+import { shallowEqual } from '../../mol-util/object';
 
 export { TransientTree }
 
diff --git a/src/mol-task/execution/observable.ts b/src/mol-task/execution/observable.ts
index 5b8d15a07ea63b139192cd74830778c20f4ea79e..dbb19df9cc627c8478c80fb02b2afdbc2e4eeae6 100644
--- a/src/mol-task/execution/observable.ts
+++ b/src/mol-task/execution/observable.ts
@@ -7,7 +7,7 @@
 import { Task } from '../task'
 import { RuntimeContext } from './runtime-context'
 import { Progress } from './progress'
-import { now } from 'mol-util/now';
+import { now } from '../../mol-util/now';
 import { Scheduler } from '../util/scheduler'
 import { UserTiming } from '../util/user-timing'
 
diff --git a/src/mol-task/task.ts b/src/mol-task/task.ts
index 7fdf1b36359763018cd7f0d3d4cdba4ddc13379a..ec67e573f19cf3ed1fd9f5a43e09c51c54b097ce 100644
--- a/src/mol-task/task.ts
+++ b/src/mol-task/task.ts
@@ -8,7 +8,7 @@ import { RuntimeContext } from './execution/runtime-context'
 import { Progress } from './execution/progress'
 import { ExecuteObservable, ExecuteObservableChild, ExecuteInContext } from './execution/observable';
 import { SyncRuntimeContext } from './execution/synchronous';
-import { idFactory } from 'mol-util/id-factory';
+import { idFactory } from '../mol-util/id-factory';
 
 /** A "named function wrapper" with built in "computation tree progress tracking". */
 interface Task<T> {
diff --git a/src/mol-task/util/chunked.ts b/src/mol-task/util/chunked.ts
index 88233dd17a1ded596897308eaf8ae0f31933e5b9..3545c48368f3e8478a09b5c723d1a76052d87d60 100644
--- a/src/mol-task/util/chunked.ts
+++ b/src/mol-task/util/chunked.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { now } from 'mol-util/now';
+import { now } from '../../mol-util/now';
 import { RuntimeContext } from '../execution/runtime-context'
 
 type UniformlyChunkedFn<S> = (chunkSize: number, state: S) => number
diff --git a/src/mol-task/util/user-timing.ts b/src/mol-task/util/user-timing.ts
index 54456d65fa3b1cecce102d16b8ac492f297d15b7..ca8c087f4ca6525d6376ab3b77f8c102cd0f99ac 100644
--- a/src/mol-task/util/user-timing.ts
+++ b/src/mol-task/util/user-timing.ts
@@ -5,7 +5,7 @@
  */
 
 import { Task } from '../task'
-import { isProductionMode } from 'mol-util/debug';
+import { isProductionMode } from '../../mol-util/debug';
 
 const hasPerformance = typeof performance !== 'undefined'
 const timingEnabled = hasPerformance && !isProductionMode
diff --git a/src/mol-theme/color.ts b/src/mol-theme/color.ts
index bab8e130c4fbb0ce67bf44413004a83d355dbfad..45fb46faf10f4d65cb2bd87739eae4b796a20dde 100644
--- a/src/mol-theme/color.ts
+++ b/src/mol-theme/color.ts
@@ -4,13 +4,13 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Color } from 'mol-util/color';
-import { Location } from 'mol-model/location';
-import { ColorType } from 'mol-geo/geometry/color-data';
+import { Color } from '../mol-util/color';
+import { Location } from '../mol-model/location';
+import { ColorType } from '../mol-geo/geometry/color-data';
 import { CarbohydrateSymbolColorThemeProvider } from './color/carbohydrate-symbol';
 import { UniformColorThemeProvider } from './color/uniform';
-import { deepEqual } from 'mol-util';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
+import { deepEqual } from '../mol-util';
+import { ParamDefinition as PD } from '../mol-util/param-definition';
 import { ThemeDataContext, ThemeRegistry, ThemeProvider } from './theme';
 import { ChainIdColorThemeProvider } from './color/chain-id';
 import { CrossLinkColorThemeProvider } from './color/cross-link';
@@ -24,8 +24,8 @@ import { SecondaryStructureColorThemeProvider } from './color/secondary-structur
 import { SequenceIdColorThemeProvider } from './color/sequence-id';
 import { ShapeGroupColorThemeProvider } from './color/shape-group';
 import { UnitIndexColorThemeProvider } from './color/unit-index';
-import { ScaleLegend } from 'mol-util/color/scale';
-import { TableLegend } from 'mol-util/color/tables';
+import { ScaleLegend } from '../mol-util/color/scale';
+import { TableLegend } from '../mol-util/color/tables';
 import { UncertaintyColorThemeProvider } from './color/uncertainty';
 import { EntitySourceColorThemeProvider } from './color/entity-source';
 import { IllustrativeColorThemeProvider } from './color/illustrative';
diff --git a/src/mol-theme/color/carbohydrate-symbol.ts b/src/mol-theme/color/carbohydrate-symbol.ts
index f76bd90ed1ee75561453df525509489effc11fb7..734df427eb2691c03c556acbc208b0bede2ec3cc 100644
--- a/src/mol-theme/color/carbohydrate-symbol.ts
+++ b/src/mol-theme/color/carbohydrate-symbol.ts
@@ -4,15 +4,14 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { StructureElement, Link, ElementIndex, Unit } from 'mol-model/structure';
-
-import { SaccharideColors, MonosaccharidesColorTable } from 'mol-model/structure/structure/carbohydrates/constants';
-import { Location } from 'mol-model/location';
+import { StructureElement, Link, ElementIndex, Unit } from '../../mol-model/structure';
+import { SaccharideColors, MonosaccharidesColorTable } from '../../mol-model/structure/structure/carbohydrates/constants';
+import { Location } from '../../mol-model/location';
 import { ColorTheme, LocationColor } from '../color';
-import { Color } from 'mol-util/color';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
+import { Color } from '../../mol-util/color';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
 import { ThemeDataContext } from '../theme';
-import { TableLegend } from 'mol-util/color/tables';
+import { TableLegend } from '../../mol-util/color/tables';
 
 const DefaultColor = Color(0xCCCCCC)
 const Description = 'Assigns colors according to the Symbol Nomenclature for Glycans (SNFG).'
diff --git a/src/mol-theme/color/chain-id.ts b/src/mol-theme/color/chain-id.ts
index 58034403c8af67bd26a20f93ebc68e5662fad77f..f18257c6c5535fe34638eb6ce565581259c9e78c 100644
--- a/src/mol-theme/color/chain-id.ts
+++ b/src/mol-theme/color/chain-id.ts
@@ -4,17 +4,16 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, StructureProperties, StructureElement, Link } from 'mol-model/structure';
-
-import { Color } from 'mol-util/color';
-import { Location } from 'mol-model/location';
+import { Unit, StructureProperties, StructureElement, Link } from '../../mol-model/structure';
+import { Color } from '../../mol-util/color';
+import { Location } from '../../mol-model/location';
 import { ColorTheme, LocationColor } from '../color';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { ThemeDataContext } from 'mol-theme/theme';
-import { ScaleLegend } from 'mol-util/color/scale';
-import { Column } from 'mol-data/db';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
+import { ThemeDataContext } from '../../mol-theme/theme';
+import { ScaleLegend } from '../../mol-util/color/scale';
+import { Column } from '../../mol-data/db';
 import { getPaletteParams, getPalette } from './util';
-import { TableLegend } from 'mol-util/color/tables';
+import { TableLegend } from '../../mol-util/color/tables';
 
 const DefaultColor = Color(0xCCCCCC)
 const Description = 'Gives every chain a color based on its `asym_id` value.'
diff --git a/src/mol-theme/color/cross-link.ts b/src/mol-theme/color/cross-link.ts
index 2645a71dba6d23c38cbb76788dfe8d4912ce0ba2..31c9058e065805fdb5d7761b8f9cee4bc98ba176 100644
--- a/src/mol-theme/color/cross-link.ts
+++ b/src/mol-theme/color/cross-link.ts
@@ -4,15 +4,14 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Link } from 'mol-model/structure';
-
-import { Color, ColorScale } from 'mol-util/color';
-import { Location } from 'mol-model/location';
+import { Link } from '../../mol-model/structure';
+import { Color, ColorScale } from '../../mol-util/color';
+import { Location } from '../../mol-model/location';
 import { ColorTheme, LocationColor } from '../color';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { ThemeDataContext } from 'mol-theme/theme';
-import { ColorListName, ColorListOptions } from 'mol-util/color/scale';
+import { Vec3 } from '../../mol-math/linear-algebra';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
+import { ThemeDataContext } from '../../mol-theme/theme';
+import { ColorListName, ColorListOptions } from '../../mol-util/color/scale';
 
 const DefaultColor = Color(0xCCCCCC)
 const Description = 'Colors cross-links by the deviation of the observed distance versus the modeled distance (e.g. `ihm_cross_link_restraint.distance_threshold`).'
diff --git a/src/mol-theme/color/element-index.ts b/src/mol-theme/color/element-index.ts
index d3213d264f9ee1679456e629df79bb956c9320ff..8ae0b949a9070acd7d3afe9f90dcdd66d0b48c92 100644
--- a/src/mol-theme/color/element-index.ts
+++ b/src/mol-theme/color/element-index.ts
@@ -4,14 +4,14 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ColorScale, Color } from 'mol-util/color';
-import { Location } from 'mol-model/location';
-import { StructureElement, Link } from 'mol-model/structure';
-import { OrderedSet } from 'mol-data/int';
+import { ColorScale, Color } from '../../mol-util/color';
+import { Location } from '../../mol-model/location';
+import { StructureElement, Link } from '../../mol-model/structure';
+import { OrderedSet } from '../../mol-data/int';
 import { ColorTheme, LocationColor } from '../color';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { ThemeDataContext } from 'mol-theme/theme';
-import { ColorListOptions, ColorListName } from 'mol-util/color/scale';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
+import { ThemeDataContext } from '../../mol-theme/theme';
+import { ColorListOptions, ColorListName } from '../../mol-util/color/scale';
 
 const DefaultColor = Color(0xCCCCCC)
 const Description = 'Gives every element (atom or coarse sphere/gaussian) a unique color based on the position (index) of the element in the list of elements in the structure.'
diff --git a/src/mol-theme/color/element-symbol.ts b/src/mol-theme/color/element-symbol.ts
index 36000f751d988fa325cfeaa29fa554d0cd1344d1..b34dd6fd56972bce2cf7bba74d4342151f6b8a78 100644
--- a/src/mol-theme/color/element-symbol.ts
+++ b/src/mol-theme/color/element-symbol.ts
@@ -4,15 +4,15 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ElementSymbol } from 'mol-model/structure/model/types';
-import { Color, ColorMap } from 'mol-util/color';
-import { StructureElement, Unit, Link } from 'mol-model/structure';
-import { Location } from 'mol-model/location';
+import { ElementSymbol } from '../../mol-model/structure/model/types';
+import { Color, ColorMap } from '../../mol-util/color';
+import { StructureElement, Unit, Link } from '../../mol-model/structure';
+import { Location } from '../../mol-model/location';
 import { ColorTheme } from '../color';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
 import { ThemeDataContext } from '../theme';
-import { TableLegend } from 'mol-util/color/tables';
-import { getAdjustedColorMap } from 'mol-util/color/color';
+import { TableLegend } from '../../mol-util/color/tables';
+import { getAdjustedColorMap } from '../../mol-util/color/color';
 
 // from Jmol http://jmol.sourceforge.net/jscolors/ (or 0xFFFFFF)
 export const ElementSymbolColors = ColorMap({
diff --git a/src/mol-theme/color/entity-source.ts b/src/mol-theme/color/entity-source.ts
index 6311735d5d7b8da623c920b7581419c40edbcdb2..02178af7751bb1c53f92d6047887dd6fc947c3e1 100644
--- a/src/mol-theme/color/entity-source.ts
+++ b/src/mol-theme/color/entity-source.ts
@@ -4,17 +4,17 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { StructureProperties, StructureElement, Link, Model } from 'mol-model/structure';
-import { Color } from 'mol-util/color';
-import { Location } from 'mol-model/location';
+import { StructureProperties, StructureElement, Link, Model } from '../../mol-model/structure';
+import { Color } from '../../mol-util/color';
+import { Location } from '../../mol-model/location';
 import { ColorTheme, LocationColor } from '../color';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { ThemeDataContext } from 'mol-theme/theme';
-import { ScaleLegend } from 'mol-util/color/scale';
-import { Table, Column } from 'mol-data/db';
-import { mmCIF_Schema } from 'mol-io/reader/cif/schema/mmcif';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
+import { ThemeDataContext } from '../../mol-theme/theme';
+import { ScaleLegend } from '../../mol-util/color/scale';
+import { Table, Column } from '../../mol-data/db';
+import { mmCIF_Schema } from '../../mol-io/reader/cif/schema/mmcif';
 import { getPaletteParams, getPalette } from './util';
-import { TableLegend } from 'mol-util/color/tables';
+import { TableLegend } from '../../mol-util/color/tables';
 
 const DefaultColor = Color(0xCCCCCC)
 const Description = 'Gives ranges of a polymer chain a color based on the entity source it originates from. Genes get the same color per entity'
diff --git a/src/mol-theme/color/hydrophobicity.ts b/src/mol-theme/color/hydrophobicity.ts
index 60be994f3888c64b8518d901bb95901de6cc353c..eb933335c33110d182f8655808f37502daedfe19 100644
--- a/src/mol-theme/color/hydrophobicity.ts
+++ b/src/mol-theme/color/hydrophobicity.ts
@@ -4,14 +4,14 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Color, ColorScale } from 'mol-util/color';
-import { StructureElement, Unit, Link, ElementIndex } from 'mol-model/structure';
-import { Location } from 'mol-model/location';
+import { Color, ColorScale } from '../../mol-util/color';
+import { StructureElement, Unit, Link, ElementIndex } from '../../mol-model/structure';
+import { Location } from '../../mol-model/location';
 import { ColorTheme } from '../color';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
 import { ThemeDataContext } from '../theme';
-import { ResidueHydrophobicity } from 'mol-model/structure/model/types';
-import { ColorListName, ColorListOptions } from 'mol-util/color/scale';
+import { ResidueHydrophobicity } from '../../mol-model/structure/model/types';
+import { ColorListName, ColorListOptions } from '../../mol-util/color/scale';
 
 const Description = 'Assigns a color to every amino acid according to the "Experimentally determined hydrophobicity scale for proteins at membrane interfaces" by Wimely and White (doi:10.1038/nsb1096-842).'
 
diff --git a/src/mol-theme/color/illustrative.ts b/src/mol-theme/color/illustrative.ts
index 51f8d2bb4abb5c66779c13bd9490bc2d5352edc5..70a50f9077cef33b09456c9ae3177901b78f80e9 100644
--- a/src/mol-theme/color/illustrative.ts
+++ b/src/mol-theme/color/illustrative.ts
@@ -4,15 +4,15 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ElementSymbol, isNucleic, isProtein, MoleculeType } from 'mol-model/structure/model/types';
-import { Color } from 'mol-util/color';
-import { StructureElement, Unit, Link } from 'mol-model/structure';
-import { Location } from 'mol-model/location';
+import { ElementSymbol, isNucleic, isProtein, MoleculeType } from '../../mol-model/structure/model/types';
+import { Color } from '../../mol-util/color';
+import { StructureElement, Unit, Link } from '../../mol-model/structure';
+import { Location } from '../../mol-model/location';
 import { ColorTheme } from '../color';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
 import { ThemeDataContext } from '../theme';
 import { elementSymbolColor, ElementSymbolColors } from './element-symbol';
-import { getAdjustedColorMap } from 'mol-util/color/color';
+import { getAdjustedColorMap } from '../../mol-util/color/color';
 
 const DefaultIllustrativeColor = Color(0xFFFFFF)
 const Description = `Assigns an illustrative color similar to David Goodsell's Molecule of the Month style.`
diff --git a/src/mol-theme/color/molecule-type.ts b/src/mol-theme/color/molecule-type.ts
index aee54e1c873105e92541b93c9ca49a9d1591e883..57e7ab795db4693113c2e15be5a9f44a25ead2bb 100644
--- a/src/mol-theme/color/molecule-type.ts
+++ b/src/mol-theme/color/molecule-type.ts
@@ -4,16 +4,16 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Color, ColorMap } from 'mol-util/color';
-import { StructureElement, Unit, Link, ElementIndex } from 'mol-model/structure';
-import { Location } from 'mol-model/location';
+import { Color, ColorMap } from '../../mol-util/color';
+import { StructureElement, Unit, Link, ElementIndex } from '../../mol-model/structure';
+import { Location } from '../../mol-model/location';
 import { ColorTheme } from '../color';
-import { MoleculeType } from 'mol-model/structure/model/types';
-import { getElementMoleculeType } from 'mol-model/structure/util';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
+import { MoleculeType } from '../../mol-model/structure/model/types';
+import { getElementMoleculeType } from '../../mol-model/structure/util';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
 import { ThemeDataContext } from '../theme';
-import { TableLegend } from 'mol-util/color/tables';
-import { getAdjustedColorMap } from 'mol-util/color/color';
+import { TableLegend } from '../../mol-util/color/tables';
+import { getAdjustedColorMap } from '../../mol-util/color/color';
 
 export const MoleculeTypeColors = ColorMap({
     water: 0x386cb0,
diff --git a/src/mol-theme/color/polymer-id.ts b/src/mol-theme/color/polymer-id.ts
index 8b97640418c4120df9d353f061df50b42b205df8..a5a3ba72f60306990d79752816630ad353ab4563 100644
--- a/src/mol-theme/color/polymer-id.ts
+++ b/src/mol-theme/color/polymer-id.ts
@@ -4,18 +4,18 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, StructureProperties, StructureElement, Link } from 'mol-model/structure';
+import { Unit, StructureProperties, StructureElement, Link } from '../../mol-model/structure';
 
-import { Color } from 'mol-util/color';
-import { Location } from 'mol-model/location';
+import { Color } from '../../mol-util/color';
+import { Location } from '../../mol-model/location';
 import { ColorTheme, LocationColor } from '../color';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { ThemeDataContext } from 'mol-theme/theme';
-import { Column } from 'mol-data/db';
-import { Entities } from 'mol-model/structure/model/properties/common';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
+import { ThemeDataContext } from '../../mol-theme/theme';
+import { Column } from '../../mol-data/db';
+import { Entities } from '../../mol-model/structure/model/properties/common';
 import { getPalette, getPaletteParams } from './util';
-import { ScaleLegend } from 'mol-util/color/scale';
-import { TableLegend } from 'mol-util/color/tables';
+import { ScaleLegend } from '../../mol-util/color/scale';
+import { TableLegend } from '../../mol-util/color/tables';
 
 const DefaultColor = Color(0xCCCCCC)
 const Description = 'Gives every polymer chain a color based on its `asym_id` value.'
diff --git a/src/mol-theme/color/polymer-index.ts b/src/mol-theme/color/polymer-index.ts
index d90b37d6b8a00e2a6c5ed4603b31ff33dbb37aa1..1a19450433ef14fbee84cc53df8d1e58412f3af6 100644
--- a/src/mol-theme/color/polymer-index.ts
+++ b/src/mol-theme/color/polymer-index.ts
@@ -4,14 +4,14 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Color } from 'mol-util/color';
-import { Location } from 'mol-model/location';
-import { StructureElement, Link } from 'mol-model/structure';
+import { Color } from '../../mol-util/color';
+import { Location } from '../../mol-model/location';
+import { StructureElement, Link } from '../../mol-model/structure';
 import { ColorTheme, LocationColor } from '../color';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { ThemeDataContext } from 'mol-theme/theme';
-import { ScaleLegend } from 'mol-util/color/scale';
-import { TableLegend } from 'mol-util/color/tables';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
+import { ThemeDataContext } from '../../mol-theme/theme';
+import { ScaleLegend } from '../../mol-util/color/scale';
+import { TableLegend } from '../../mol-util/color/tables';
 import { getPaletteParams, getPalette } from './util';
 
 const DefaultColor = Color(0xCCCCCC)
@@ -39,7 +39,7 @@ export function PolymerIndexColorTheme(ctx: ThemeDataContext, props: PD.Values<P
 
         const palette = getPalette(polymerCount, props)
         legend = palette.legend
-        
+
         const unitIdColor = new Map<number, Color>()
         for (let i = 0, j = 0, il = units.length; i <il; ++i) {
             if (units[i].polymerElements.length > 0) {
diff --git a/src/mol-theme/color/residue-name.ts b/src/mol-theme/color/residue-name.ts
index 08884a3388fd462fb067c7acf5c5030ae28843e9..b488e259445c3696c2680a296d8904a5946a11c4 100644
--- a/src/mol-theme/color/residue-name.ts
+++ b/src/mol-theme/color/residue-name.ts
@@ -4,14 +4,14 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Color, ColorMap } from 'mol-util/color';
-import { StructureElement, Unit, Link, ElementIndex } from 'mol-model/structure';
-import { Location } from 'mol-model/location';
+import { Color, ColorMap } from '../../mol-util/color';
+import { StructureElement, Unit, Link, ElementIndex } from '../../mol-model/structure';
+import { Location } from '../../mol-model/location';
 import { ColorTheme } from '../color';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
 import { ThemeDataContext } from '../theme';
-import { TableLegend } from 'mol-util/color/tables';
-import { getAdjustedColorMap } from 'mol-util/color/color';
+import { TableLegend } from '../../mol-util/color/tables';
+import { getAdjustedColorMap } from '../../mol-util/color/color';
 
 // protein colors from Jmol http://jmol.sourceforge.net/jscolors/
 export const ResidueNameColors = ColorMap({
@@ -100,7 +100,7 @@ export function residueNameColor(colorMap: ResidueNameColors, residueName: strin
 
 export function ResidueNameColorTheme(ctx: ThemeDataContext, props: PD.Values<ResidueNameColorThemeParams>): ColorTheme<ResidueNameColorThemeParams> {
     const colorMap = getAdjustedColorMap(ResidueNameColors, props.saturation, props.lightness)
-    
+
     function color(location: Location): Color {
         if (StructureElement.isLocation(location)) {
             if (Unit.isAtomic(location.unit)) {
diff --git a/src/mol-theme/color/secondary-structure.ts b/src/mol-theme/color/secondary-structure.ts
index a62c0fa59d9b8f7819b4db391c1dac6595921ad3..1d49c38a11fff52ead281a1b4727d8ff06a215fd 100644
--- a/src/mol-theme/color/secondary-structure.ts
+++ b/src/mol-theme/color/secondary-structure.ts
@@ -4,17 +4,17 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Color, ColorMap } from 'mol-util/color';
-import { StructureElement, Unit, Link, ElementIndex } from 'mol-model/structure';
-import { Location } from 'mol-model/location';
+import { Color, ColorMap } from '../../mol-util/color';
+import { StructureElement, Unit, Link, ElementIndex } from '../../mol-model/structure';
+import { Location } from '../../mol-model/location';
 import { ColorTheme } from '../color';
-import { SecondaryStructureType, MoleculeType } from 'mol-model/structure/model/types';
-import { getElementMoleculeType } from 'mol-model/structure/util';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
+import { SecondaryStructureType, MoleculeType } from '../../mol-model/structure/model/types';
+import { getElementMoleculeType } from '../../mol-model/structure/util';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
 import { ThemeDataContext } from '../theme';
-import { TableLegend } from 'mol-util/color/tables';
-import { ComputedSecondaryStructure } from 'mol-model-props/computed/secondary-structure';
-import { getAdjustedColorMap } from 'mol-util/color/color';
+import { TableLegend } from '../../mol-util/color/tables';
+import { ComputedSecondaryStructure } from '../../mol-model-props/computed/secondary-structure';
+import { getAdjustedColorMap } from '../../mol-util/color/color';
 
 // from Jmol http://jmol.sourceforge.net/jscolors/ (shapely)
 const SecondaryStructureColors = ColorMap({
diff --git a/src/mol-theme/color/sequence-id.ts b/src/mol-theme/color/sequence-id.ts
index 4abf60539eff04fed4de36a5f2dc552edc6d3dbd..c7f11f3e4f9d7c30ae4be3f62fccd0ea3e525697 100644
--- a/src/mol-theme/color/sequence-id.ts
+++ b/src/mol-theme/color/sequence-id.ts
@@ -4,14 +4,14 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Unit, StructureElement, Link, ElementIndex } from 'mol-model/structure';
+import { Unit, StructureElement, Link, ElementIndex } from '../../mol-model/structure';
 
-import { ColorScale, Color } from 'mol-util/color';
-import { Location } from 'mol-model/location';
+import { ColorScale, Color } from '../../mol-util/color';
+import { Location } from '../../mol-model/location';
 import { ColorTheme } from '../color';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { ThemeDataContext } from 'mol-theme/theme';
-import { ColorListOptions, ColorListName } from 'mol-util/color/scale';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
+import { ThemeDataContext } from '../../mol-theme/theme';
+import { ColorListOptions, ColorListName } from '../../mol-util/color/scale';
 
 const DefaultColor = Color(0xCCCCCC)
 const Description = 'Gives every polymer residue a color based on its `seq_id` value.'
diff --git a/src/mol-theme/color/shape-group.ts b/src/mol-theme/color/shape-group.ts
index 905cce02c84062540b7465a00d98868e5ffb946a..1c3166fafdadbefae4f83b7b9cd12d708a46ddf3 100644
--- a/src/mol-theme/color/shape-group.ts
+++ b/src/mol-theme/color/shape-group.ts
@@ -5,11 +5,11 @@
  */
 
 import { ColorTheme } from '../color';
-import { Color } from 'mol-util/color';
-import { Location } from 'mol-model/location';
-import { ShapeGroup } from 'mol-model/shape';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { ThemeDataContext } from 'mol-theme/theme';
+import { Color } from '../../mol-util/color';
+import { Location } from '../../mol-model/location';
+import { ShapeGroup } from '../../mol-model/shape';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
+import { ThemeDataContext } from '../../mol-theme/theme';
 
 const DefaultColor = Color(0xCCCCCC)
 const Description = 'Assigns colors as defined by the shape object.'
diff --git a/src/mol-theme/color/uncertainty.ts b/src/mol-theme/color/uncertainty.ts
index 874f441a3c59a9b30f3996fe58ffbcfcbc1a61dd..c8d629fbf18be05efeede237c5b408ba4567bedd 100644
--- a/src/mol-theme/color/uncertainty.ts
+++ b/src/mol-theme/color/uncertainty.ts
@@ -4,13 +4,13 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Color, ColorScale } from 'mol-util/color';
-import { StructureElement, Unit, Link, ElementIndex } from 'mol-model/structure';
-import { Location } from 'mol-model/location';
+import { Color, ColorScale } from '../../mol-util/color';
+import { StructureElement, Unit, Link, ElementIndex } from '../../mol-model/structure';
+import { Location } from '../../mol-model/location';
 import { ColorTheme } from '../color';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
 import { ThemeDataContext } from '../theme';
-import { ColorListName, ColorListOptions } from 'mol-util/color/scale';
+import { ColorListName, ColorListOptions } from '../../mol-util/color/scale';
 
 const DefaultUncertaintyColor = Color(0xffff99)
 const Description = `Assigns a color based on the uncertainty of an element's position, , e.g. B-factor or RMSF, depending on the data availability and experimental technique.`
diff --git a/src/mol-theme/color/uniform.ts b/src/mol-theme/color/uniform.ts
index 0548dbd581941affff65b42dcf5737c9e8dbf52a..5fa271563f20f8808bd818d7c2eca739f54bd07a 100644
--- a/src/mol-theme/color/uniform.ts
+++ b/src/mol-theme/color/uniform.ts
@@ -5,11 +5,11 @@
  */
 
 import { ColorTheme } from '../color';
-import { Color } from 'mol-util/color';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
+import { Color } from '../../mol-util/color';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
 import { ThemeDataContext } from '../theme';
-import { TableLegend } from 'mol-util/color/tables';
-import { defaults } from 'mol-util';
+import { TableLegend } from '../../mol-util/color/tables';
+import { defaults } from '../../mol-util';
 
 const DefaultColor = Color(0xCCCCCC)
 const Description = 'Gives everything the same, uniform color.'
diff --git a/src/mol-theme/color/unit-index.ts b/src/mol-theme/color/unit-index.ts
index c6e7764c3093440435743f2adae3afd861011858..213c1d933f9c3b41e8e51c0a4f4a5b380b68f0ce 100644
--- a/src/mol-theme/color/unit-index.ts
+++ b/src/mol-theme/color/unit-index.ts
@@ -4,15 +4,15 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Color } from 'mol-util/color';
-import { Location } from 'mol-model/location';
-import { StructureElement, Link } from 'mol-model/structure';
+import { Color } from '../../mol-util/color';
+import { Location } from '../../mol-model/location';
+import { StructureElement, Link } from '../../mol-model/structure';
 import { ColorTheme, LocationColor } from '../color';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { ThemeDataContext } from 'mol-theme/theme';
-import { ScaleLegend } from 'mol-util/color/scale';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
+import { ThemeDataContext } from '../../mol-theme/theme';
+import { ScaleLegend } from '../../mol-util/color/scale';
 import { getPaletteParams, getPalette } from './util';
-import { TableLegend } from 'mol-util/color/tables';
+import { TableLegend } from '../../mol-util/color/tables';
 
 const DefaultColor = Color(0xCCCCCC)
 const Description = 'Gives every unit (single chain or collection of single elements) a unique color based on the position (index) of the unit in the list of units in the structure.'
diff --git a/src/mol-theme/color/util.ts b/src/mol-theme/color/util.ts
index 63efaedf322f0b41bea151a1d61145e1ced1b75f..f250571ed1605ec6b771e24f63464d4427140572 100644
--- a/src/mol-theme/color/util.ts
+++ b/src/mol-theme/color/util.ts
@@ -4,11 +4,11 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { DistinctColorsParams, distinctColors } from 'mol-util/color/distinct';
-import { ColorListName, ColorListOptions, ScaleLegend, ColorScale } from 'mol-util/color/scale';
-import { Color } from 'mol-util/color';
-import { TableLegend } from 'mol-util/color/tables';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
+import { DistinctColorsParams, distinctColors } from '../../mol-util/color/distinct';
+import { ColorListName, ColorListOptions, ScaleLegend, ColorScale } from '../../mol-util/color/scale';
+import { Color } from '../../mol-util/color';
+import { TableLegend } from '../../mol-util/color/tables';
 
 const DefaultGetPaletteProps = {
     scaleList: 'RedYellowBlue' as ColorListName
diff --git a/src/mol-theme/label.ts b/src/mol-theme/label.ts
index baeb5d978cfef83901ca70dc19cd5e52e7accdbe..9e247332fc1650422a7fa96421d588121919ad64 100644
--- a/src/mol-theme/label.ts
+++ b/src/mol-theme/label.ts
@@ -5,9 +5,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Unit, StructureElement, StructureProperties as Props, Link } from 'mol-model/structure';
-import { Loci } from 'mol-model/loci';
-import { OrderedSet } from 'mol-data/int';
+import { Unit, StructureElement, StructureProperties as Props, Link } from '../mol-model/structure';
+import { Loci } from '../mol-model/loci';
+import { OrderedSet } from '../mol-data/int';
 
 // for `labelFirst`, don't create right away to avoid problems with circular dependencies/imports
 let elementLocA: StructureElement
diff --git a/src/mol-theme/overpaint.ts b/src/mol-theme/overpaint.ts
index b1468590f574faca768519259cc7b003a6148d93..9f566a056773e2b873b64dd393ce1128dc82cbe3 100644
--- a/src/mol-theme/overpaint.ts
+++ b/src/mol-theme/overpaint.ts
@@ -4,8 +4,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Loci } from 'mol-model/loci';
-import { Color } from 'mol-util/color';
+import { Loci } from '../mol-model/loci';
+import { Color } from '../mol-util/color';
 
 export { Overpaint }
 
diff --git a/src/mol-theme/size.ts b/src/mol-theme/size.ts
index 2bed1e52e9307d1ee5d82e0a1db109b485bbdf4b..71c79b8d22d463ca3b3efa0779c41e5b9d77f227 100644
--- a/src/mol-theme/size.ts
+++ b/src/mol-theme/size.ts
@@ -4,12 +4,12 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { SizeType, LocationSize } from 'mol-geo/geometry/size-data';
+import { SizeType, LocationSize } from '../mol-geo/geometry/size-data';
 import { UniformSizeThemeProvider } from './size/uniform';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { ThemeDataContext, ThemeRegistry, ThemeProvider } from 'mol-theme/theme';
+import { ParamDefinition as PD } from '../mol-util/param-definition';
+import { ThemeDataContext, ThemeRegistry, ThemeProvider } from '../mol-theme/theme';
 import { PhysicalSizeThemeProvider } from './size/physical';
-import { deepEqual } from 'mol-util';
+import { deepEqual } from '../mol-util';
 import { ShapeGroupSizeThemeProvider } from './size/shape-group';
 import { UncertaintySizeThemeProvider } from './size/uncertainty';
 
diff --git a/src/mol-theme/size/physical.ts b/src/mol-theme/size/physical.ts
index 3d141c045e72f9699af758be2fb56501855d48a6..d43551ac77662a70c739fa322634bc9d18defa56 100644
--- a/src/mol-theme/size/physical.ts
+++ b/src/mol-theme/size/physical.ts
@@ -4,12 +4,12 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { StructureElement, Unit, Link, ElementIndex } from 'mol-model/structure';
-import { Location } from 'mol-model/location';
+import { StructureElement, Unit, Link, ElementIndex } from '../../mol-model/structure';
+import { Location } from '../../mol-model/location';
 import { SizeTheme } from '../size';
-import { VdwRadius } from 'mol-model/structure/model/properties/atomic';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { ThemeDataContext } from 'mol-theme/theme';
+import { VdwRadius } from '../../mol-model/structure/model/properties/atomic';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
+import { ThemeDataContext } from '../../mol-theme/theme';
 
 const DefaultSize = 1
 const Description = 'Assigns a physical size.'
diff --git a/src/mol-theme/size/shape-group.ts b/src/mol-theme/size/shape-group.ts
index 8bfcdf4f715519e1e91b88c2914795671857c955..2e2f867d55c5910a8ca844a4cb42215c77607412 100644
--- a/src/mol-theme/size/shape-group.ts
+++ b/src/mol-theme/size/shape-group.ts
@@ -4,11 +4,11 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Location } from 'mol-model/location';
-import { ShapeGroup } from 'mol-model/shape';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { ThemeDataContext } from 'mol-theme/theme';
-import { SizeTheme } from 'mol-theme/size';
+import { Location } from '../../mol-model/location';
+import { ShapeGroup } from '../../mol-model/shape';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
+import { ThemeDataContext } from '../../mol-theme/theme';
+import { SizeTheme } from '../../mol-theme/size';
 
 const DefaultSize = 1
 const Description = 'Assigns sizes as defined by the shape object.'
diff --git a/src/mol-theme/size/uncertainty.ts b/src/mol-theme/size/uncertainty.ts
index d75a7f4ac7974a0273f98b3604669cb50411d36a..c0d9b8eb0994f840bd0137b1ec028837666aaba3 100644
--- a/src/mol-theme/size/uncertainty.ts
+++ b/src/mol-theme/size/uncertainty.ts
@@ -4,11 +4,11 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { StructureElement, Unit, Link, ElementIndex } from 'mol-model/structure';
-import { Location } from 'mol-model/location';
+import { StructureElement, Unit, Link, ElementIndex } from '../../mol-model/structure';
+import { Location } from '../../mol-model/location';
 import { SizeTheme } from '../size';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { ThemeDataContext } from 'mol-theme/theme';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
+import { ThemeDataContext } from '../../mol-theme/theme';
 
 const Description = `Assigns a size reflecting the uncertainty of an element's position, e.g. B-factor or RMSF, depending on the data availability and experimental technique.`
 
diff --git a/src/mol-theme/size/uniform.ts b/src/mol-theme/size/uniform.ts
index 69c7fd832889abd3f869f2770ad7bfba58525997..4d82bef1048e7b01b74c711df38221f3fd3aafdd 100644
--- a/src/mol-theme/size/uniform.ts
+++ b/src/mol-theme/size/uniform.ts
@@ -5,8 +5,8 @@
  */
 
 import { SizeTheme } from '../size';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
-import { ThemeDataContext } from 'mol-theme/theme';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
+import { ThemeDataContext } from '../../mol-theme/theme';
 
 const Description = 'Gives everything the same, uniform size.'
 
diff --git a/src/mol-theme/theme.ts b/src/mol-theme/theme.ts
index bdf11bfed8a356b97705d896a69371f4d403ef0c..db718013189e66ac73928bebae039b61fd28961a 100644
--- a/src/mol-theme/theme.ts
+++ b/src/mol-theme/theme.ts
@@ -6,10 +6,10 @@
 
 import { ColorTheme } from './color';
 import { SizeTheme } from './size';
-import { Structure } from 'mol-model/structure';
-import { VolumeData } from 'mol-model/volume';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Shape } from 'mol-model/shape';
+import { Structure } from '../mol-model/structure';
+import { VolumeData } from '../mol-model/volume';
+import { ParamDefinition as PD } from '../mol-util/param-definition';
+import { Shape } from '../mol-model/shape';
 
 export interface ThemeRegistryContext {
     colorThemeRegistry: ColorTheme.Registry
diff --git a/src/mol-theme/transparency.ts b/src/mol-theme/transparency.ts
index 404a55b220aa6992dc2282fb9dfd16b408476a1a..acb152aed3311a3c259076f569b4adf48e65625b 100644
--- a/src/mol-theme/transparency.ts
+++ b/src/mol-theme/transparency.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { Loci, EmptyLoci } from 'mol-model/loci';
+import { Loci, EmptyLoci } from '../mol-model/loci';
 
 export { Transparency }
 
diff --git a/src/mol-util/color/color.ts b/src/mol-util/color/color.ts
index 13296c6a21cc5482e1413e266dda23f087449447..993fcd5cc2da2cf2e389185732b57e4567ba65ff 100644
--- a/src/mol-util/color/color.ts
+++ b/src/mol-util/color/color.ts
@@ -4,8 +4,8 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { NumberArray } from 'mol-util/type-helpers';
-import { Vec3 } from 'mol-math/linear-algebra';
+import { NumberArray } from '../../mol-util/type-helpers';
+import { Vec3 } from '../../mol-math/linear-algebra';
 import { Hcl } from './spaces/hcl';
 import { Lab } from './spaces/lab';
 
diff --git a/src/mol-util/color/distinct.ts b/src/mol-util/color/distinct.ts
index f818f2b6cb949042d1aca739e475c029b5d5c187..693e576576c33fc78c9faffc9ced818e10872e55 100644
--- a/src/mol-util/color/distinct.ts
+++ b/src/mol-util/color/distinct.ts
@@ -2,17 +2,17 @@
  * Copyright (c) 2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
  *
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
- * 
+ *
  * adapted from https://github.com/internalfx/distinct-colors (ISC License Copyright (c) 2015, InternalFX Inc.)
  * which is heavily inspired by http://tools.medialab.sciences-po.fr/iwanthue/
  */
 
 import { Lab } from './spaces/lab';
 import { Hcl } from './spaces/hcl';
-import { deepClone } from 'mol-util/object';
-import { deepEqual } from 'mol-util';
-import { arraySum } from 'mol-util/array';
-import { ParamDefinition as PD } from 'mol-util/param-definition'
+import { deepClone } from '../../mol-util/object';
+import { deepEqual } from '../../mol-util';
+import { arraySum } from '../../mol-util/array';
+import { ParamDefinition as PD } from '../../mol-util/param-definition'
 
 export const DistinctColorsParams = {
     hue: PD.Interval([1, 360], { min: 0, max: 360, step: 1 }),
diff --git a/src/mol-util/color/scale.ts b/src/mol-util/color/scale.ts
index 73de47668c1a9093493c9d5386cc418f8a1caa06..98160478294e81f0a9dac45287c0cfaf758e0e59 100644
--- a/src/mol-util/color/scale.ts
+++ b/src/mol-util/color/scale.ts
@@ -6,8 +6,8 @@
 
 import { Color } from './color'
 import { ColorBrewer, ColorMatplotlib, ColorOther } from './tables'
-import { defaults } from 'mol-util';
-import { NumberArray } from 'mol-util/type-helpers';
+import { defaults } from '../../mol-util';
+import { NumberArray } from '../../mol-util/type-helpers';
 
 export type ColorListName = (
     keyof typeof ColorBrewer | keyof typeof ColorMatplotlib | keyof typeof ColorOther
diff --git a/src/mol-util/color/spaces/hcl.ts b/src/mol-util/color/spaces/hcl.ts
index cfffa7589c2bbca97ab9aafd32e76b590aa22dc5..266d70376aa4e8a4de0335515358116d164a8cfa 100644
--- a/src/mol-util/color/spaces/hcl.ts
+++ b/src/mol-util/color/spaces/hcl.ts
@@ -2,13 +2,13 @@
  * Copyright (c) 2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
  *
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
- * 
+ *
  * Color conversion code adapted from chroma.js (https://github.com/gka/chroma.js)
  * Copyright (c) 2011-2018, Gregor Aisch, BSD license
  */
 
 import { Color } from '../color';
-import { degToRad } from 'mol-math/misc';
+import { degToRad } from '../../../mol-math/misc';
 import { Lab } from './lab';
 
 export { Hcl }
@@ -17,11 +17,11 @@ interface Hcl extends Array<number> { [d: number]: number, '@type': 'hcl', lengt
 
 /**
  * CIE HCL (Hue-Chroma-Luminance) color
- * 
+ *
  * - H [0..360]
  * - C [0..100]
  * - L [0..100]
- * 
+ *
  * Cylindrical representation of CIELUV (see https://en.wikipedia.org/wiki/CIELUV)
  */
 function Hcl() {
@@ -59,12 +59,12 @@ namespace Hcl {
 
     /**
      * Convert from a qualitative parameter h and a quantitative parameter l to a 24-bit pixel.
-     * 
+     *
      * These formulas were invented by David Dalrymple to obtain maximum contrast without going
      * out of gamut if the parameters are in the range 0-1.
      * A saturation multiplier was added by Gregor Aisch
      */
-    export function toLab(out: Lab, hcl: Hcl): Lab {        
+    export function toLab(out: Lab, hcl: Hcl): Lab {
         let [h, c, l] = hcl
         if (isNaN(h)) h = 0
         h = degToRad(h)
diff --git a/src/mol-util/color/spaces/lab.ts b/src/mol-util/color/spaces/lab.ts
index 4e05f236763bc6a0701a87a7e268a10d23945c96..856e744b1c6856cca32697369c764745243a9b62 100644
--- a/src/mol-util/color/spaces/lab.ts
+++ b/src/mol-util/color/spaces/lab.ts
@@ -2,15 +2,15 @@
  * Copyright (c) 2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
  *
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
- * 
+ *
  * Color conversion code adapted from chroma.js (https://github.com/gka/chroma.js)
  * Copyright (c) 2011-2018, Gregor Aisch, BSD license
  */
 
 import { Color } from '../color';
 import { Hcl } from './hcl';
-import { radToDeg } from 'mol-math/misc';
-import { clamp } from 'mol-math/interpolate';
+import { radToDeg } from '../../../mol-math/misc';
+import { clamp } from '../../../mol-math/interpolate';
 
 export { Lab }
 
@@ -18,11 +18,11 @@ interface Lab extends Array<number> { [d: number]: number, '@type': 'lab', lengt
 
 /**
  * CIE LAB color
- * 
+ *
  * - L* [0..100] - lightness from black to white
  * - a [-100..100] - green (-) to red (+)
  * - b [-100..100] - blue (-) to yellow (+)
- * 
+ *
  * see https://en.wikipedia.org/wiki/CIELAB_color_space
  */
 function Lab() {
@@ -139,19 +139,19 @@ namespace Lab {
     function lab_xyz(t: number) {
         return t > T1 ? t * t * t : T2 * (t - T0)
     }
-    
+
     /** convert component from rgb to xyz */
     function rgb_xyz(c: number) {
         if ((c /= 255) <= 0.04045) return c / 12.92
         return Math.pow((c + 0.055) / 1.055, 2.4)
     }
-    
+
     /** convert component from xyz to lab */
     function xyz_lab(t: number) {
         if (t > T3) return Math.pow(t, 1 / 3)
         return t / T2 + T0
     }
-    
+
     function rgbToXyz(r: number, g: number, b: number) {
         r = rgb_xyz(r)
         g = rgb_xyz(g)
diff --git a/src/mol-util/data-source.ts b/src/mol-util/data-source.ts
index e390a897a8b3a695162b5004618201f39a069f75..99c54d8d66a7c7ea922d76f5410ff8baea5a947e 100644
--- a/src/mol-util/data-source.ts
+++ b/src/mol-util/data-source.ts
@@ -7,8 +7,8 @@
  * Adapted from LiteMol
  */
 
-import { Task, RuntimeContext } from 'mol-task';
-import { utf8Read } from 'mol-io/common/utf8';
+import { Task, RuntimeContext } from '../mol-task';
+import { utf8Read } from '../mol-io/common/utf8';
 // polyfill XMLHttpRequest in node.js
 const XHR = typeof document === 'undefined' ? require('xhr2') as {
     prototype: XMLHttpRequest;
diff --git a/src/mol-util/float-packing.ts b/src/mol-util/float-packing.ts
index e75d31a6bc815612f561069aae7bffbf1c9998fb..66f484c41a330e7bf51b71a1ee6a592bbf8cc246 100644
--- a/src/mol-util/float-packing.ts
+++ b/src/mol-util/float-packing.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { clamp } from 'mol-math/interpolate';
+import { clamp } from '../mol-math/interpolate';
 
 const maxFloat = 10000.0; // NOTE same constant is set in shaders
 const floatLogFactor = Math.log(maxFloat + 1.0);
diff --git a/src/mol-util/graphql-client.ts b/src/mol-util/graphql-client.ts
index 174acc73278eb3617c07adeec62e27d6447e9e4a..45d0602b6e59c9a1aea83122707e3c8cc021c848 100644
--- a/src/mol-util/graphql-client.ts
+++ b/src/mol-util/graphql-client.ts
@@ -6,7 +6,7 @@
  * Adapted from https://github.com/prisma/graphql-request, Copyright (c) 2017 Graphcool, MIT
  */
 
-import { RuntimeContext } from 'mol-task';
+import { RuntimeContext } from '../mol-task';
 
 type Variables = { [key: string]: any }
 
@@ -58,7 +58,7 @@ export class ClientError extends Error {
 }
 
 export class GraphQLClient {
-    constructor(private url: string, private fetch: import('mol-util/data-source').AjaxTask) {
+    constructor(private url: string, private fetch: import('../mol-util/data-source').AjaxTask) {
         this.url = url
     }
 
diff --git a/src/mol-util/index.ts b/src/mol-util/index.ts
index 73d5c415b5d46f3f69de80f8e9eec0a05651f8be..cb63d2888a6ed685ea13999ec7dbfc2c70e6de7e 100644
--- a/src/mol-util/index.ts
+++ b/src/mol-util/index.ts
@@ -9,7 +9,7 @@ import BitFlags from './bit-flags'
 import StringBuilder from './string-builder'
 import UUID from './uuid'
 import Mask from './mask'
-import { Progress } from 'mol-task';
+import { Progress } from '../mol-task';
 
 export * from './value-cell'
 export { BitFlags, StringBuilder, UUID, Mask }
diff --git a/src/mol-util/input/event-offset.ts b/src/mol-util/input/event-offset.ts
index c0c1751f242fefdebb23c77167ea91dedfd1f8bb..9c986e4343216267d91caff079fe41b4d1adf0b6 100644
--- a/src/mol-util/input/event-offset.ts
+++ b/src/mol-util/input/event-offset.ts
@@ -9,7 +9,7 @@
  * copyright (c) 2014 Matt DesLauriers. MIT License
  */
 
-import { Vec2 } from 'mol-math/linear-algebra'
+import { Vec2 } from '../../mol-math/linear-algebra'
 
 const rootPosition = { left: 0, top: 0 }
 
diff --git a/src/mol-util/input/input-observer.ts b/src/mol-util/input/input-observer.ts
index d9b521298c7211a1aa237e9795d4a9829f1efcd9..a488deb0888f8e000869b08f036a361061be0513 100644
--- a/src/mol-util/input/input-observer.ts
+++ b/src/mol-util/input/input-observer.ts
@@ -6,9 +6,9 @@
 
 import { Subject, Observable } from 'rxjs';
 
-import { Vec2 } from 'mol-math/linear-algebra';
+import { Vec2 } from '../../mol-math/linear-algebra';
 
-import { BitFlags, noop } from 'mol-util';
+import { BitFlags, noop } from '../../mol-util';
 
 function getButtons(event: MouseEvent | Touch) {
     if (typeof event === 'object') {
diff --git a/src/mol-util/lru-cache.ts b/src/mol-util/lru-cache.ts
index 38d950981e8cf5d7b5bfebda70c8ac0c52d48445..d393006afb6861937cf833e1a3994c249cc8c5bc 100644
--- a/src/mol-util/lru-cache.ts
+++ b/src/mol-util/lru-cache.ts
@@ -6,7 +6,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { LinkedList } from 'mol-data/generic';
+import { LinkedList } from '../mol-data/generic';
 
 export { LRUCache }
 
diff --git a/src/mol-util/param-definition.ts b/src/mol-util/param-definition.ts
index 67c6b8d06879da6e2dbd7dbe67e52ce27bc89e12..92496fc63e303412c2ebbaada2a99df030b2cb8a 100644
--- a/src/mol-util/param-definition.ts
+++ b/src/mol-util/param-definition.ts
@@ -6,8 +6,8 @@
  */
 
 import { Color as ColorData } from './color';
-import { shallowEqual } from 'mol-util';
-import { Vec2 as Vec2Data, Vec3 as Vec3Data } from 'mol-math/linear-algebra';
+import { shallowEqual } from './index';
+import { Vec2 as Vec2Data, Vec3 as Vec3Data } from '../mol-math/linear-algebra';
 import { deepClone } from './object';
 
 export namespace ParamDefinition {
diff --git a/src/mol-util/performance-monitor.ts b/src/mol-util/performance-monitor.ts
index 615bf93ba0aef9689e84cc820f6a2d11f32caf2e..11ed5d735286cfd8d0cec32660a09b9c24b32d46 100644
--- a/src/mol-util/performance-monitor.ts
+++ b/src/mol-util/performance-monitor.ts
@@ -5,7 +5,7 @@
  * Copyright (c) 2016 - now David Sehnal, licensed under Apache 2.0, See LICENSE file for more info.
  */
 
-import { now } from 'mol-util/now';
+import { now } from '../mol-util/now';
 
 export class PerformanceMonitor {
     private starts = new Map<string, number>();
diff --git a/src/mol-util/uuid.ts b/src/mol-util/uuid.ts
index c1ebe8808a7ef744f6d10777938d16c8bc12c65f..19a86dca83c40c01d6724c502f57207e36a23583 100644
--- a/src/mol-util/uuid.ts
+++ b/src/mol-util/uuid.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { now } from 'mol-util/now';
+import { now } from '../mol-util/now';
 
 type UUID = string & { '@type': 'uuid' }
 
diff --git a/src/perf-tests/chunked-array-vs-native.ts b/src/perf-tests/chunked-array-vs-native.ts
index 2929408d5e336cc9e46e5de8500354f999bf1141..c49ed0b25ab1c273867b6b9418975697f56a2251 100644
--- a/src/perf-tests/chunked-array-vs-native.ts
+++ b/src/perf-tests/chunked-array-vs-native.ts
@@ -1,5 +1,5 @@
 import * as B from 'benchmark'
-import { ChunkedArray } from 'mol-data/util'
+import { ChunkedArray } from '../mol-data/util'
 
 function testNative(size: number) {
     const xs = new Array(size);
diff --git a/src/perf-tests/cif-encoder.ts b/src/perf-tests/cif-encoder.ts
index 5749ba5a4f1cdf503dfe40e66baeea35a428bbef..50420f01c47120c5b683beaf828c114a3bcd9d7b 100644
--- a/src/perf-tests/cif-encoder.ts
+++ b/src/perf-tests/cif-encoder.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { CifWriter } from 'mol-io/writer/cif'
+import { CifWriter } from '../mol-io/writer/cif'
 import * as fs from 'fs'
 
 const category1fields: CifWriter.Field[] = [
diff --git a/src/perf-tests/column.ts b/src/perf-tests/column.ts
index bc1dda619ce874501bce1cfec13bb4aa8f849f1f..1a48a385c791b02b25dec0667c3edc76cf04a829 100644
--- a/src/perf-tests/column.ts
+++ b/src/perf-tests/column.ts
@@ -1,5 +1,5 @@
 import * as B from 'benchmark'
-import { Column as C } from 'mol-data/db'
+import { Column as C } from '../mol-data/db'
 
 export namespace Column {
     function createData(n: number) {
diff --git a/src/perf-tests/iterators.ts b/src/perf-tests/iterators.ts
index 1b0cc26de6fdbad4463bc4430ab30516d38aa614..8c1fd6f4266b5324e9cf51c2cc7dc1f89bd25643 100644
--- a/src/perf-tests/iterators.ts
+++ b/src/perf-tests/iterators.ts
@@ -1,5 +1,5 @@
 import * as B from 'benchmark'
-import It from 'mol-data/iterator'
+import It from '../mol-data/iterator'
 
 function createData(n: number) {
     const data = []; // new Int32Array(n);
diff --git a/src/perf-tests/lookup3d.ts b/src/perf-tests/lookup3d.ts
index a625a6cd16187429723d8b36b6fbb0e29bc52d7d..8df122b3e8f708a35d22e50f4ddf8ce927e34a9d 100644
--- a/src/perf-tests/lookup3d.ts
+++ b/src/perf-tests/lookup3d.ts
@@ -1,13 +1,13 @@
 import * as util from 'util'
 import * as fs from 'fs'
-import CIF from 'mol-io/reader/cif'
+import { CIF } from '../mol-io/reader/cif'
 
-import { Structure } from 'mol-model/structure'
+import { Structure } from '../mol-model/structure'
 
-import { GridLookup3D } from 'mol-math/geometry';
+import { GridLookup3D } from '../mol-math/geometry';
 // import { sortArray } from 'mol-data/util';
-import { OrderedSet } from 'mol-data/int';
-import { trajectoryFromMmCIF } from 'mol-model-formats/structure/mmcif';
+import { OrderedSet } from '../mol-data/int';
+import { trajectoryFromMmCIF } from '../mol-model-formats/structure/mmcif';
 
 require('util.promisify').shim();
 const readFileAsync = util.promisify(fs.readFile);
diff --git a/src/perf-tests/mol-script.ts b/src/perf-tests/mol-script.ts
index f459e3a203a5c48a0df98d490066240b8c9dcab3..0ff78a678e3ce1b1976e9ff77ca34ec1f0499888 100644
--- a/src/perf-tests/mol-script.ts
+++ b/src/perf-tests/mol-script.ts
@@ -1,14 +1,14 @@
-import { MolScriptBuilder } from 'mol-script/language/builder';
-import { compile, QuerySymbolRuntime, DefaultQueryRuntimeTable } from 'mol-script/runtime/query/compiler';
-import { QueryContext, Structure, StructureQuery, CustomPropertyDescriptor } from 'mol-model/structure';
+import { MolScriptBuilder } from '../mol-script/language/builder';
+import { compile, QuerySymbolRuntime, DefaultQueryRuntimeTable } from '../mol-script/runtime/query/compiler';
+import { QueryContext, Structure, StructureQuery, CustomPropertyDescriptor } from '../mol-model/structure';
 import { readCifFile, getModelsAndStructure } from '../apps/structure-info/model';
-import { CustomPropSymbol } from 'mol-script/language/symbol';
-import Type from 'mol-script/language/type';
-import { parseMolScript } from 'mol-script/language/parser';
+import { CustomPropSymbol } from '../mol-script/language/symbol';
+import Type from '../mol-script/language/type';
+import { parseMolScript } from '../mol-script/language/parser';
 import * as util from 'util'
-import { transpileMolScript } from 'mol-script/script/mol-script/symbols';
-import { formatMolScript } from 'mol-script/language/expression-formatter';
-import { StructureQualityReport } from 'mol-model-props/pdbe/structure-quality-report';
+import { transpileMolScript } from '../mol-script/script/mol-script/symbols';
+import { formatMolScript } from '../mol-script/language/expression-formatter';
+import { StructureQualityReport } from '../mol-model-props/pdbe/structure-quality-report';
 import fetch from 'node-fetch';
 
 // import Examples from 'mol-script/script/mol-script/examples'
diff --git a/src/perf-tests/sets.ts b/src/perf-tests/sets.ts
index 8659c2a9b5d49ce8c38dfb417cb27b939a70b8db..5e59c37d237d84628c3298e62b529b833d44599d 100644
--- a/src/perf-tests/sets.ts
+++ b/src/perf-tests/sets.ts
@@ -1,5 +1,5 @@
 import * as B from 'benchmark'
-import { Tuple, Segmentation, OrderedSet as OrdSet } from 'mol-data/int'
+import { Tuple, Segmentation, OrderedSet as OrdSet } from '../mol-data/int'
 // import { ElementSet } from 'mol-model/structure'
 
 // export namespace Iteration {
diff --git a/src/perf-tests/sort.ts b/src/perf-tests/sort.ts
index aef1b0b76e3221ec834014e069789e82b58de19f..35d74414ddeed8f829cf29f3d3e100264714c6e4 100644
--- a/src/perf-tests/sort.ts
+++ b/src/perf-tests/sort.ts
@@ -1,5 +1,5 @@
 import * as B from 'benchmark'
-import * as Sort from 'mol-data/util'
+import * as Sort from '../mol-data/util'
 
 function shuffle(a: number[]) {
     for (let i = a.length - 1; i > 0; i--) {
diff --git a/src/perf-tests/state.ts b/src/perf-tests/state.ts
index 1d9469185f02a7817c6175d2f69f0015c44d96a0..b1a86b0ca81bd4ad2589dd2ee3cda6b8ed66fdac 100644
--- a/src/perf-tests/state.ts
+++ b/src/perf-tests/state.ts
@@ -1,5 +1,5 @@
-// import { State, StateObject, StateTree, Transformer } from 'mol-state';
-// import { Task } from 'mol-task';
+// import { State, StateObject, StateTree, Transformer } from '../mol-state';
+// import { Task } from '../mol-task';
 // import * as util from 'util';
 
 // export type TypeClass = 'root' | 'shape' | 'prop'
diff --git a/src/perf-tests/string-builder.ts b/src/perf-tests/string-builder.ts
index 4801a1f692f0e2068a7a6800af08c14db39eb3ec..792fb40c19c508e2a97058c05af7aff5141e8d39 100644
--- a/src/perf-tests/string-builder.ts
+++ b/src/perf-tests/string-builder.ts
@@ -1,5 +1,5 @@
 import * as B from 'benchmark'
-import SB from 'mol-util/string-builder'
+import SB from '../mol-util/string-builder'
 
 export namespace Test {
     function createData(n: number) {
diff --git a/src/perf-tests/structure.ts b/src/perf-tests/structure.ts
index 48f9e54d5823f01af4f6d529a278513827004bab..954990c08057f68dc5f0e20323d437bc85df2f34 100644
--- a/src/perf-tests/structure.ts
+++ b/src/perf-tests/structure.ts
@@ -9,16 +9,16 @@ import * as B from 'benchmark'
 import * as util from 'util'
 import * as fs from 'fs'
 import fetch from 'node-fetch'
-import CIF from 'mol-io/reader/cif'
+import { CIF } from '../mol-io/reader/cif'
 
-import { Structure, Model, Queries as Q, StructureElement, StructureSelection, StructureSymmetry, StructureQuery, StructureProperties as SP } from 'mol-model/structure'
-// import { Segmentation, OrderedSet } from 'mol-data/int'
+import { Structure, Model, Queries as Q, StructureElement, StructureSelection, StructureSymmetry, StructureQuery, StructureProperties as SP } from '../mol-model/structure'
+// import { Segmentation, OrderedSet } from '../mol-data/int'
 
-import to_mmCIF from 'mol-model/structure/export/mmcif'
-import { Vec3 } from 'mol-math/linear-algebra';
-import { trajectoryFromMmCIF } from 'mol-model-formats/structure/mmcif';
-// import { printUnits } from 'apps/structure-info/model';
-// import { EquivalenceClasses } from 'mol-data/util';
+import to_mmCIF from '../mol-model/structure/export/mmcif'
+import { Vec3 } from '../mol-math/linear-algebra';
+import { trajectoryFromMmCIF } from '../mol-model-formats/structure/mmcif';
+// import { printUnits } from '../apps/structure-info/model';
+// import { EquivalenceClasses } from '../mol-data/util';
 
 require('util.promisify').shim();
 const readFileAsync = util.promisify(fs.readFile);
diff --git a/src/perf-tests/tasks.ts b/src/perf-tests/tasks.ts
index 447e1c6d014681c5da6ae75eaa6a5fadccebdfc2..9cfc3e01f891a3a8ad9b6fce96a24a4cd278e7ec 100644
--- a/src/perf-tests/tasks.ts
+++ b/src/perf-tests/tasks.ts
@@ -1,6 +1,6 @@
 import * as B from 'benchmark'
-import { now } from 'mol-util/now';
-import { Scheduler } from 'mol-task/util/scheduler'
+import { now } from '../mol-util/now';
+import { Scheduler } from '../mol-task/util/scheduler'
 
 export namespace Tasks {
     export class Yielding {
diff --git a/src/servers/common/swagger-ui/index.ts b/src/servers/common/swagger-ui/index.ts
index fadda6560e2a9977b850669dbe94a51f84978b0b..504cced90a290bee8e9c33f7691a27016289ebeb 100644
--- a/src/servers/common/swagger-ui/index.ts
+++ b/src/servers/common/swagger-ui/index.ts
@@ -8,7 +8,7 @@ import * as express from 'express'
 import * as fs from 'fs'
 import { getAbsoluteFSPath } from 'swagger-ui-dist'
 import { ServeStaticOptions } from 'serve-static';
-import { interpolate } from 'mol-util/string';
+import { interpolate } from '../../../mol-util/string';
 
 export function swaggerUiAssetsHandler(options?: ServeStaticOptions) {
     const opts = options || {}
diff --git a/src/servers/model/preprocess/converter.ts b/src/servers/model/preprocess/converter.ts
index 0ef1bb1b58fc0ed73766afc3f7c2ceeedac565ec..fcbbe855cec65c04f1de44c31a5b0350d995b906 100644
--- a/src/servers/model/preprocess/converter.ts
+++ b/src/servers/model/preprocess/converter.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { CifCategory, CifField, CifFrame, getCifFieldType } from 'mol-io/reader/cif';
-import { CifWriter } from 'mol-io/writer/cif';
-import { Task } from 'mol-task';
+import { CifCategory, CifField, CifFrame, getCifFieldType } from '../../../mol-io/reader/cif';
+import { CifWriter } from '../../../mol-io/writer/cif';
+import { Task } from '../../../mol-task';
 // import { showProgress } from './util';
 
 function getCategoryInstanceProvider(cat: CifCategory, fields: CifWriter.Field[]): CifWriter.Category {
diff --git a/src/servers/model/preprocess/parallel.ts b/src/servers/model/preprocess/parallel.ts
index 1b600b5b031313b63827de07d5a13992e541974d..3d222242a968596affb630c34da06d767518aefc 100644
--- a/src/servers/model/preprocess/parallel.ts
+++ b/src/servers/model/preprocess/parallel.ts
@@ -6,8 +6,8 @@
 
 import * as path from 'path'
 import * as cluster from 'cluster'
-import { now } from 'mol-util/now';
-import { PerformanceMonitor } from 'mol-util/performance-monitor';
+import { now } from '../../../mol-util/now';
+import { PerformanceMonitor } from '../../../mol-util/performance-monitor';
 import { preprocessFile } from './preprocess';
 import { createModelPropertiesProvider } from '../property-provider';
 
@@ -85,4 +85,3 @@ function partitionArray<T>(xs: T[], count: number): T[][] {
     }
     return ret;
 }
-
diff --git a/src/servers/model/preprocess/preprocess.ts b/src/servers/model/preprocess/preprocess.ts
index f36ee59ee64122cdf2f856a7c58960dbec67e06d..727da1d02398ccfab086b9db97bca3d221fdeeb8 100644
--- a/src/servers/model/preprocess/preprocess.ts
+++ b/src/servers/model/preprocess/preprocess.ts
@@ -6,11 +6,11 @@
 
 import { readStructureWrapper, resolveStructures, readDataAndFrame } from '../server/structure-wrapper';
 import { classifyCif } from './converter';
-import { Structure } from 'mol-model/structure';
-import { CifWriter } from 'mol-io/writer/cif';
-import Writer from 'mol-io/writer/writer';
+import { Structure } from '../../../mol-model/structure';
+import { CifWriter } from '../../../mol-io/writer/cif';
+import Writer from '../../../mol-io/writer/writer';
 import { wrapFileToWriter } from '../server/api-local';
-import { encode_mmCIF_categories, CifExportContext } from 'mol-model/structure/export/mmcif';
+import { encode_mmCIF_categories, CifExportContext } from '../../../mol-model/structure/export/mmcif';
 import { ModelPropertiesProvider } from '../property-provider';
 
 // TODO: error handling
diff --git a/src/servers/model/preprocess/util.ts b/src/servers/model/preprocess/util.ts
index 0cb595c682920e7b3c150ba9382608092806754f..d83106b3a35f0e4c69c0ce6e235fdf2334d9eeae 100644
--- a/src/servers/model/preprocess/util.ts
+++ b/src/servers/model/preprocess/util.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Progress } from 'mol-task';
+import { Progress } from '../../../mol-task';
 
 export function showProgress(p: Progress) {
     process.stdout.write(`\r${new Array(80).join(' ')}`);
diff --git a/src/servers/model/properties/providers/pdbe.ts b/src/servers/model/properties/providers/pdbe.ts
index 66fe25ef91c515909eb6ffc67af3b44df7f7560c..f0b254dd0aa98000cb0d7aeb84865f0359fe9664 100644
--- a/src/servers/model/properties/providers/pdbe.ts
+++ b/src/servers/model/properties/providers/pdbe.ts
@@ -6,14 +6,14 @@
 
 import * as fs from 'fs'
 import * as path from 'path'
-import { Model } from 'mol-model/structure';
-import { StructureQualityReport } from 'mol-model-props/pdbe/structure-quality-report';
+import { Model } from '../../../../mol-model/structure';
+import { StructureQualityReport } from '../../../../mol-model-props/pdbe/structure-quality-report';
 import { fetchRetry } from '../../utils/fetch-retry';
-import { UUID } from 'mol-util';
-import { PDBePreferredAssembly } from 'mol-model-props/pdbe/preferred-assembly';
-import { PDBeStructRefDomain } from 'mol-model-props/pdbe/struct-ref-domain';
+import { UUID } from '../../../../mol-util';
+import { PDBePreferredAssembly } from '../../../../mol-model-props/pdbe/preferred-assembly';
+import { PDBeStructRefDomain } from '../../../../mol-model-props/pdbe/struct-ref-domain';
 import { AttachModelProperty } from '../../property-provider';
-import { ConsoleLogger } from 'mol-util/console-logger';
+import { ConsoleLogger } from '../../../../mol-util/console-logger';
 
 export const PDBe_structureQualityReport: AttachModelProperty = ({ model, params, cache }) => {
     const PDBe_apiSourceJson = useFileSource(params)
diff --git a/src/servers/model/properties/providers/rcsb.ts b/src/servers/model/properties/providers/rcsb.ts
index 001bf56b81b8da5e45968eb41d42e475b65e0062..e2ae21e66dd80fe2487b687600a708524b7fcf7d 100644
--- a/src/servers/model/properties/providers/rcsb.ts
+++ b/src/servers/model/properties/providers/rcsb.ts
@@ -4,7 +4,7 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { AssemblySymmetry } from 'mol-model-props/rcsb/assembly-symmetry';
+import { AssemblySymmetry } from '../../../../mol-model-props/rcsb/assembly-symmetry';
 import { AttachModelProperty } from '../../property-provider';
 
 export const RCSB_assemblySymmetry: AttachModelProperty = ({ model }) => {
diff --git a/src/servers/model/property-provider.ts b/src/servers/model/property-provider.ts
index 77ab34c50f691af4eec5b94f8aef27d5adce1f13..d3b4ad00a0d836192f02361b408ee31ad3f189a4 100644
--- a/src/servers/model/property-provider.ts
+++ b/src/servers/model/property-provider.ts
@@ -5,9 +5,9 @@
  */
 
 import * as fs from 'fs'
-import { Model } from 'mol-model/structure';
+import { Model } from '../../mol-model/structure';
 import Config from './config';
-import { ConsoleLogger } from 'mol-util/console-logger';
+import { ConsoleLogger } from '../../mol-util/console-logger';
 
 export interface ModelPropertyProviderConfig {
     sources: string[],
diff --git a/src/servers/model/query/atoms.ts b/src/servers/model/query/atoms.ts
index 4f38ba3d28da5aa2d2530ece44dd0d8484bcd60c..1742592ca80e69a69390e931f67e80b4926513c6 100644
--- a/src/servers/model/query/atoms.ts
+++ b/src/servers/model/query/atoms.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { QueryPredicate, StructureElement, StructureProperties as Props } from 'mol-model/structure';
-import { AtomsQueryParams } from 'mol-model/structure/query/queries/generators';
+import { QueryPredicate, StructureElement, StructureProperties as Props } from '../../../mol-model/structure';
+import { AtomsQueryParams } from '../../../mol-model/structure/query/queries/generators';
 import { AtomSiteSchema, AtomSiteSchemaElement } from '../server/api';
 
 export function getAtomsTests(params: AtomSiteSchema): Partial<AtomsQueryParams>[] {
diff --git a/src/servers/model/server.ts b/src/servers/model/server.ts
index 22e5d8db9246b5121c7e286a009457a1eaecf019..b227cedac82712a35acedd4774d2bd660bfcbced 100644
--- a/src/servers/model/server.ts
+++ b/src/servers/model/server.ts
@@ -7,8 +7,8 @@
 import * as express from 'express'
 import * as compression from 'compression'
 import ServerConfig from './config'
-import { ConsoleLogger } from 'mol-util/console-logger';
-import { PerformanceMonitor } from 'mol-util/performance-monitor';
+import { ConsoleLogger } from '../../mol-util/console-logger';
+import { PerformanceMonitor } from '../../mol-util/performance-monitor';
 import { initWebApi } from './server/api-web';
 import Version from './version'
 
diff --git a/src/servers/model/server/api-local.ts b/src/servers/model/server/api-local.ts
index 74178f2c8204b35b48591d995b43eb9fd87e9c05..5b27b9859040adfe01f99e842bc5663a14ebfa5d 100644
--- a/src/servers/model/server/api-local.ts
+++ b/src/servers/model/server/api-local.ts
@@ -7,11 +7,11 @@
 import * as fs from 'fs';
 import * as path from 'path';
 import { JobManager, Job } from './jobs';
-import { ConsoleLogger } from 'mol-util/console-logger';
+import { ConsoleLogger } from '../../../mol-util/console-logger';
 import { resolveJob } from './query';
 import { StructureCache } from './structure-wrapper';
-import { now } from 'mol-util/now';
-import { PerformanceMonitor } from 'mol-util/performance-monitor';
+import { now } from '../../../mol-util/now';
+import { PerformanceMonitor } from '../../../mol-util/performance-monitor';
 import { QueryName } from './api';
 
 export type LocalInput = {
diff --git a/src/servers/model/server/api-web.ts b/src/servers/model/server/api-web.ts
index a472a9f3da3d1f54e2c0658808d16dadc4bd71cc..d1a1dbfb9606fe33a795ba817fa12e297e01f418 100644
--- a/src/servers/model/server/api-web.ts
+++ b/src/servers/model/server/api-web.ts
@@ -8,10 +8,10 @@ import * as fs from 'fs';
 import * as path from 'path';
 import * as express from 'express';
 import Config from '../config';
-import { ConsoleLogger } from 'mol-util/console-logger';
+import { ConsoleLogger } from '../../../mol-util/console-logger';
 import { resolveJob } from './query';
 import { JobManager } from './jobs';
-import { UUID } from 'mol-util';
+import { UUID } from '../../../mol-util';
 import { LandingPage } from './landing';
 
 function makePath(p: string) {
diff --git a/src/servers/model/server/api.ts b/src/servers/model/server/api.ts
index ced5f70163b88405cd57d6bcb47cdf4781a671fc..fd354875b4397a69d2b8390273e9367966b4f99e 100644
--- a/src/servers/model/server/api.ts
+++ b/src/servers/model/server/api.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Queries, Structure, StructureQuery, StructureSymmetry } from 'mol-model/structure';
+import { Queries, Structure, StructureQuery, StructureSymmetry } from '../../../mol-model/structure';
 import { getAtomsTests } from '../query/atoms';
 
 export enum QueryParamType {
@@ -190,5 +190,5 @@ export const QueryList = (function () {
 
 export function normalizeQueryParams(query: QueryDefinition, params: any) {
     return params;
-    //return _normalizeQueryParams(params, query.params);
+    // return _normalizeQueryParams(params, query.params);
 }
\ No newline at end of file
diff --git a/src/servers/model/server/cache.ts b/src/servers/model/server/cache.ts
index 0da256c05ed3a2e5d4d4374a27f7c26d40dcba04..24cafe58fe172c885ead26fb25a20d398c1a956d 100644
--- a/src/servers/model/server/cache.ts
+++ b/src/servers/model/server/cache.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { ConsoleLogger } from 'mol-util/console-logger'
-import { LinkedList } from 'mol-data/generic';
+import { ConsoleLogger } from '../../../mol-util/console-logger'
+import { LinkedList } from '../../../mol-data/generic';
 import ServerConfig from '../config';
 
 interface CacheEntry<T> {
diff --git a/src/servers/model/server/jobs.ts b/src/servers/model/server/jobs.ts
index f1e408174af7ac66d2dc79610df48d3b95592e7b..52e0e06b99eff6caf3e89f6d34598de351dcf688 100644
--- a/src/servers/model/server/jobs.ts
+++ b/src/servers/model/server/jobs.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { UUID } from 'mol-util';
+import { UUID } from '../../../mol-util';
 import { getQueryByName, normalizeQueryParams, QueryDefinition, QueryName, QueryParams } from './api';
-import { LinkedList } from 'mol-data/generic';
+import { LinkedList } from '../../../mol-data/generic';
 
 export interface ResponseFormat {
     isBinary: boolean
diff --git a/src/servers/model/server/query.ts b/src/servers/model/server/query.ts
index a9cd4c754a90e9d56ab0c23554feee44b589673e..3449f485f54619ebdc91f040b298c52856032e08 100644
--- a/src/servers/model/server/query.ts
+++ b/src/servers/model/server/query.ts
@@ -4,14 +4,14 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Column } from 'mol-data/db';
-import { CifWriter } from 'mol-io/writer/cif';
-import { StructureQuery, StructureSelection, Structure } from 'mol-model/structure';
-import { encode_mmCIF_categories } from 'mol-model/structure/export/mmcif';
-import { Progress } from 'mol-task';
-import { now } from 'mol-util/now';
-import { ConsoleLogger } from 'mol-util/console-logger';
-import { PerformanceMonitor } from 'mol-util/performance-monitor';
+import { Column } from '../../../mol-data/db';
+import { CifWriter } from '../../../mol-io/writer/cif';
+import { StructureQuery, StructureSelection, Structure } from '../../../mol-model/structure';
+import { encode_mmCIF_categories } from '../../../mol-model/structure/export/mmcif';
+import { Progress } from '../../../mol-task';
+import { now } from '../../../mol-util/now';
+import { ConsoleLogger } from '../../../mol-util/console-logger';
+import { PerformanceMonitor } from '../../../mol-util/performance-monitor';
 import Config from '../config';
 import Version from '../version';
 import { Job } from './jobs';
diff --git a/src/servers/model/server/structure-wrapper.ts b/src/servers/model/server/structure-wrapper.ts
index 6eef79c02a7d393f4a4a2f1dc3fde726e3e799d0..ee6d556255cd07f276f7c018633cb85272ce5fc3 100644
--- a/src/servers/model/server/structure-wrapper.ts
+++ b/src/servers/model/server/structure-wrapper.ts
@@ -4,18 +4,18 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Structure, Model } from 'mol-model/structure';
-import { PerformanceMonitor } from 'mol-util/performance-monitor';
+import { Structure, Model } from '../../../mol-model/structure';
+import { PerformanceMonitor } from '../../../mol-util/performance-monitor';
 import { Cache } from './cache';
 import Config from '../config';
-import CIF, { CifFrame } from 'mol-io/reader/cif'
+import { CIF, CifFrame } from '../../../mol-io/reader/cif'
 import * as util from 'util'
 import * as fs from 'fs'
 import * as zlib from 'zlib'
 import { Job } from './jobs';
-import { ConsoleLogger } from 'mol-util/console-logger';
+import { ConsoleLogger } from '../../../mol-util/console-logger';
 import { ModelPropertiesProvider } from '../property-provider';
-import { trajectoryFromMmCIF } from 'mol-model-formats/structure/mmcif';
+import { trajectoryFromMmCIF } from '../../../mol-model-formats/structure/mmcif';
 
 require('util.promisify').shim();
 
diff --git a/src/servers/model/utils/fetch-props-pdbe.ts b/src/servers/model/utils/fetch-props-pdbe.ts
index 76d77f662c7b799ccd6cea58a1143a3880be40e2..da6a1d326869e6057fc7eff6c26c421f87a74cbd 100644
--- a/src/servers/model/utils/fetch-props-pdbe.ts
+++ b/src/servers/model/utils/fetch-props-pdbe.ts
@@ -8,9 +8,9 @@ import fetch from 'node-fetch';
 import * as fs from 'fs'
 import * as path from 'path'
 import * as argparse from 'argparse'
-import { makeDir } from 'mol-util/make-dir';
-import { now } from 'mol-util/now';
-import { PerformanceMonitor } from 'mol-util/performance-monitor';
+import { makeDir } from '../../../mol-util/make-dir';
+import { now } from '../../../mol-util/now';
+import { PerformanceMonitor } from '../../../mol-util/performance-monitor';
 
 const cmdParser = new argparse.ArgumentParser({
     addHelp: true,
@@ -79,9 +79,9 @@ async function process() {
                 console.error(ee, '' + e);
              }
         }
-        //const query = await fetch(`https://www.ebi.ac.uk/pdbe/api/validation/residuewise_outlier_summary/entry`, { method: 'POST', body });
-        //console.log(query.status);
-        //const data = await query.text();
+        // const query = await fetch(`https://www.ebi.ac.uk/pdbe/api/validation/residuewise_outlier_summary/entry`, { method: 'POST', body });
+        // console.log(query.status);
+        // const data = await query.text();
         fs.writeFileSync(path.join(cmdArgs.out, e.key + '.json'), JSON.stringify(data));
         const time = now() - started;
         console.log(`${++prog}/${entries.length} in ${PerformanceMonitor.format(time)} (last ${PerformanceMonitor.format(now() - ts)}, avg ${PerformanceMonitor.format(time / prog)})`);
diff --git a/src/servers/model/utils/fetch-retry.ts b/src/servers/model/utils/fetch-retry.ts
index b29b7ec358fa79d07fea57727288effeec01bb56..7071dc3089bad4fe723cf9779cb3cd99aa184ad6 100644
--- a/src/servers/model/utils/fetch-retry.ts
+++ b/src/servers/model/utils/fetch-retry.ts
@@ -5,7 +5,7 @@
  */
 
 import fetch from 'node-fetch';
-import { retryIf } from 'mol-util/retry-if';
+import { retryIf } from '../../../mol-util/retry-if';
 
 const RETRIABLE_NETWORK_ERRORS = [
     'ECONNRESET', 'ENOTFOUND', 'ESOCKETTIMEDOUT', 'ETIMEDOUT',
diff --git a/src/servers/volume/common/binary-schema.ts b/src/servers/volume/common/binary-schema.ts
index cdc72fb51d33c5190dfb511225c11c63538be095..96c35c681e905dcc06f68c6c1d45ca3681c933d3 100644
--- a/src/servers/volume/common/binary-schema.ts
+++ b/src/servers/volume/common/binary-schema.ts
@@ -6,8 +6,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import * as UTF8 from 'mol-io/common/utf8'
-import { SimpleBuffer } from 'mol-io/common/simple-buffer';
+import * as UTF8 from '../../../mol-io/common/utf8'
+import { SimpleBuffer } from '../../../mol-io/common/simple-buffer';
 
 export type Bool = { kind: 'bool' }
 export type Int = { kind: 'int' }
diff --git a/src/servers/volume/common/data-format.ts b/src/servers/volume/common/data-format.ts
index e3a51fe8cc89353ca46d4801c975378f64330d91..61ea4688834603d54324f9a932313bd2ae97bbe4 100644
--- a/src/servers/volume/common/data-format.ts
+++ b/src/servers/volume/common/data-format.ts
@@ -7,8 +7,8 @@
  */
 
 import * as Schema from './binary-schema'
-import { FileHandle } from 'mol-io/common/file-handle';
-import { TypedArrayValueType } from 'mol-io/common/typed-array';
+import { FileHandle } from '../../../mol-io/common/file-handle';
+import { TypedArrayValueType } from '../../../mol-io/common/typed-array';
 
 export interface Spacegroup {
     number: number,
diff --git a/src/servers/volume/common/file.ts b/src/servers/volume/common/file.ts
index f641faf7e1c47d393f80f1c12389c652ec3f1d35..753512601af44476e82b6833e19752416dd97aac 100644
--- a/src/servers/volume/common/file.ts
+++ b/src/servers/volume/common/file.ts
@@ -8,8 +8,8 @@
 
 import * as fs from 'fs'
 import * as path from 'path'
-import { FileHandle } from 'mol-io/common/file-handle';
-import { SimpleBuffer } from 'mol-io/common/simple-buffer';
+import { FileHandle } from '../../../mol-io/common/file-handle';
+import { SimpleBuffer } from '../../../mol-io/common/simple-buffer';
 
 export async function openRead(filename: string) {
     return new Promise<number>((res, rej) => {
diff --git a/src/servers/volume/pack/data-model.ts b/src/servers/volume/pack/data-model.ts
index 9e80f0f80be0cb6a1a4ed76546aed775e4b56dd0..f3d6bbdef4c0e605ee5435b5026664df04731ace 100644
--- a/src/servers/volume/pack/data-model.ts
+++ b/src/servers/volume/pack/data-model.ts
@@ -7,9 +7,9 @@
  */
 import * as Format from './format'
 import * as DataFormat from '../common/data-format'
-import { FileHandle } from 'mol-io/common/file-handle';
-import { SimpleBuffer } from 'mol-io/common/simple-buffer';
-import { TypedArrayValueArray, TypedArrayValueType } from 'mol-io/common/typed-array';
+import { FileHandle } from '../../../mol-io/common/file-handle';
+import { SimpleBuffer } from '../../../mol-io/common/simple-buffer';
+import { TypedArrayValueArray, TypedArrayValueType } from '../../../mol-io/common/typed-array';
 
 const FORMAT_VERSION = '1.0.0';
 
diff --git a/src/servers/volume/pack/downsampling.ts b/src/servers/volume/pack/downsampling.ts
index 25f67d795e5676a6f6ebe026d5f73fc0383db6f6..47397b6bbdfb8a9aaa35d6f6de0a77d0e29d602b 100644
--- a/src/servers/volume/pack/downsampling.ts
+++ b/src/servers/volume/pack/downsampling.ts
@@ -7,7 +7,7 @@
  */
 
 import * as Data from './data-model'
-import { TypedArrayValueArray } from 'mol-io/common/typed-array';
+import { TypedArrayValueArray } from '../../../mol-io/common/typed-array';
 
 /**
  * Downsamples each slice of input data and checks if there is enough data to perform
diff --git a/src/servers/volume/pack/format.ts b/src/servers/volume/pack/format.ts
index 313d083e2033e8ea3e5ad96429bca5385b153fb0..8988a37ef1c24b22c7fb8b36f3fb2d007af52383 100644
--- a/src/servers/volume/pack/format.ts
+++ b/src/servers/volume/pack/format.ts
@@ -6,9 +6,9 @@
  */
 
 import * as File from '../common/file'
-import { FileHandle } from 'mol-io/common/file-handle';
+import { FileHandle } from '../../../mol-io/common/file-handle';
 import { Ccp4Provider } from './format/ccp4';
-import { TypedArrayBufferContext, TypedArrayValueArray, TypedArrayValueType, getElementByteSize, createTypedArrayBufferContext } from 'mol-io/common/typed-array';
+import { TypedArrayBufferContext, TypedArrayValueArray, TypedArrayValueType, getElementByteSize, createTypedArrayBufferContext } from '../../../mol-io/common/typed-array';
 import { Dsn6Provider } from './format/dsn6';
 
 export interface Header {
diff --git a/src/servers/volume/pack/format/ccp4.ts b/src/servers/volume/pack/format/ccp4.ts
index 6269dff6571fc517cb9f881a6cd10889eba4a385..721ee99eb1db4fb7f2c158e2dc4d77488fa8f389 100644
--- a/src/servers/volume/pack/format/ccp4.ts
+++ b/src/servers/volume/pack/format/ccp4.ts
@@ -5,11 +5,11 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { FileHandle } from 'mol-io/common/file-handle';
-import { readCcp4Header, readCcp4Slices, getCcp4DataOffset, getCcp4ValueType } from 'mol-io/reader/ccp4/parser';
+import { FileHandle } from '../../../../mol-io/common/file-handle';
+import { readCcp4Header, readCcp4Slices, getCcp4DataOffset, getCcp4ValueType } from '../../../../mol-io/reader/ccp4/parser';
 import { Header, Provider, Data } from '../format';
-import { getCcp4Origin } from 'mol-model-formats/volume/ccp4';
-import { Ccp4Header } from 'mol-io/reader/ccp4/schema';
+import { getCcp4Origin } from '../../../../mol-model-formats/volume/ccp4';
+import { Ccp4Header } from '../../../../mol-io/reader/ccp4/schema';
 
 async function readHeader(name: string, file: FileHandle) {
     const { header: ccp4Header, littleEndian } = await readCcp4Header(file)
diff --git a/src/servers/volume/pack/format/dsn6.ts b/src/servers/volume/pack/format/dsn6.ts
index 088a7bac5567e148e7358a20a849346d19aa6c04..93817a7b4ed0511ef78946fbfdbbeed92a4ec03d 100644
--- a/src/servers/volume/pack/format/dsn6.ts
+++ b/src/servers/volume/pack/format/dsn6.ts
@@ -4,11 +4,11 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { FileHandle } from 'mol-io/common/file-handle';
+import { FileHandle } from '../../../../mol-io/common/file-handle';
 import { Header, Provider, Data } from '../format';
-import { readDsn6Header, dsn6HeaderSize, parseDsn6Values, getDsn6Counts } from 'mol-io/reader/dsn6/parser';
-import { TypedArrayValueType } from 'mol-io/common/typed-array';
-import { Dsn6Header } from 'mol-io/reader/dsn6/schema';
+import { readDsn6Header, dsn6HeaderSize, parseDsn6Values, getDsn6Counts } from '../../../../mol-io/reader/dsn6/parser';
+import { TypedArrayValueType } from '../../../../mol-io/common/typed-array';
+import { Dsn6Header } from '../../../../mol-io/reader/dsn6/schema';
 
 async function readHeader(name: string, file: FileHandle) {
     const { header: dsn6Header, littleEndian } = await readDsn6Header(file)
diff --git a/src/servers/volume/pack/main.ts b/src/servers/volume/pack/main.ts
index 270682fbeb6f061f1752420102d9f1faa579238a..a6b9ec27c34e3050dfbf0ede52c6f220653911b5 100644
--- a/src/servers/volume/pack/main.ts
+++ b/src/servers/volume/pack/main.ts
@@ -11,7 +11,7 @@ import * as File from '../common/file'
 import * as Data from './data-model'
 import * as Sampling from './sampling'
 import * as DataFormat from '../common/data-format'
-import { FileHandle } from 'mol-io/common/file-handle';
+import { FileHandle } from '../../../mol-io/common/file-handle';
 
 export default async function pack(input: { name: string, filename: string }[], blockSizeInMB: number, isPeriodic: boolean, outputFilename: string, format: Format.Type) {
     try {
diff --git a/src/servers/volume/pack/sampling.ts b/src/servers/volume/pack/sampling.ts
index 299c1fb8cb802b6aeb76faf85bfffe861763802b..356286a3e2d545fcaf9a032419b0e7f8a4497981 100644
--- a/src/servers/volume/pack/sampling.ts
+++ b/src/servers/volume/pack/sampling.ts
@@ -12,9 +12,9 @@ import * as File from '../common/file'
 import * as Downsampling from './downsampling'
 import * as Writer from './writer'
 import * as DataFormat from '../common/data-format'
-import { FileHandle } from 'mol-io/common/file-handle';
-import { getElementByteSize, createTypedArray, TypedArrayValueType } from 'mol-io/common/typed-array';
-import { SimpleBuffer } from 'mol-io/common/simple-buffer';
+import { FileHandle } from '../../../mol-io/common/file-handle';
+import { getElementByteSize, createTypedArray, TypedArrayValueType } from '../../../mol-io/common/typed-array';
+import { SimpleBuffer } from '../../../mol-io/common/simple-buffer';
 
 export async function createContext(filename: string, channels: Format.Context[], blockSize: number, isPeriodic: boolean): Promise<Data.Context> {
     const { extent, valueType, grid, origin } = channels[0].data.header;
diff --git a/src/servers/volume/pack/writer.ts b/src/servers/volume/pack/writer.ts
index 287feae38b140ded5127563e7b5868d59e283ab5..eb46d5fb48072efbdb293bf15136d980e746763b 100644
--- a/src/servers/volume/pack/writer.ts
+++ b/src/servers/volume/pack/writer.ts
@@ -7,8 +7,8 @@
  */
 
 import * as Data from './data-model'
-import { getElementByteSize } from 'mol-io/common/typed-array';
-import { SimpleBuffer } from 'mol-io/common/simple-buffer';
+import { getElementByteSize } from '../../../mol-io/common/typed-array';
+import { SimpleBuffer } from '../../../mol-io/common/simple-buffer';
 
 /** Converts a layer to blocks and writes them to the output file. */
 export async function writeBlockLayer(ctx: Data.Context, sampling: Data.Sampling) {
diff --git a/src/servers/volume/server.ts b/src/servers/volume/server.ts
index d8b6149a265082eca4cccc66e3b03dd8621e930e..9dd5a8b31c51df852a33f41ed57ad4f562aed213 100644
--- a/src/servers/volume/server.ts
+++ b/src/servers/volume/server.ts
@@ -12,7 +12,7 @@ import * as compression from 'compression'
 
 import init from './server/web-api'
 import VERSION from './server/version'
-import { ConsoleLogger } from 'mol-util/console-logger'
+import { ConsoleLogger } from '../../mol-util/console-logger'
 import { State } from './server/state'
 import { addServerArgs, addLimitsArgs, LimitsConfig, setConfig, ServerConfig } from './config';
 import * as argparse from 'argparse'
diff --git a/src/servers/volume/server/algebra/box.ts b/src/servers/volume/server/algebra/box.ts
index 876406e9e167a7a436d9c719fa27dba1e688431f..d604156ff067eb092acde76a62ef05d514812d7b 100644
--- a/src/servers/volume/server/algebra/box.ts
+++ b/src/servers/volume/server/algebra/box.ts
@@ -3,7 +3,7 @@
  */
 
 import * as Coords from './coordinate'
-import { SpacegroupCell } from 'mol-math/geometry';
+import { SpacegroupCell } from '../../../../mol-math/geometry';
 
 export interface Box<C extends Coords.Coord<Coords.Space>> { a: C, b: C }
 
diff --git a/src/servers/volume/server/algebra/coordinate.ts b/src/servers/volume/server/algebra/coordinate.ts
index cd5cfc0fcfa014664f66ef620ae1a426c0f38ab4..01ac3e5bab0e75d5eb3e88d416765d288b7fb54f 100644
--- a/src/servers/volume/server/algebra/coordinate.ts
+++ b/src/servers/volume/server/algebra/coordinate.ts
@@ -2,8 +2,8 @@
  * Copyright (c) 2016 - now, David Sehnal, licensed under Apache 2.0, See LICENSE file for more info.
  */
 
-import { Mat4, Vec3 } from 'mol-math/linear-algebra'
-import { SpacegroupCell } from 'mol-math/geometry'
+import { Mat4, Vec3 } from '../../../../mol-math/linear-algebra'
+import { SpacegroupCell } from '../../../../mol-math/geometry'
 
 /** Information about a region sampled in fractional coordinates */
 export interface GridInfo {
diff --git a/src/servers/volume/server/api.ts b/src/servers/volume/server/api.ts
index e3a9c247ab5808dc5a10e5e0a88b7302f0777154..85562c436f15f5dad6fc3f2d6f5d176ddc595063 100644
--- a/src/servers/volume/server/api.ts
+++ b/src/servers/volume/server/api.ts
@@ -9,9 +9,9 @@
 import * as File from '../common/file'
 import execute from './query/execute'
 import * as Data from './query/data-model'
-import { ConsoleLogger } from 'mol-util/console-logger'
+import { ConsoleLogger } from '../../../mol-util/console-logger'
 import * as DataFormat from '../common/data-format'
-import { FileHandle } from 'mol-io/common/file-handle';
+import { FileHandle } from '../../../mol-io/common/file-handle';
 import { LimitsConfig } from '../config';
 
 export function getOutputFilename(source: string, id: string, { asBinary, box, detail, forcedSamplingLevel }: Data.QueryParams) {
diff --git a/src/servers/volume/server/query/compose.ts b/src/servers/volume/server/query/compose.ts
index 29f546c11439fae5931cbbf2fa4e61682c16080c..ef842706e8bccbe0eb8b3a83d3318cc7f030c687 100644
--- a/src/servers/volume/server/query/compose.ts
+++ b/src/servers/volume/server/query/compose.ts
@@ -9,7 +9,7 @@
 import * as Data from './data-model'
 import * as Box from '../algebra/box'
 import * as Coords from '../algebra/coordinate'
-import { createTypedArrayBufferContext, getElementByteSize, readTypedArray } from 'mol-io/common/typed-array';
+import { createTypedArrayBufferContext, getElementByteSize, readTypedArray } from '../../../../mol-io/common/typed-array';
 
 export default async function compose(query: Data.QueryContext.Data) {
     for (const block of query.samplingInfo.blocks) {
diff --git a/src/servers/volume/server/query/data-model.ts b/src/servers/volume/server/query/data-model.ts
index 1536a797931ae8bf0afa47f32f29bf72c86eace9..a5552a3d14031b3e69610603cdc58c6326bc4858 100644
--- a/src/servers/volume/server/query/data-model.ts
+++ b/src/servers/volume/server/query/data-model.ts
@@ -9,10 +9,10 @@
 import * as DataFormat from '../../common/data-format'
 import * as Coords from '../algebra/coordinate'
 import * as Box from '../algebra/box'
-import Writer from 'mol-io/writer/writer'
-import { SpacegroupCell } from 'mol-math/geometry';
-import { FileHandle } from 'mol-io/common/file-handle';
-import { TypedArrayValueArray } from 'mol-io/common/typed-array';
+import Writer from '../../../../mol-io/writer/writer'
+import { SpacegroupCell } from '../../../../mol-math/geometry';
+import { FileHandle } from '../../../../mol-io/common/file-handle';
+import { TypedArrayValueArray } from '../../../../mol-io/common/typed-array';
 
 //////////////////////////////////////
 // DATA
diff --git a/src/servers/volume/server/query/encode.ts b/src/servers/volume/server/query/encode.ts
index 008159dfdfc8995b3a1c330ead00176a96e9b524..6efdfc34c04f1da4686d14126cab6af4c8a915a5 100644
--- a/src/servers/volume/server/query/encode.ts
+++ b/src/servers/volume/server/query/encode.ts
@@ -6,14 +6,14 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { CifWriter } from 'mol-io/writer/cif'
+import { CifWriter } from '../../../../mol-io/writer/cif'
 import * as Data from './data-model'
 import * as Coords from '../algebra/coordinate'
 import VERSION from '../version'
 import * as DataFormat from '../../common/data-format'
-import { Column } from 'mol-data/db';
-import { ArrayEncoding, ArrayEncoder } from 'mol-io/common/binary-cif';
-import { TypedArrayValueType, TypedArrayValueArray } from 'mol-io/common/typed-array';
+import { Column } from '../../../../mol-data/db';
+import { ArrayEncoding, ArrayEncoder } from '../../../../mol-io/common/binary-cif';
+import { TypedArrayValueType, TypedArrayValueArray } from '../../../../mol-io/common/typed-array';
 
 export default function encode(query: Data.QueryContext, output: Data.QueryOutputStream) {
     let w = CifWriter.createEncoder({ binary: query.params.asBinary, encoderName: `VolumeServer ${VERSION}` });
diff --git a/src/servers/volume/server/query/execute.ts b/src/servers/volume/server/query/execute.ts
index 9314cb5217c2aec09ba3bbd0f81f03bec912f5a4..a7fa850e28889fc2f008699d2f862143cc13a673 100644
--- a/src/servers/volume/server/query/execute.ts
+++ b/src/servers/volume/server/query/execute.ts
@@ -11,18 +11,18 @@ import * as File from '../../common/file'
 import * as Data from './data-model'
 import * as Coords from '../algebra/coordinate'
 import * as Box from '../algebra/box'
-import { ConsoleLogger } from 'mol-util/console-logger'
+import { ConsoleLogger } from '../../../../mol-util/console-logger'
 import { State } from '../state'
 
 import identify from './identify'
 import compose from './compose'
 import encode from './encode'
-import { SpacegroupCell } from 'mol-math/geometry';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { UUID } from 'mol-util';
-import { FileHandle } from 'mol-io/common/file-handle';
-import { createTypedArray, TypedArrayValueType } from 'mol-io/common/typed-array';
-import { LimitsConfig } from 'servers/volume/config';
+import { SpacegroupCell } from '../../../../mol-math/geometry';
+import { Vec3 } from '../../../../mol-math/linear-algebra';
+import { UUID } from '../../../../mol-util';
+import { FileHandle } from '../../../../mol-io/common/file-handle';
+import { createTypedArray, TypedArrayValueType } from '../../../../mol-io/common/typed-array';
+import { LimitsConfig } from '../../config';
 
 export default async function execute(params: Data.QueryParams, outputProvider: () => Data.QueryOutputStream) {
     const start = getTime();
diff --git a/src/servers/volume/server/web-api.ts b/src/servers/volume/server/web-api.ts
index 9630f314b9f63a0e51293ef0b40b01a879a7dda8..4f5a040cd60f0641f52e0696ef716a6831c92ff4 100644
--- a/src/servers/volume/server/web-api.ts
+++ b/src/servers/volume/server/web-api.ts
@@ -12,12 +12,12 @@ import * as express from 'express'
 import * as Api from './api'
 import * as Data from './query/data-model'
 import * as Coords from './algebra/coordinate'
-import { ConsoleLogger } from 'mol-util/console-logger'
+import { ConsoleLogger } from '../../../mol-util/console-logger'
 import { State } from './state'
 import { LimitsConfig, ServerConfig } from '../config';
-import { interpolate } from 'mol-util/string';
+import { interpolate } from '../../../mol-util/string';
 import { getSchema, shortcutIconLink } from './web-schema';
-import { swaggerUiIndexHandler, swaggerUiAssetsHandler } from 'servers/common/swagger-ui';
+import { swaggerUiIndexHandler, swaggerUiAssetsHandler } from '../../common/swagger-ui';
 
 export default function init(app: express.Express) {
     app.locals.mapFile = getMapFileFn()
diff --git a/src/tests/browser/font-atlas.ts b/src/tests/browser/font-atlas.ts
index 898f1ce186525346a9a8eaac02b1a1caa24cf35b..7ec02880bc90707aedacad6e3bd660c590d15d2c 100644
--- a/src/tests/browser/font-atlas.ts
+++ b/src/tests/browser/font-atlas.ts
@@ -5,8 +5,8 @@
  */
 
 import './index.html'
-import { FontAtlas } from 'mol-geo/geometry/text/font-atlas';
-import { printTextureImage } from 'mol-gl/renderable/util';
+import { FontAtlas } from '../../mol-geo/geometry/text/font-atlas';
+import { printTextureImage } from '../../mol-gl/renderable/util';
 
 function test() {
     console.time('FontAtlas init')
diff --git a/src/tests/browser/marching-cubes.ts b/src/tests/browser/marching-cubes.ts
index f7009255b12658106689b4f48b6d533cc660dec6..2e71abe29a857c9babdcee7d354ee6c896069a4d 100644
--- a/src/tests/browser/marching-cubes.ts
+++ b/src/tests/browser/marching-cubes.ts
@@ -5,24 +5,24 @@
  */
 
 import './index.html'
-import { Canvas3D } from 'mol-canvas3d/canvas3d';
-import { Representation } from 'mol-repr/representation';
-import { Color } from 'mol-util/color';
-import { createRenderObject } from 'mol-gl/render-object';
-import { computeGaussianDensity, computeGaussianDensityTexture2d } from 'mol-math/geometry/gaussian-density';
-import { PositionData, Box3D, Sphere3D } from 'mol-math/geometry';
-import { OrderedSet } from 'mol-data/int';
-import { Vec3 } from 'mol-math/linear-algebra';
-import { computeMarchingCubesMesh } from 'mol-geo/util/marching-cubes/algorithm';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { ColorNames } from 'mol-util/color/tables';
-import { TextureMesh } from 'mol-geo/geometry/texture-mesh/texture-mesh';
-import { calcActiveVoxels } from 'mol-gl/compute/marching-cubes/active-voxels';
-import { createHistogramPyramid } from 'mol-gl/compute/histogram-pyramid/reduction';
-import { createIsosurfaceBuffers } from 'mol-gl/compute/marching-cubes/isosurface';
-import { RendererParams } from 'mol-gl/renderer';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { resizeCanvas } from 'mol-canvas3d/util';
+import { resizeCanvas } from '../../mol-canvas3d/util';
+import { Canvas3D } from '../../mol-canvas3d/canvas3d';
+import { RendererParams } from '../../mol-gl/renderer';
+import { ColorNames } from '../../mol-util/color/tables';
+import { PositionData, Box3D, Sphere3D } from '../../mol-math/geometry';
+import { OrderedSet } from '../../mol-data/int';
+import { Vec3 } from '../../mol-math/linear-algebra';
+import { computeGaussianDensityTexture2d, computeGaussianDensity } from '../../mol-math/geometry/gaussian-density';
+import { calcActiveVoxels } from '../../mol-gl/compute/marching-cubes/active-voxels';
+import { createHistogramPyramid } from '../../mol-gl/compute/histogram-pyramid/reduction';
+import { createIsosurfaceBuffers } from '../../mol-gl/compute/marching-cubes/isosurface';
+import { TextureMesh } from '../../mol-geo/geometry/texture-mesh/texture-mesh';
+import { Color } from '../../mol-util/color';
+import { createRenderObject } from '../../mol-gl/render-object';
+import { Representation } from '../../mol-repr/representation';
+import { computeMarchingCubesMesh } from '../../mol-geo/util/marching-cubes/algorithm';
+import { Mesh } from '../../mol-geo/geometry/mesh/mesh';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
 
 const parent = document.getElementById('app')!
 parent.style.width = '100%'
diff --git a/src/tests/browser/render-asa.ts b/src/tests/browser/render-asa.ts
index 1298dfd0615284bc940409aef5e4970e96b120ad..2115143d0b17cee635ae622cfce95e46178bf7af 100644
--- a/src/tests/browser/render-asa.ts
+++ b/src/tests/browser/render-asa.ts
@@ -5,20 +5,20 @@
  */
 
 import './index.html'
-import { Canvas3D } from 'mol-canvas3d/canvas3d';
-import CIF, { CifFrame } from 'mol-io/reader/cif'
-import { Model, Structure, StructureElement, Unit } from 'mol-model/structure';
-import { ColorTheme, LocationColor } from 'mol-theme/color';
-import { SizeTheme } from 'mol-theme/size';
-import { CartoonRepresentationProvider } from 'mol-repr/structure/representation/cartoon';
-import { trajectoryFromMmCIF } from 'mol-model-formats/structure/mmcif';
-import { AccessibleSurfaceArea } from 'mol-model/structure/structure/accessible-surface-area';
-import { Color, ColorScale } from 'mol-util/color';
-import { Location } from 'mol-model/location';
-import { ThemeDataContext } from 'mol-theme/theme';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { ColorListName, ColorListOptions } from 'mol-util/color/scale';
-import { resizeCanvas } from 'mol-canvas3d/util';
+import { resizeCanvas } from '../../mol-canvas3d/util';
+import { Canvas3D } from '../../mol-canvas3d/canvas3d';
+import { CIF, CifFrame } from '../../mol-io/reader/cif';
+import { trajectoryFromMmCIF } from '../../mol-model-formats/structure/mmcif';
+import { Model, Structure, StructureElement, Unit } from '../../mol-model/structure';
+import { ColorTheme, LocationColor } from '../../mol-theme/color';
+import { SizeTheme } from '../../mol-theme/size';
+import { CartoonRepresentationProvider } from '../../mol-repr/structure/representation/cartoon';
+import { AccessibleSurfaceArea } from '../../mol-model/structure/structure/accessible-surface-area';
+import { Color, ColorScale } from '../../mol-util/color';
+import { ColorListName, ColorListOptions } from '../../mol-util/color/scale';
+import { ThemeDataContext } from '../../mol-theme/theme';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
+import { Location } from '../../mol-model/location';
 
 const parent = document.getElementById('app')!
 parent.style.width = '100%'
diff --git a/src/tests/browser/render-lines.ts b/src/tests/browser/render-lines.ts
index 64f3c64d3092e602c612c3f23c944bbc71c9f184..4cecd427cb4e85e4b061bafd95ab948ad6c99408 100644
--- a/src/tests/browser/render-lines.ts
+++ b/src/tests/browser/render-lines.ts
@@ -5,15 +5,15 @@
  */
 
 import './index.html'
-import { Canvas3D } from 'mol-canvas3d/canvas3d';
-import { Mat4 } from 'mol-math/linear-algebra';
-import { Representation } from 'mol-repr/representation';
-import { Color } from 'mol-util/color';
-import { createRenderObject } from 'mol-gl/render-object';
-import { Lines } from 'mol-geo/geometry/lines/lines';
-import { LinesBuilder } from 'mol-geo/geometry/lines/lines-builder';
-import { DodecahedronCage } from 'mol-geo/primitive/dodecahedron';
-import { resizeCanvas } from 'mol-canvas3d/util';
+import { resizeCanvas } from '../../mol-canvas3d/util';
+import { Canvas3D } from '../../mol-canvas3d/canvas3d';
+import { LinesBuilder } from '../../mol-geo/geometry/lines/lines-builder';
+import { Mat4 } from '../../mol-math/linear-algebra';
+import { DodecahedronCage } from '../../mol-geo/primitive/dodecahedron';
+import { Lines } from '../../mol-geo/geometry/lines/lines';
+import { Color } from '../../mol-util/color';
+import { createRenderObject } from '../../mol-gl/render-object';
+import { Representation } from '../../mol-repr/representation';
 
 const parent = document.getElementById('app')!
 parent.style.width = '100%'
diff --git a/src/tests/browser/render-mesh.ts b/src/tests/browser/render-mesh.ts
index c3dd5cb7c4db892949f4ebe179080913c28c135b..363d64150e859ac8120f5813c79b386b4a8359ed 100644
--- a/src/tests/browser/render-mesh.ts
+++ b/src/tests/browser/render-mesh.ts
@@ -5,16 +5,16 @@
  */
 
 import './index.html'
-import { Canvas3D } from 'mol-canvas3d/canvas3d';
-import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder';
-import { Mat4 } from 'mol-math/linear-algebra';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { Representation } from 'mol-repr/representation';
-import { Color } from 'mol-util/color';
-import { createRenderObject } from 'mol-gl/render-object';
-import { SpikedBall } from 'mol-geo/primitive/spiked-ball';
-import { HexagonalPrismCage } from 'mol-geo/primitive/prism';
-import { resizeCanvas } from 'mol-canvas3d/util';
+import { resizeCanvas } from '../../mol-canvas3d/util';
+import { Canvas3D } from '../../mol-canvas3d/canvas3d';
+import { MeshBuilder } from '../../mol-geo/geometry/mesh/mesh-builder';
+import { Mat4 } from '../../mol-math/linear-algebra';
+import { HexagonalPrismCage } from '../../mol-geo/primitive/prism';
+import { SpikedBall } from '../../mol-geo/primitive/spiked-ball';
+import { Mesh } from '../../mol-geo/geometry/mesh/mesh';
+import { Color } from '../../mol-util/color';
+import { createRenderObject } from '../../mol-gl/render-object';
+import { Representation } from '../../mol-repr/representation';
 
 const parent = document.getElementById('app')!
 parent.style.width = '100%'
diff --git a/src/tests/browser/render-shape.ts b/src/tests/browser/render-shape.ts
index ff35b9808af0da76b763e17bff50af9a24305fbb..f2ade96d7fdeff6b2dbd4b9d6e3ae9bf9b8057c2 100644
--- a/src/tests/browser/render-shape.ts
+++ b/src/tests/browser/render-shape.ts
@@ -5,20 +5,20 @@
  */
 
 import './index.html'
-import { Canvas3D } from 'mol-canvas3d/canvas3d';
-import { MeshBuilder } from 'mol-geo/geometry/mesh/mesh-builder';
-import { Sphere } from 'mol-geo/primitive/sphere';
-import { Mat4, Vec3 } from 'mol-math/linear-algebra';
-import { Shape } from 'mol-model/shape';
-import { ShapeRepresentation } from 'mol-repr/shape/representation';
-import { ColorNames } from 'mol-util/color/tables';
-import { Mesh } from 'mol-geo/geometry/mesh/mesh';
-import { labelFirst } from 'mol-theme/label';
-import { RuntimeContext, Progress } from 'mol-task';
-import { Representation } from 'mol-repr/representation';
-import { MarkerAction } from 'mol-geo/geometry/marker-data';
-import { EveryLoci } from 'mol-model/loci';
-import { resizeCanvas } from 'mol-canvas3d/util';
+import { resizeCanvas } from '../../mol-canvas3d/util';
+import { Representation } from '../../mol-repr/representation';
+import { Canvas3D } from '../../mol-canvas3d/canvas3d';
+import { labelFirst } from '../../mol-theme/label';
+import { MarkerAction } from '../../mol-geo/geometry/marker-data';
+import { EveryLoci } from '../../mol-model/loci';
+import { RuntimeContext, Progress } from '../../mol-task';
+import { Mesh } from '../../mol-geo/geometry/mesh/mesh';
+import { MeshBuilder } from '../../mol-geo/geometry/mesh/mesh-builder';
+import { Mat4, Vec3 } from '../../mol-math/linear-algebra';
+import { Sphere } from '../../mol-geo/primitive/sphere';
+import { ColorNames } from '../../mol-util/color/tables';
+import { Shape } from '../../mol-model/shape';
+import { ShapeRepresentation } from '../../mol-repr/shape/representation';
 
 const parent = document.getElementById('app')!
 parent.style.width = '100%'
diff --git a/src/tests/browser/render-spheres.ts b/src/tests/browser/render-spheres.ts
index 7b6f723f5692e69a6914127d58d50f037c685da0..020b5795906cc42f4c06b8790aebc4571dabe337 100644
--- a/src/tests/browser/render-spheres.ts
+++ b/src/tests/browser/render-spheres.ts
@@ -5,13 +5,13 @@
  */
 
 import './index.html'
-import { Canvas3D } from 'mol-canvas3d/canvas3d';
-import { SpheresBuilder } from 'mol-geo/geometry/spheres/spheres-builder';
-import { Representation } from 'mol-repr/representation';
-import { Spheres } from 'mol-geo/geometry/spheres/spheres';
-import { Color } from 'mol-util/color';
-import { createRenderObject } from 'mol-gl/render-object';
-import { resizeCanvas } from 'mol-canvas3d/util';
+import { resizeCanvas } from '../../mol-canvas3d/util';
+import { Canvas3D } from '../../mol-canvas3d/canvas3d';
+import { SpheresBuilder } from '../../mol-geo/geometry/spheres/spheres-builder';
+import { Spheres } from '../../mol-geo/geometry/spheres/spheres';
+import { Color } from '../../mol-util/color';
+import { createRenderObject } from '../../mol-gl/render-object';
+import { Representation } from '../../mol-repr/representation';
 
 const parent = document.getElementById('app')!
 parent.style.width = '100%'
diff --git a/src/tests/browser/render-structure.ts b/src/tests/browser/render-structure.ts
index 0ea0fffd15d8d22353bea0849e1f4c86bed29960..e85346bd90ffa49f271d60b86870d8dca20d3708 100644
--- a/src/tests/browser/render-structure.ts
+++ b/src/tests/browser/render-structure.ts
@@ -5,18 +5,18 @@
  */
 
 import './index.html'
-import { Canvas3D } from 'mol-canvas3d/canvas3d';
-import CIF, { CifFrame } from 'mol-io/reader/cif'
-import { Model, Structure } from 'mol-model/structure';
-import { ColorTheme } from 'mol-theme/color';
-import { SizeTheme } from 'mol-theme/size';
-import { CartoonRepresentationProvider } from 'mol-repr/structure/representation/cartoon';
-import { trajectoryFromMmCIF } from 'mol-model-formats/structure/mmcif';
-import { MolecularSurfaceRepresentationProvider } from 'mol-repr/structure/representation/molecular-surface';
-import { BallAndStickRepresentationProvider } from 'mol-repr/structure/representation/ball-and-stick';
-import { GaussianSurfaceRepresentationProvider } from 'mol-repr/structure/representation/gaussian-surface';
-import { ComputedSecondaryStructure } from 'mol-model-props/computed/secondary-structure';
-import { resizeCanvas } from 'mol-canvas3d/util';
+import { Canvas3D } from '../../mol-canvas3d/canvas3d';
+import { CIF, CifFrame } from '../../mol-io/reader/cif'
+import { Model, Structure } from '../../mol-model/structure';
+import { ColorTheme } from '../../mol-theme/color';
+import { SizeTheme } from '../../mol-theme/size';
+import { CartoonRepresentationProvider } from '../../mol-repr/structure/representation/cartoon';
+import { trajectoryFromMmCIF } from '../../mol-model-formats/structure/mmcif';
+import { MolecularSurfaceRepresentationProvider } from '../../mol-repr/structure/representation/molecular-surface';
+import { BallAndStickRepresentationProvider } from '../../mol-repr/structure/representation/ball-and-stick';
+import { GaussianSurfaceRepresentationProvider } from '../../mol-repr/structure/representation/gaussian-surface';
+import { ComputedSecondaryStructure } from '../../mol-model-props/computed/secondary-structure';
+import { resizeCanvas } from '../../mol-canvas3d/util';
 
 const parent = document.getElementById('app')!
 parent.style.width = '100%'
diff --git a/src/tests/browser/render-text.ts b/src/tests/browser/render-text.ts
index 8a158ce42e7f1a05ea9748242d4ea012a9fcbb5c..ffb12610746938c17881d8bb01a60ab86ab89b19 100644
--- a/src/tests/browser/render-text.ts
+++ b/src/tests/browser/render-text.ts
@@ -5,16 +5,16 @@
  */
 
 import './index.html'
-import { Canvas3D } from 'mol-canvas3d/canvas3d';
-import { TextBuilder } from 'mol-geo/geometry/text/text-builder';
-import { Text } from 'mol-geo/geometry/text/text';
-import { ParamDefinition as PD } from 'mol-util/param-definition';
-import { Color } from 'mol-util/color';
-import { Representation } from 'mol-repr/representation';
-import { SpheresBuilder } from 'mol-geo/geometry/spheres/spheres-builder';
-import { createRenderObject } from 'mol-gl/render-object';
-import { Spheres } from 'mol-geo/geometry/spheres/spheres';
-import { resizeCanvas } from 'mol-canvas3d/util';
+import { Canvas3D } from '../../mol-canvas3d/canvas3d';
+import { TextBuilder } from '../../mol-geo/geometry/text/text-builder';
+import { Text } from '../../mol-geo/geometry/text/text';
+import { ParamDefinition as PD } from '../../mol-util/param-definition';
+import { Color } from '../../mol-util/color';
+import { Representation } from '../../mol-repr/representation';
+import { SpheresBuilder } from '../../mol-geo/geometry/spheres/spheres-builder';
+import { createRenderObject } from '../../mol-gl/render-object';
+import { Spheres } from '../../mol-geo/geometry/spheres/spheres';
+import { resizeCanvas } from '../../mol-canvas3d/util';
 
 const parent = document.getElementById('app')!
 parent.style.width = '100%'
diff --git a/tsconfig.json b/tsconfig.json
index 0a845d1985969692496c7afa252226647952ee33..d8dbd7dc9bc460ac6a3f922fe9b46a6d7f7fcede 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -12,28 +12,8 @@
         // "downlevelIteration": true,
         "jsx": "react",
         "lib": [ "es6", "dom", "esnext.asynciterable", "es2016" ],
-        "outDir": "build",
-        "baseUrl": "src",
-        "paths": {
-            "mol-app": ["./mol-app"],
-            "mol-data": ["./mol-data", "./mol-data/index.ts"],
-            "mol-geo": ["./mol-geo"],
-            "mol-gl": ["./mol-gl"],
-            "mol-io": ["./mol-io"],
-            "mol-math": ["./mol-math"],
-            "mol-model": ["./mol-model"],
-            "mol-model-props": ["./mol-model-props", "./mol-model-props/index.ts"],
-            "mol-model-formats": ["./mol-model-formats"],
-            "mol-ql": ["./mol-ql"],
-            "mol-repr": ["./mol-repr"],
-            "mol-script": ["./mol-script"],
-            "mol-state": ["./mol-state", "./mol-state/index.ts"],
-            "mol-plugin": ["./mol-plugin", "./mol-plugin/index.ts"],
-            "mol-task": ["./mol-task", "./mol-task/index.ts"],
-            "mol-theme": ["./mol-theme"],
-            "mol-util": ["./mol-util", "./mol-util/index.ts"],
-            "mol-canvas3d": ["./mol-canvas3d"]
-        }
+        "rootDir": "src",
+        "outDir": "lib",
     },
     "include": [ "src/**/*" ],
 }
\ No newline at end of file
diff --git a/webpack.config.js b/webpack.config.js
index ad68cafae8d8cc9452cc8b52515ca5f3d76dd2f8..3de9e1565111c706a5f326ff84f7f9f143cc4e28 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -10,7 +10,7 @@ const sharedConfig = {
             {
                 loader: 'file-loader',
                 test: /\.(woff2?|ttf|otf|eot|svg|html)$/,
-                include: [path.resolve(__dirname, 'build/src/')],
+                include: [path.resolve(__dirname, 'lib/')],
                 options: {
                     name: '[name].[ext]'
                 }
@@ -23,17 +23,14 @@ const sharedConfig = {
     },
     plugins: [
         // new CircularDependencyPlugin({
-        //     include: [ path.resolve(__dirname, 'build/src/') ],
+        //     include: [ path.resolve(__dirname, 'lib/') ],
         //     failOnError: false,
         //     cwd: process.cwd(),
         // }),
         new ExtraWatchWebpackPlugin({
             files: [
-                './build/src/**/*.vert',
-                './build/src/**/*.frag',
-                './build/src/**/*.glsl',
-                './build/src/**/*.scss',
-                './build/src/**/*.html'
+                './lib/**/*.scss',
+                './lib/**/*.html'
             ],
         }),
         new webpack.DefinePlugin({
@@ -46,7 +43,7 @@ const sharedConfig = {
     resolve: {
         modules: [
             'node_modules',
-            path.resolve(__dirname, 'build/src/')
+            path.resolve(__dirname, 'lib/')
         ],
     }
 }
@@ -56,7 +53,7 @@ function createEntry(src, outFolder, outFilename, isNode) {
     return {
         node: isNode ? void 0 : { fs: 'empty' }, // TODO find better solution? Currently used in file-handle.ts
         target: isNode ? 'node' : void 0,
-        entry: path.resolve(__dirname, `build/src/${src}.js`),
+        entry: path.resolve(__dirname, `lib/${src}.js`),
         output: { filename: `${outFilename}.js`, path: path.resolve(__dirname, `build/${outFolder}`) },
         ...sharedConfig
     }
@@ -65,7 +62,7 @@ function createEntry(src, outFolder, outFilename, isNode) {
 function createEntryPoint(name, dir, out) {
     return {
         node: { fs: 'empty' }, // TODO find better solution? Currently used in file-handle.ts
-        entry: path.resolve(__dirname, `build/src/${dir}/${name}.js`),
+        entry: path.resolve(__dirname, `lib/${dir}/${name}.js`),
         output: { filename: `${name}.js`, path: path.resolve(__dirname, `build/${out}`) },
         ...sharedConfig
     }
@@ -74,7 +71,7 @@ function createEntryPoint(name, dir, out) {
 function createNodeEntryPoint(name, dir, out) {
     return {
         target: 'node',
-        entry: path.resolve(__dirname, `build/src/${dir}/${name}.js`),
+        entry: path.resolve(__dirname, `lib/${dir}/${name}.js`),
         output: { filename: `${name}.js`, path: path.resolve(__dirname, `build/${out}`) },
         ...sharedConfig
     }