diff --git a/package.json b/package.json
index 44477c2839fd6b4420e7e630cf57293956749508..02761decca981aa42742c11eb96d8caaed39234c 100644
--- a/package.json
+++ b/package.json
@@ -12,8 +12,8 @@
     "bundle": "./node_modules/.bin/rollup -c",
     "test": "./node_modules/.bin/jest",
     "dist": "./node_modules/.bin/uglifyjs build/js/molio.dev.js -cm > dist/molio.js && cp build/js/molio.esm.js dist/molio.esm.js",
-    "script": "./node_modules/.bin/rollup build/js/src/script.js -e fs -f cjs -o build/js/script.js",
-    "runscript": "node build/js/src/script.js",
+    "script": "./node_modules/.bin/rollup build/node_modules/script.js -e fs -f cjs -o build/js/script.js",
+    "runscript": "node build/node_modules/script.js",
     "download-dics": "./node_modules/.bin/download -o build/dics http://mmcif.wwpdb.org/dictionaries/ascii/mmcif_pdbx_v50.dic && ./node_modules/.bin/download -o build/dics http://mmcif.wwpdb.org/dictionaries/ascii/mmcif_ddl.dic"
   },
   "jest": {
diff --git a/src/mol-data/structure/_spec/atom-set.spec.ts b/src/mol-data/structure/_spec/atom-set.spec.ts
index 2ca79d8f9ff0ec27aa76da76ed11563fe2c5f5a1..ace1717966c12fdc25e498df44c590f8f434c274 100644
--- a/src/mol-data/structure/_spec/atom-set.spec.ts
+++ b/src/mol-data/structure/_spec/atom-set.spec.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { OrderedSet } from '../../../mol-base/collections/integer'
+import { OrderedSet } from 'mol-base/collections/integer'
 import AtomSet from '../structure/atom/set'
 import Atom from '../structure/atom'
 
diff --git a/src/mol-data/structure/model/builders/mmcif.ts b/src/mol-data/structure/model/builders/mmcif.ts
index 3fa96b0383d303dd6d67735ac9187901560dff4f..26591bf4bb3b0f1d97e6de25dcfd258d5089df6a 100644
--- a/src/mol-data/structure/model/builders/mmcif.ts
+++ b/src/mol-data/structure/model/builders/mmcif.ts
@@ -6,10 +6,10 @@
 
 import { mmCIF } from '../data-format'
 import Model from '../model'
-import Column from '../../../../mol-base/collections/column'
-import Table from '../../../../mol-base/collections/table'
-import { Interval, Segmentation } from '../../../../mol-base/collections/integer'
-import { newUUID } from '../../../../mol-base/utils/uuid'
+import Column from 'mol-base/collections/column'
+import Table from 'mol-base/collections/table'
+import { Interval, Segmentation } from 'mol-base/collections/integer'
+import { newUUID } from 'mol-base/utils/uuid'
 import * as Hierarchy from '../properties/hierarchy'
 import Conformation from '../properties/conformation'
 import findHierarchyKeys from '../utils/hierarchy-keys'
diff --git a/src/mol-data/structure/model/constants.ts b/src/mol-data/structure/model/constants.ts
index 48c863c7f897d9caff9874496d8df8b05848135a..03072eb6fe53b56197129884617af5d6b2ffbd38 100644
--- a/src/mol-data/structure/model/constants.ts
+++ b/src/mol-data/structure/model/constants.ts
@@ -5,7 +5,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import BitFlags from '../../../mol-base/utils/bit-flags'
+import BitFlags from 'mol-base/utils/bit-flags'
 
 export const enum EntityType {
     Unknown = 'unknown',
diff --git a/src/mol-data/structure/model/data-format.ts b/src/mol-data/structure/model/data-format.ts
index c5c4aa2e7216b16d02be62de4e8f8cff21b85850..2ffd22ca306da2752ff18f352a738fb06d0e13d0 100644
--- a/src/mol-data/structure/model/data-format.ts
+++ b/src/mol-data/structure/model/data-format.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Frame as mmCIF_Frame } from '../../../mol-io/reader/cif/schema/mmcif'
+import { Frame as mmCIF_Frame } from 'mol-io/reader/cif/schema/mmcif'
 
 export interface mmCIF { kind: 'mmCIF', data: mmCIF_Frame }
 
diff --git a/src/mol-data/structure/model/model.ts b/src/mol-data/structure/model/model.ts
index b2dbf68fc8d59c0320ccdcfb237f4987cb30eb0b..4eef29c376e5abbae13be178c3a3d0760219906f 100644
--- a/src/mol-data/structure/model/model.ts
+++ b/src/mol-data/structure/model/model.ts
@@ -7,7 +7,7 @@
 import DataFormat from './data-format'
 import HierarchyProperties from './properties/hierarchy'
 import ConformationProperties from './properties/conformation'
-import UUID from '../../../mol-base/utils/uuid'
+import UUID from 'mol-base/utils/uuid'
 
 import buildMmCIF from './builders/mmcif'
 
diff --git a/src/mol-data/structure/model/properties/conformation.ts b/src/mol-data/structure/model/properties/conformation.ts
index a80739667398ecff7735c4243cb30c0e6247a0c8..9014a0a93c190ac065eb54680d53dbe943022547 100644
--- a/src/mol-data/structure/model/properties/conformation.ts
+++ b/src/mol-data/structure/model/properties/conformation.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column from '../../../../mol-base/collections/column'
-import UUID from '../../../../mol-base/utils/uuid'
+import Column from 'mol-base/collections/column'
+import UUID from 'mol-base/utils/uuid'
 
 interface Conformation {
     id: UUID,
diff --git a/src/mol-data/structure/model/properties/hierarchy.ts b/src/mol-data/structure/model/properties/hierarchy.ts
index dceb055c4bb8b53a0c5940d0ea302f0b9dbbf59f..fec5de2657aff6eefa3a0d937d5fb1d71d034ba9 100644
--- a/src/mol-data/structure/model/properties/hierarchy.ts
+++ b/src/mol-data/structure/model/properties/hierarchy.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column from '../../../../mol-base/collections/column'
-import Table from '../../../../mol-base/collections/table'
-import { Segmentation } from '../../../../mol-base/collections/integer'
-import { Schema as mmCIF } from '../../../../mol-io/reader/cif/schema/mmcif'
+import Column from 'mol-base/collections/column'
+import Table from 'mol-base/collections/table'
+import { Segmentation } from 'mol-base/collections/integer'
+import { Schema as mmCIF } from 'mol-io/reader/cif/schema/mmcif'
 
 const _esCache = Object.create(null);
 export interface ElementSymbol extends String { '@type': 'element-symbol' }
diff --git a/src/mol-data/structure/model/properties/transforms.ts b/src/mol-data/structure/model/properties/transforms.ts
index f436412553f86ca87e1a31492fe6c703ff9f9bf6..9c6fdc4655fc7425ef5174b719fb0a54385e1628 100644
--- a/src/mol-data/structure/model/properties/transforms.ts
+++ b/src/mol-data/structure/model/properties/transforms.ts
@@ -6,4 +6,4 @@
 
 // TODO: symmetry and assebmlies descriptors
 
-//import Column from '../../../mol-base/collections/column'
\ No newline at end of file
+//import Column from 'mol-base/collections/column'
\ No newline at end of file
diff --git a/src/mol-data/structure/model/utils/hierarchy-keys.ts b/src/mol-data/structure/model/utils/hierarchy-keys.ts
index b99cec0699e788ea95f843d0dc0a9c28c53f82f1..fe4391e4231ff3296aeec29bc0f65810cc2a489e 100644
--- a/src/mol-data/structure/model/utils/hierarchy-keys.ts
+++ b/src/mol-data/structure/model/utils/hierarchy-keys.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column from '../../../../mol-base/collections/column'
+import Column from 'mol-base/collections/column'
 import { Data, Segments, Keys } from '../properties/hierarchy'
-import { Interval, Segmentation } from '../../../../mol-base/collections/integer'
+import { Interval, Segmentation } from 'mol-base/collections/integer'
 
 function getResidueId(comp_id: string, seq_id: number, ins_code: string) {
     return `${comp_id} ${seq_id} ${ins_code}`;
diff --git a/src/mol-data/structure/query/generators.ts b/src/mol-data/structure/query/generators.ts
index a647260f6f091f31aa644970f5ffd4ceffc05b14..0ea357af41ea38d9829b2f02f4d6a8a4be77a7f9 100644
--- a/src/mol-data/structure/query/generators.ts
+++ b/src/mol-data/structure/query/generators.ts
@@ -8,7 +8,7 @@ import Query from './query'
 //import Selection from './selection'
 import * as P from './properties'
 import { AtomSet, Atom } from '../structure'
-import { OrderedSet } from '../../../mol-base/collections/integer'
+import { OrderedSet } from 'mol-base/collections/integer'
 
 export interface AtomGroupsSpec {
     entityTest: Atom.Predicate,
diff --git a/src/mol-data/structure/query/selection.ts b/src/mol-data/structure/query/selection.ts
index 8e46f0f36595a9d1a9572b3867a1e29bdf2db488..12665724756c159332e8b7a61cdf8de73be8668d 100644
--- a/src/mol-data/structure/query/selection.ts
+++ b/src/mol-data/structure/query/selection.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Iterator from '../../../mol-base/collections/iterator'
-import HashSet from '../../../mol-base/collections/hash-set'
+import Iterator from 'mol-base/collections/iterator'
+import HashSet from 'mol-base/collections/hash-set'
 import { Structure, Atom, AtomSet } from '../structure'
 
 type Selection =
diff --git a/src/mol-data/structure/structure/atom.ts b/src/mol-data/structure/structure/atom.ts
index ddce507fd645be816f3640ca4baaf9d24594f6e8..f40e08de9956d15bf6ee27532d25fbb8195329ef 100644
--- a/src/mol-data/structure/structure/atom.ts
+++ b/src/mol-data/structure/structure/atom.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Tuple } from '../../../mol-base/collections/integer'
+import { Tuple } from 'mol-base/collections/integer'
 import Unit from './unit'
 import Structure from './structure'
 
diff --git a/src/mol-data/structure/structure/atom/set.ts b/src/mol-data/structure/structure/atom/set.ts
index 25a77f42359a2ead849437e7f7dcb0fe511c294b..ecf18643999b61b4a17b68ae23563223ccfd1119 100644
--- a/src/mol-data/structure/structure/atom/set.ts
+++ b/src/mol-data/structure/structure/atom/set.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { OrderedSet, SortedArray, Iterator } from '../../../../mol-base/collections/integer'
+import { OrderedSet, SortedArray, Iterator } from 'mol-base/collections/integer'
 import Atom from '../atom'
 import * as Impl from './set/impl'
 import createBuilder from './set/builder'
diff --git a/src/mol-data/structure/structure/atom/set/builder.ts b/src/mol-data/structure/structure/atom/set/builder.ts
index 1e6c4beda2fbdd74bb0c4aa6f782afae65f50db3..7c27a2fe8f023b299c0216a88d46443e1665f435 100644
--- a/src/mol-data/structure/structure/atom/set/builder.ts
+++ b/src/mol-data/structure/structure/atom/set/builder.ts
@@ -5,8 +5,8 @@
  */
 
 import AtomSet from '../set'
-import { OrderedSet } from '../../../../../mol-base/collections/integer'
-import { sortArray } from '../../../../../mol-base/collections/sort'
+import { OrderedSet } from 'mol-base/collections/integer'
+import { sortArray } from 'mol-base/collections/sort'
 
 class Builder {
     private keys: number[] = [];
diff --git a/src/mol-data/structure/structure/atom/set/impl.ts b/src/mol-data/structure/structure/atom/set/impl.ts
index 7f2f2d15f29343fb78accfc0e2706578e2a28c39..ebd2fcf4a8ff7fa9537b35fc040f1bdb85847075 100644
--- a/src/mol-data/structure/structure/atom/set/impl.ts
+++ b/src/mol-data/structure/structure/atom/set/impl.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { SortedArray, Interval, Iterator, OrderedSet } from '../../../../../mol-base/collections/integer'
-import { sortArray } from '../../../../../mol-base/collections/sort'
-import { hash1 } from '../../../../../mol-base/collections/hash-functions'
+import { SortedArray, Interval, Iterator, OrderedSet } from 'mol-base/collections/integer'
+import { sortArray } from 'mol-base/collections/sort'
+import { hash1 } from 'mol-base/collections/hash-functions'
 import Atom from '../../atom'
 
 /** Long and painful implementation starts here */
diff --git a/src/mol-data/structure/structure/operator.ts b/src/mol-data/structure/structure/operator.ts
index 363331f27decfc9a3cb09118c810a99fa42f015d..b2e5e78110ffe2f3a02b606b5eefd03085a84438 100644
--- a/src/mol-data/structure/structure/operator.ts
+++ b/src/mol-data/structure/structure/operator.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Mat4 } from '../../../mol-base/math/linear-algebra'
+import { Mat4 } from 'mol-base/math/linear-algebra'
 
 interface Operator extends Readonly<{
     name: string,
diff --git a/src/mol-data/structure/structure/structure.ts b/src/mol-data/structure/structure/structure.ts
index 31e001a276ac19ddfb1bbd8f96bf06747d2b1af6..4b2cf5daa305ede7c0e0abd76efd440ce76e713c 100644
--- a/src/mol-data/structure/structure/structure.ts
+++ b/src/mol-data/structure/structure/structure.ts
@@ -8,7 +8,7 @@ import { Model } from '../model'
 import Unit from './unit'
 import Operator from './operator'
 import AtomSet from './atom/set'
-import { OrderedSet } from '../../../mol-base/collections/integer'
+import { OrderedSet } from 'mol-base/collections/integer'
 
 interface Structure extends Readonly<{
     units: { readonly [id: number]: Unit },
diff --git a/src/mol-io/reader/_spec/column.spec.ts b/src/mol-io/reader/_spec/column.spec.ts
index aa6723a3d1dad0fca4b2135e8316ecabe1ec9962..a0242c39f9c226754af22eec8fd75c9d30f39113 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-base/collections/column'
+import Column, { ColumnHelpers } from 'mol-base/collections/column'
 
 const lines = [
     '1.123 abc',
diff --git a/src/mol-io/reader/cif/binary/field.ts b/src/mol-io/reader/cif/binary/field.ts
index 30ebd0ccd9be626ba0ae6f19602d95c9c110ea1e..1a629ea2fe3357a44d3e5302ee5cbd495a846432 100644
--- a/src/mol-io/reader/cif/binary/field.ts
+++ b/src/mol-io/reader/cif/binary/field.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column, { ColumnHelpers } from '../../../../mol-base/collections/column'
+import Column, { ColumnHelpers } from 'mol-base/collections/column'
 import * as Data from '../data-model'
 import { EncodedColumn } from './encoding'
 import decode from './decoder'
diff --git a/src/mol-io/reader/cif/binary/parser.ts b/src/mol-io/reader/cif/binary/parser.ts
index 84b3907ede92f92908acf9da2062fea5a7bf8e7f..0225eab255553f28fa39cd25e318a328c72d89e0 100644
--- a/src/mol-io/reader/cif/binary/parser.ts
+++ b/src/mol-io/reader/cif/binary/parser.ts
@@ -9,7 +9,7 @@ import * as Encoding from './encoding'
 import Field from './field'
 import Result from '../../result'
 import decodeMsgPack from '../../../utils/msgpack/decode'
-import Computation from '../../../../mol-base/computation'
+import Computation from 'mol-base/computation'
 
 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 3d8c6edf42b20ebef5f940c392c81bab6792f92d..bd8cf4ec703feba2475f842de28e968ca8f08a2a 100644
--- a/src/mol-io/reader/cif/data-model.ts
+++ b/src/mol-io/reader/cif/data-model.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column from '../../../mol-base/collections/column'
+import Column from 'mol-base/collections/column'
 
 export interface File {
     readonly name?: string,
diff --git a/src/mol-io/reader/cif/schema.ts b/src/mol-io/reader/cif/schema.ts
index b1e7d8d35a0031f5e6182b62cb7980f2e08d9c46..7984870d7a9edd61c97e43da4ef72a122043c057 100644
--- a/src/mol-io/reader/cif/schema.ts
+++ b/src/mol-io/reader/cif/schema.ts
@@ -5,8 +5,8 @@
  */
 
 import * as Data from './data-model'
-import Column, { ColumnHelpers } from '../../../mol-base/collections/column'
-import Table from '../../../mol-base/collections/table'
+import Column, { ColumnHelpers } from 'mol-base/collections/column'
+import Table from 'mol-base/collections/table'
 
 export function toTypedFrame<Schema extends FrameSchema, Frame extends TypedFrame<Schema> = TypedFrame<Schema>>(schema: Schema, frame: Data.Frame): Frame {
     return createTypedFrame(schema, frame) as Frame;
diff --git a/src/mol-io/reader/cif/text/field.ts b/src/mol-io/reader/cif/text/field.ts
index 86ba415c3e46504212d436f8620809f2eaa0f052..b124fed3c6effbdd5a664f00bbf47696cbd8d798 100644
--- a/src/mol-io/reader/cif/text/field.ts
+++ b/src/mol-io/reader/cif/text/field.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column, { ColumnHelpers } from '../../../../mol-base/collections/column'
+import Column, { ColumnHelpers } from 'mol-base/collections/column'
 import * as TokenColumn from '../../common/text/column/token'
 import { Tokens } from '../../common/text/tokenizer'
 import * as Data from '../data-model'
diff --git a/src/mol-io/reader/cif/text/parser.ts b/src/mol-io/reader/cif/text/parser.ts
index 4426877dce5007c6135b8c7d02d96b261c619b1c..e657ee4eb244bbb282fd7c1f24734c81e77021ae 100644
--- a/src/mol-io/reader/cif/text/parser.ts
+++ b/src/mol-io/reader/cif/text/parser.ts
@@ -26,7 +26,7 @@ import * as Data from '../data-model'
 import Field from './field'
 import { Tokens, TokenBuilder } from '../../common/text/tokenizer'
 import Result from '../../result'
-import Computation from '../../../../mol-base/computation'
+import Computation from 'mol-base/computation'
 
 /**
  * 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 06a2a89d9ab2fd711afb9a4f7376c3179879f519..2644ac70ab874ca7c834253670b110e0c52aede5 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-base/collections/column'
+import Column, { ColumnHelpers } from 'mol-base/collections/column'
 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 6284121aad3b6fae7f85fd73565ead8fc78e92bf..21fd44a7a2336a82b6e99c71e1566412a4d969b9 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-base/collections/column'
+import Column, { ColumnHelpers } from 'mol-base/collections/column'
 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 cbddb018b550fc1b3242757bfbc2ffd15608e5c7..2d48a3fc1974804a00e8118d66928439029de9da 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 Computation from '../../../../mol-base/computation'
+import Computation from 'mol-base/computation'
 
 export interface Tokenizer {
     data: string,
diff --git a/src/mol-io/reader/gro/parser.ts b/src/mol-io/reader/gro/parser.ts
index 7a849ccc371fa1618955d4a8705700614195564f..68f05a9df41a63757301964765e3300bb1d4838f 100644
--- a/src/mol-io/reader/gro/parser.ts
+++ b/src/mol-io/reader/gro/parser.ts
@@ -7,10 +7,10 @@
 
 import Tokenizer from '../common/text/tokenizer'
 import FixedColumn from '../common/text/column/fixed'
-import Column from '../../../mol-base/collections/column'
+import Column from 'mol-base/collections/column'
 import * as Schema from './schema'
 import Result from '../result'
-import Computation from '../../../mol-base/computation'
+import Computation from 'mol-base/computation'
 
 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 a32f34ee1ecc5ca3c2b5df1bb222b175c023026f..d5edb09da0d418993ae05ffde35ee77779caf283 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-base/collections/column'
+import Column from 'mol-base/collections/column'
 
 export interface Header {
     title: string,
diff --git a/src/mol-io/reader/mol2/schema.d.ts b/src/mol-io/reader/mol2/schema.d.ts
index 15a2ca7afff455774e7bed56b72a7914c4a48dda..c99074e349d1e24ee2ecdc3886b3d75a889e8254 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-base/collections/column'
+import Column from 'mol-base/collections/column'
 
 // 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/perf-tests/chunked-array-vs-native.ts b/src/perf-tests/chunked-array-vs-native.ts
index 7ac14c454e603198bf14ccc2ec12e7d3ba1af26e..80fc3ff315971167819c67e74e7bc83bafac8afb 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-base/collections/chunked-array'
+import ChunkedArray from 'mol-base/collections/chunked-array'
 
 function testNative(size: number) {
     const xs = new Array(size);
diff --git a/src/perf-tests/column.ts b/src/perf-tests/column.ts
index c5173a57b00c05041ddcfb76ccb8334fc88ea6cc..d43a32a5c64b4a8346fe5ab514505313466e72df 100644
--- a/src/perf-tests/column.ts
+++ b/src/perf-tests/column.ts
@@ -1,5 +1,5 @@
 import * as B from 'benchmark'
-import C from '../mol-base/collections/column'
+import C from 'mol-base/collections/column'
 
 export namespace Column {
     function createData(n: number) {
diff --git a/src/perf-tests/iterators.ts b/src/perf-tests/iterators.ts
index b2f10b3fd77d21a94303b016561077501da5ae51..c980363089c6118fc555301f8abe3a55bf0ed0b5 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-base/collections/iterator'
+import It from 'mol-base/collections/iterator'
 
 function createData(n: number) {
     const data = [];//new Int32Array(n);
diff --git a/src/perf-tests/sets.ts b/src/perf-tests/sets.ts
index b499ae2a3e6a52cc857b33751280b9afd5259e3f..9a3461414e8b1da7e4ed2323c85c6e6a501fd517 100644
--- a/src/perf-tests/sets.ts
+++ b/src/perf-tests/sets.ts
@@ -1,6 +1,6 @@
 import * as B from 'benchmark'
-import { Tuple, Segmentation, OrderedSet as OrdSet } from '../mol-base/collections/integer'
-import { AtomSet } from '../mol-data/structure/structure'
+import { Tuple, Segmentation, OrderedSet as OrdSet } from 'mol-base/collections/integer'
+import { AtomSet } from 'mol-data/structure/structure'
 
 export namespace Iteration {
     const U = 1000, V = 2500;
diff --git a/src/perf-tests/sort.ts b/src/perf-tests/sort.ts
index 3b4bab9f386cdf5797c28c655632e15ceade9906..d4461e91eae6caea4605ac52afdd9513654e8793 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-base/collections/sort'
+import * as Sort from 'mol-base/collections/sort'
 
 function shuffle(a: number[]) {
     for (let i = a.length - 1; i > 0; i--) {
diff --git a/src/perf-tests/structure.ts b/src/perf-tests/structure.ts
index 7da905f45071fb7ce7fca58858fcbf6dfe269614..5f14762b8d1465f51dc4cb54a55e6efc367b5add 100644
--- a/src/perf-tests/structure.ts
+++ b/src/perf-tests/structure.ts
@@ -8,12 +8,12 @@ import * as B from 'benchmark'
 
 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 { Model } from '../mol-data/structure/model'
-import { Structure, Atom, AtomSet } from '../mol-data/structure/structure'
-import * as Q from '../mol-data/structure/query'
-import { OrderedSet as OrdSet, Segmentation } from '../mol-base/collections/integer'
+import { Model } from 'mol-data/structure/model'
+import { Structure, Atom, AtomSet } from 'mol-data/structure/structure'
+import * as Q from 'mol-data/structure/query'
+import { OrderedSet as OrdSet, Segmentation } from 'mol-base/collections/integer'
 
 require('util.promisify').shim();
 const readFileAsync = util.promisify(fs.readFile);
diff --git a/src/script.ts b/src/script.ts
index 7408e72ea654670cc6c0c0a75ab2d98e7d43b0b5..55a43f4b352d9bf37ddd6b140518443eca89c051 100644
--- a/src/script.ts
+++ b/src/script.ts
@@ -12,15 +12,15 @@ require('util.promisify').shim();
 const readFileAsync = util.promisify(fs.readFile);
 const writeFileAsync = util.promisify(fs.writeFile);
 
-import Gro from './mol-io/reader/gro/parser'
-import CIF from './mol-io/reader/cif'
+import Gro from 'mol-io/reader/gro/parser'
+import CIF from 'mol-io/reader/cif'
 
-import Computation from './mol-base/computation'
+import Computation from 'mol-base/computation'
 
-import buildModels from './mol-data/structure/model/builders/mmcif'
+import buildModels from 'mol-data/structure/model/builders/mmcif'
 
 // import { toTypedFrame as applySchema } from './reader/cif/schema'
-import { generateSchema } from './mol-io/reader/cif/schema/utils'
+import { generateSchema } from 'mol-io/reader/cif/schema/utils'
 
 const file = '1crn.gro'
 // const file = 'water.gro'
diff --git a/tsconfig.json b/tsconfig.json
index b0f81fbe9eb343e6177eda50fce40425c7cf0723..d25a818883fa84ccdfe2aba4c5f5372cfa738fb9 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -10,8 +10,13 @@
         "strictFunctionTypes": true,
         //"downlevelIteration": true,
         "lib": [ "es6", "dom" ],
-        "outDir": "build/js/src",
-        "baseUrl": "src"
+        "outDir": "build/node_modules",
+        "baseUrl": "src",
+        "paths": {
+            "mol-base": ["./mol-base"],
+            "mol-data": ["./mol-data"],
+            "mol-io": ["./mol-io"]
+        }
     },
     "include": [ "**/*" ]
 }
\ No newline at end of file