From 2c55165c84dc9f966f3d3258e3d80f0cd05021bf Mon Sep 17 00:00:00 2001
From: Alexander Rose <alex.rose@rcsb.org>
Date: Mon, 3 Jun 2019 14:38:50 -0700
Subject: [PATCH] use relative paths for module imports

---
 .gitignore                                    |  2 +
 package.json                                  | 30 ++------
 src/apps/basic-wrapper/coloring.ts            |  6 +-
 src/apps/basic-wrapper/controls.tsx           |  4 +-
 src/apps/basic-wrapper/helpers.ts             | 18 ++---
 src/apps/basic-wrapper/index.ts               | 18 ++---
 src/apps/basic-wrapper/superposition.ts       | 20 +++---
 src/apps/chem-comp-bond/create-table.ts       | 14 ++--
 src/apps/cif2bcif/converter.ts                |  8 +--
 src/apps/domain-annotation-server/mapping.ts  |  6 +-
 src/apps/domain-annotation-server/schemas.ts  |  2 +-
 src/apps/image-generator/index.ts             | 20 +++---
 .../schema-generator/schema-from-cif-dic.ts   |  6 +-
 src/apps/schema-generator/util/cif-dic.ts     |  4 +-
 src/apps/schema-generator/util/generate.ts    |  2 +-
 src/apps/state-docs/index.ts                  | 10 +--
 src/apps/state-docs/pd-to-md.ts               |  2 +-
 src/apps/structure-info/helpers.ts            |  4 +-
 src/apps/structure-info/model.ts              | 12 ++--
 src/apps/structure-info/volume.ts             | 18 ++---
 src/apps/viewer/extensions/jolecule.ts        | 30 ++++----
 src/apps/viewer/index.ts                      |  8 +--
 .../proteopedia-wrapper/annotation.ts         |  6 +-
 src/examples/proteopedia-wrapper/coloring.ts  | 14 ++--
 src/examples/proteopedia-wrapper/helpers.ts   | 10 +--
 src/examples/proteopedia-wrapper/index.ts     | 36 +++++-----
 .../proteopedia-wrapper/ui/controls.tsx       |  8 +--
 src/examples/task.ts                          |  4 +-
 src/mol-app/component/color-theme.tsx         |  4 +-
 src/mol-app/component/parameter/boolean.tsx   |  2 +-
 src/mol-app/component/parameter/color.tsx     |  6 +-
 .../component/parameter/multi-select.tsx      |  2 +-
 src/mol-app/component/parameter/number.tsx    |  2 +-
 src/mol-app/component/parameter/select.tsx    |  2 +-
 src/mol-app/component/parameter/text.tsx      |  2 +-
 src/mol-app/component/parameters.tsx          |  4 +-
 src/mol-canvas3d/camera.ts                    |  4 +-
 src/mol-canvas3d/camera/transition.ts         |  6 +-
 src/mol-canvas3d/camera/util.ts               |  2 +-
 src/mol-canvas3d/canvas3d.ts                  | 34 ++++-----
 src/mol-canvas3d/controls/trackball.ts        |  8 +--
 .../helper/bounding-sphere-helper.ts          | 28 ++++----
 src/mol-canvas3d/helper/interaction-events.ts | 10 +--
 src/mol-canvas3d/passes/draw.ts               | 10 +--
 src/mol-canvas3d/passes/multi-sample.ts       | 24 +++----
 src/mol-canvas3d/passes/pick.ts               | 12 ++--
 src/mol-canvas3d/passes/postprocessing.ts     | 24 +++----
 src/mol-data/db/column.ts                     |  2 +-
 src/mol-data/db/table.ts                      |  2 +-
 src/mol-data/util/array.ts                    |  2 +-
 src/mol-data/util/buckets.ts                  |  2 +-
 src/mol-geo/geometry/base.ts                  | 22 +++---
 src/mol-geo/geometry/color-data.ts            | 12 ++--
 .../geometry/direct-volume/direct-volume.ts   | 26 +++----
 .../direct-volume/transfer-function.ts        | 12 ++--
 src/mol-geo/geometry/geometry.ts              | 14 ++--
 src/mol-geo/geometry/lines/lines-builder.ts   |  8 +--
 src/mol-geo/geometry/lines/lines.ts           | 16 ++---
 src/mol-geo/geometry/marker-data.ts           |  6 +-
 .../geometry/mesh/builder/bounding-box.ts     |  4 +-
 src/mol-geo/geometry/mesh/builder/cylinder.ts |  2 +-
 src/mol-geo/geometry/mesh/builder/sheet.ts    |  4 +-
 src/mol-geo/geometry/mesh/builder/sphere.ts   |  2 +-
 src/mol-geo/geometry/mesh/builder/tube.ts     |  4 +-
 src/mol-geo/geometry/mesh/mesh-builder.ts     |  8 +--
 src/mol-geo/geometry/mesh/mesh.ts             | 20 +++---
 src/mol-geo/geometry/overpaint-data.ts        |  8 +--
 src/mol-geo/geometry/points/points-builder.ts |  4 +-
 src/mol-geo/geometry/points/points.ts         | 18 ++---
 src/mol-geo/geometry/size-data.ts             | 12 ++--
 .../geometry/spheres/spheres-builder.ts       |  4 +-
 src/mol-geo/geometry/spheres/spheres.ts       | 16 ++---
 src/mol-geo/geometry/text/font-atlas.ts       |  6 +-
 src/mol-geo/geometry/text/text-builder.ts     |  6 +-
 src/mol-geo/geometry/text/text.ts             | 26 +++----
 .../geometry/texture-mesh/texture-mesh.ts     | 22 +++---
 src/mol-geo/geometry/transform-data.ts        |  6 +-
 src/mol-geo/geometry/transparency-data.ts     |  8 +--
 src/mol-geo/primitive/box.ts                  |  2 +-
 src/mol-geo/primitive/cylinder.ts             |  2 +-
 src/mol-geo/primitive/plane.ts                |  6 +-
 src/mol-geo/primitive/polyhedron.ts           |  2 +-
 src/mol-geo/primitive/primitive.ts            |  2 +-
 src/mol-geo/primitive/prism.ts                |  2 +-
 src/mol-geo/primitive/pyramid.ts              |  2 +-
 src/mol-geo/primitive/spiked-ball.ts          |  2 +-
 src/mol-geo/primitive/star.ts                 |  2 +-
 src/mol-geo/primitive/wedge.ts                |  2 +-
 src/mol-geo/util.ts                           |  4 +-
 src/mol-geo/util/location-iterator.ts         |  4 +-
 src/mol-geo/util/marching-cubes/algorithm.ts  |  6 +-
 src/mol-geo/util/marching-cubes/builder.ts    |  2 +-
 src/mol-gl/_spec/gl.shim.ts                   |  2 +-
 src/mol-gl/_spec/renderer.spec.ts             | 22 +++---
 .../compute/histogram-pyramid/reduction.ts    | 16 ++---
 src/mol-gl/compute/histogram-pyramid/sum.ts   | 12 ++--
 .../compute/marching-cubes/active-voxels.ts   | 12 ++--
 .../compute/marching-cubes/isosurface.ts      | 12 ++--
 src/mol-gl/compute/marching-cubes/tables.ts   |  4 +-
 src/mol-gl/compute/util.ts                    | 14 ++--
 src/mol-gl/object3d.ts                        |  2 +-
 src/mol-gl/render-object.ts                   |  2 +-
 src/mol-gl/renderable.ts                      |  6 +-
 src/mol-gl/renderable/direct-volume.ts        |  2 +-
 src/mol-gl/renderable/lines.ts                |  2 +-
 src/mol-gl/renderable/mesh.ts                 |  2 +-
 src/mol-gl/renderable/points.ts               |  2 +-
 src/mol-gl/renderable/schema.ts               |  6 +-
 src/mol-gl/renderable/spheres.ts              |  2 +-
 src/mol-gl/renderable/text.ts                 |  2 +-
 src/mol-gl/renderable/texture-mesh.ts         |  2 +-
 src/mol-gl/renderable/util.ts                 |  6 +-
 src/mol-gl/renderer.ts                        | 14 ++--
 src/mol-gl/scene.ts                           |  6 +-
 src/mol-gl/shader-code.ts                     | 72 +++++++++----------
 src/mol-gl/webgl/buffer.ts                    |  6 +-
 src/mol-gl/webgl/context.ts                   |  6 +-
 src/mol-gl/webgl/framebuffer.ts               |  4 +-
 src/mol-gl/webgl/program.ts                   |  8 +--
 src/mol-gl/webgl/render-item.ts               | 10 +--
 src/mol-gl/webgl/render-target.ts             |  6 +-
 src/mol-gl/webgl/renderbuffer.ts              |  2 +-
 src/mol-gl/webgl/shader.ts                    |  6 +-
 src/mol-gl/webgl/texture.ts                   |  6 +-
 src/mol-gl/webgl/uniform.ts                   |  6 +-
 src/mol-io/common/binary-cif/array-encoder.ts |  4 +-
 src/mol-io/common/binary-cif/classifier.ts    |  2 +-
 src/mol-io/common/binary-cif/encoding.ts      |  2 +-
 src/mol-io/common/file-handle.ts              |  2 +-
 src/mol-io/common/simple-buffer.ts            |  2 +-
 src/mol-io/common/typed-array.ts              |  4 +-
 src/mol-io/reader/_spec/cif.spec.ts           |  2 +-
 src/mol-io/reader/_spec/column.spec.ts        |  2 +-
 src/mol-io/reader/_spec/csv.spec.ts           |  8 +--
 src/mol-io/reader/ccp4/parser.ts              |  6 +-
 src/mol-io/reader/cif.ts                      |  2 +-
 src/mol-io/reader/cif/binary/field.ts         |  2 +-
 src/mol-io/reader/cif/binary/parser.ts        |  2 +-
 src/mol-io/reader/cif/data-model.ts           |  4 +-
 src/mol-io/reader/cif/schema.ts               |  6 +-
 src/mol-io/reader/cif/schema/bird.ts          |  2 +-
 src/mol-io/reader/cif/schema/ccd.ts           |  2 +-
 .../reader/cif/schema/density-server.ts       |  2 +-
 src/mol-io/reader/cif/schema/dic.ts           |  2 +-
 src/mol-io/reader/cif/schema/mmcif.ts         |  2 +-
 src/mol-io/reader/cif/text/parser.ts          |  2 +-
 src/mol-io/reader/common/text/column/fixed.ts |  2 +-
 src/mol-io/reader/common/text/column/token.ts |  2 +-
 src/mol-io/reader/common/text/tokenizer.ts    |  2 +-
 src/mol-io/reader/csv/field.ts                |  2 +-
 src/mol-io/reader/csv/parser.ts               | 10 ++-
 src/mol-io/reader/dsn6/parser.ts              |  4 +-
 src/mol-io/reader/gro/parser.ts               |  4 +-
 src/mol-io/reader/gro/schema.d.ts             |  2 +-
 src/mol-io/reader/mol2/parser.ts              |  4 +-
 src/mol-io/reader/mol2/schema.d.ts            |  2 +-
 src/mol-io/reader/obj/parser.ts               |  4 +-
 src/mol-io/reader/pdb/parser.ts               |  2 +-
 src/mol-io/reader/ply/parser.ts               |  4 +-
 src/mol-io/reader/ply/schema.ts               |  2 +-
 src/mol-io/writer/cif/encoder.ts              |  6 +-
 src/mol-io/writer/cif/encoder/binary.ts       |  4 +-
 src/mol-io/writer/cif/encoder/text.ts         |  4 +-
 src/mol-io/writer/cif/encoder/util.ts         |  2 +-
 src/mol-math/geometry/_spec/lookup3d.spec.ts  |  4 +-
 src/mol-math/geometry/boundary-helper.ts      |  2 +-
 src/mol-math/geometry/centroid-helper.ts      |  2 +-
 src/mol-math/geometry/common.ts               |  4 +-
 src/mol-math/geometry/distance-transform.ts   |  2 +-
 src/mol-math/geometry/gaussian-density.ts     |  6 +-
 src/mol-math/geometry/gaussian-density/cpu.ts |  4 +-
 src/mol-math/geometry/gaussian-density/gpu.ts | 22 +++---
 src/mol-math/geometry/lookup3d/grid.ts        |  2 +-
 src/mol-math/geometry/molecular-surface.ts    | 14 ++--
 src/mol-math/geometry/primitives/box3d.ts     |  2 +-
 src/mol-math/geometry/primitives/sphere3d.ts  |  4 +-
 src/mol-math/geometry/symmetry-operator.ts    |  2 +-
 src/mol-math/graph/int-adjacency-graph.ts     |  4 +-
 src/mol-math/linear-algebra/3d/mat3.ts        |  2 +-
 src/mol-math/linear-algebra/3d/mat4.ts        |  2 +-
 .../linear-algebra/3d/minimize-rmsd.ts        |  2 +-
 src/mol-math/linear-algebra/3d/quat.ts        |  2 +-
 src/mol-math/linear-algebra/3d/vec2.ts        |  4 +-
 src/mol-math/linear-algebra/3d/vec3.ts        |  2 +-
 src/mol-math/linear-algebra/3d/vec4.ts        |  2 +-
 src/mol-math/linear-algebra/matrix/matrix.ts  |  2 +-
 src/mol-math/linear-algebra/matrix/svd.ts     |  2 +-
 src/mol-model-formats/shape/ply.ts            | 26 +++----
 .../structure/_spec/pdb.spec.ts               |  2 +-
 src/mol-model-formats/structure/format.ts     |  4 +-
 src/mol-model-formats/structure/gro.ts        | 12 ++--
 src/mol-model-formats/structure/mmcif.ts      |  6 +-
 .../structure/mmcif/assembly.ts               | 10 +--
 .../structure/mmcif/atomic.ts                 | 24 +++----
 .../structure/mmcif/bonds/comp.ts             | 14 ++--
 .../structure/mmcif/bonds/struct_conn.ts      | 18 ++---
 src/mol-model-formats/structure/mmcif/ihm.ts  | 20 +++---
 .../mmcif/pair-restraints/cross-links.ts      | 10 +--
 .../structure/mmcif/parser.ts                 | 30 ++++----
 .../structure/mmcif/secondary-structure.ts    | 12 ++--
 .../structure/mmcif/sequence.ts               | 12 ++--
 src/mol-model-formats/structure/mmcif/sort.ts |  8 +--
 src/mol-model-formats/structure/mmcif/util.ts |  4 +-
 src/mol-model-formats/structure/pdb.ts        |  6 +-
 .../structure/pdb/assembly.ts                 |  8 +--
 .../structure/pdb/secondary-structure.ts      |  6 +-
 src/mol-model-formats/structure/pdb/to-cif.ts | 12 ++--
 src/mol-model-formats/structure/util.ts       |  2 +-
 src/mol-model-formats/volume/ccp4.ts          | 16 ++---
 .../volume/density-server.ts                  | 10 +--
 src/mol-model-formats/volume/dsn6.ts          | 14 ++--
 .../common/custom-element-property.ts         | 20 +++---
 .../common/custom-property-registry.ts        |  6 +-
 src/mol-model-props/common/wrapper.ts         |  6 +-
 .../computed/secondary-structure.ts           | 12 ++--
 .../computed/secondary-structure/dssp.ts      | 12 ++--
 .../dssp/backbone-hbonds.ts                   | 10 +--
 .../secondary-structure/dssp/bends.ts         |  6 +-
 .../secondary-structure/dssp/common.ts        |  8 +--
 .../dssp/dihedral-angles.ts                   |  6 +-
 .../secondary-structure/dssp/protein-info.ts  |  4 +-
 .../secondary-structure/dssp/trace-lookup.ts  |  8 +--
 .../pdbe/preferred-assembly.ts                |  8 +--
 src/mol-model-props/pdbe/struct-ref-domain.ts |  8 +--
 .../pdbe/structure-quality-report.ts          | 24 +++----
 .../pdbe/themes/structure-quality-report.ts   | 14 ++--
 src/mol-model-props/rcsb/assembly-symmetry.ts | 26 +++----
 .../representations/assembly-symmetry-axes.ts | 38 +++++-----
 .../rcsb/themes/assembly-symmetry-cluster.ts  | 16 ++---
 src/mol-model-props/rcsb/util.ts              |  4 +-
 src/mol-model/loci.ts                         |  8 +--
 src/mol-model/sequence/sequence.ts            |  2 +-
 src/mol-model/shape/provider.ts               |  4 +-
 src/mol-model/shape/shape.ts                  | 10 +--
 .../structure/common/custom-property.ts       |  6 +-
 .../structure/export/categories/atom_site.ts  |  2 +-
 .../structure/export/categories/misc.ts       |  4 +-
 .../export/categories/modified-residues.ts    |  4 +-
 .../export/categories/secondary-structure.ts  |  6 +-
 .../structure/export/categories/sequence.ts   |  5 +-
 .../structure/export/categories/utils.ts      | 10 +--
 src/mol-model/structure/export/mmcif.ts       |  4 +-
 src/mol-model/structure/model/model.ts        |  4 +-
 .../model/properties/atomic/conformation.ts   |  4 +-
 .../model/properties/atomic/hierarchy.ts      |  8 +--
 .../model/properties/chemical-component.ts    |  4 +-
 .../model/properties/coarse/conformation.ts   |  4 +-
 .../model/properties/coarse/hierarchy.ts      |  6 +-
 .../structure/model/properties/common.ts      |  2 +-
 .../model/properties/custom/indexed.ts        |  6 +-
 .../structure/model/properties/sequence.ts    |  2 +-
 .../structure/model/properties/symmetry.ts    |  6 +-
 .../model/properties/utils/atomic-derived.ts  |  2 +-
 .../model/properties/utils/atomic-index.ts    |  6 +-
 .../model/properties/utils/atomic-ranges.ts   |  6 +-
 .../model/properties/utils/coarse-ranges.ts   |  4 +-
 src/mol-model/structure/model/types.ts        |  6 +-
 src/mol-model/structure/query/context.ts      |  2 +-
 .../structure/query/queries/combinators.ts    |  2 +-
 .../structure/query/queries/filters.ts        |  6 +-
 .../structure/query/queries/generators.ts     |  4 +-
 .../structure/query/queries/internal.ts       |  4 +-
 .../structure/query/queries/modifiers.ts      |  4 +-
 src/mol-model/structure/query/selection.ts    |  4 +-
 .../structure/query/utils/builders.ts         |  2 +-
 .../query/utils/structure-distance.ts         |  2 +-
 .../structure/query/utils/structure-set.ts    |  2 +-
 .../structure/accessible-surface-area.ts      |  8 +--
 .../structure/carbohydrates/compute.ts        | 12 ++--
 .../structure/carbohydrates/constants.ts      |  4 +-
 .../structure/structure/carbohydrates/data.ts |  2 +-
 src/mol-model/structure/structure/element.ts  | 14 ++--
 .../structure/structure/structure.ts          | 16 ++---
 src/mol-model/structure/structure/symmetry.ts | 10 +--
 src/mol-model/structure/structure/unit.ts     | 10 +--
 .../structure/structure/unit/links/data.ts    |  2 +-
 .../structure/unit/links/inter-compute.ts     |  8 +--
 .../structure/unit/links/intra-compute.ts     |  6 +-
 .../pair-restraints/extract-cross-links.ts    |  2 +-
 .../structure/structure/unit/rings.ts         |  2 +-
 .../structure/structure/unit/rings/compute.ts |  6 +-
 .../structure/structure/util/boundary.ts      |  6 +-
 .../structure/structure/util/lookup3d.ts      |  6 +-
 .../structure/structure/util/polymer.ts       |  8 +--
 .../structure/util/subset-builder.ts          |  4 +-
 .../structure/structure/util/superposition.ts |  4 +-
 .../structure/util/unique-subset-builder.ts   |  6 +-
 .../structure/util/unit-transforms.ts         |  8 +--
 src/mol-model/structure/util.ts               |  4 +-
 src/mol-model/volume/data.ts                  |  6 +-
 src/mol-plugin/behavior/behavior.ts           | 10 +--
 src/mol-plugin/behavior/dynamic/camera.ts     |  6 +-
 .../computed/secondary-structure.ts           |  6 +-
 .../pdbe/structure-quality-report.ts          | 16 ++---
 .../custom-props/rcsb/assembly-symmetry.ts    | 18 ++---
 src/mol-plugin/behavior/dynamic/labels.ts     | 30 ++++----
 .../behavior/dynamic/representation.ts        | 14 ++--
 .../structure-representation-interaction.ts   | 30 ++++----
 .../dynamic/volume-streaming/behavior.ts      | 36 +++++-----
 .../dynamic/volume-streaming/model.ts         |  4 +-
 .../dynamic/volume-streaming/transformers.ts  | 26 +++----
 .../behavior/dynamic/volume-streaming/util.ts |  6 +-
 src/mol-plugin/behavior/static/camera.ts      |  6 +-
 src/mol-plugin/behavior/static/misc.ts        |  4 +-
 .../behavior/static/representation.ts         |  6 +-
 src/mol-plugin/behavior/static/state.ts       |  8 +--
 src/mol-plugin/command.ts                     |  8 +--
 src/mol-plugin/command/base.ts                |  2 +-
 src/mol-plugin/component.ts                   |  4 +-
 src/mol-plugin/context.ts                     | 34 ++++-----
 src/mol-plugin/layout.ts                      |  2 +-
 src/mol-plugin/spec.ts                        |  2 +-
 src/mol-plugin/state.ts                       | 12 ++--
 src/mol-plugin/state/actions/data-format.ts   | 12 ++--
 src/mol-plugin/state/actions/shape.ts         |  8 +--
 src/mol-plugin/state/actions/structure.ts     | 12 ++--
 src/mol-plugin/state/actions/volume.ts        | 14 ++--
 src/mol-plugin/state/animation/built-in.ts    |  8 +--
 src/mol-plugin/state/animation/helpers.ts     |  8 +--
 src/mol-plugin/state/animation/manager.ts     |  6 +-
 src/mol-plugin/state/animation/model.ts       |  4 +-
 src/mol-plugin/state/camera.ts                |  6 +-
 src/mol-plugin/state/objects.ts               | 28 ++++----
 src/mol-plugin/state/snapshots.ts             |  6 +-
 src/mol-plugin/state/transforms/data.ts       | 18 ++---
 src/mol-plugin/state/transforms/helpers.ts    | 16 ++---
 src/mol-plugin/state/transforms/misc.ts       |  6 +-
 src/mol-plugin/state/transforms/model.ts      | 40 +++++------
 .../state/transforms/representation.ts        | 46 ++++++------
 src/mol-plugin/state/transforms/volume.ts     | 14 ++--
 src/mol-plugin/ui/camera.tsx                  |  4 +-
 src/mol-plugin/ui/controls.tsx                | 14 ++--
 src/mol-plugin/ui/controls/common.tsx         |  2 +-
 .../line-graph/line-graph-component.tsx       | 70 +++++++++---------
 .../controls/line-graph/point-component.tsx   | 18 ++---
 src/mol-plugin/ui/controls/parameters.tsx     | 14 ++--
 src/mol-plugin/ui/controls/slider.tsx         |  2 +-
 src/mol-plugin/ui/custom/volume.tsx           |  8 +--
 src/mol-plugin/ui/plugin.tsx                  |  8 +--
 src/mol-plugin/ui/state.tsx                   | 12 ++--
 src/mol-plugin/ui/state/actions.tsx           |  2 +-
 src/mol-plugin/ui/state/apply-action.tsx      | 10 +--
 src/mol-plugin/ui/state/common.tsx            |  6 +-
 src/mol-plugin/ui/state/tree.tsx              |  6 +-
 src/mol-plugin/ui/state/update-transform.tsx  |  4 +-
 src/mol-plugin/ui/task.tsx                    |  4 +-
 src/mol-plugin/ui/viewport.tsx                | 10 +--
 src/mol-plugin/util/loci-label-manager.ts     |  6 +-
 .../util/structure-element-selection.ts       |  8 +--
 src/mol-plugin/util/structure-labels.ts       | 22 +++---
 .../util/substructure-parent-helper.ts        |  4 +-
 src/mol-plugin/util/task-manager.ts           |  6 +-
 src/mol-repr/representation.ts                | 26 +++----
 src/mol-repr/shape/representation.ts          | 40 +++++------
 .../structure/complex-representation.ts       | 21 +++---
 src/mol-repr/structure/complex-visual.ts      | 46 ++++++------
 src/mol-repr/structure/registry.ts            |  2 +-
 src/mol-repr/structure/representation.ts      | 20 +++---
 .../representation/ball-and-stick.ts          |  8 +--
 .../structure/representation/carbohydrate.ts  | 14 ++--
 .../structure/representation/cartoon.ts       | 18 ++---
 .../representation/distance-restraint.ts      |  8 +--
 .../representation/gaussian-surface.ts        |  8 +--
 .../representation/gaussian-volume.ts         |  8 +--
 .../representation/molecular-surface.ts       |  8 +--
 .../structure/representation/point.ts         |  8 +--
 .../structure/representation/putty.ts         |  8 +--
 .../structure/representation/spacefill.ts     |  8 +--
 .../structure/units-representation.ts         | 22 +++---
 src/mol-repr/structure/units-visual.ts        | 54 +++++++-------
 .../visual/carbohydrate-link-cylinder.ts      | 24 +++----
 .../visual/carbohydrate-symbol-mesh.ts        | 36 +++++-----
 .../carbohydrate-terminal-link-cylinder.ts    | 26 +++----
 .../visual/cross-link-restraint-cylinder.ts   | 29 ++++----
 .../structure/visual/element-point.ts         | 19 +++--
 .../structure/visual/element-sphere.ts        |  9 ++-
 .../visual/gaussian-density-volume.ts         | 20 +++---
 .../structure/visual/gaussian-surface-mesh.ts | 32 ++++-----
 .../visual/gaussian-surface-wireframe.ts      | 20 +++---
 .../visual/inter-unit-link-cylinder.ts        | 25 ++++---
 .../visual/intra-unit-link-cylinder.ts        | 25 ++++---
 .../visual/molecular-surface-mesh.ts          | 21 +++---
 .../structure/visual/nucleotide-block-mesh.ts | 31 ++++----
 .../structure/visual/nucleotide-ring-mesh.ts  | 33 +++++----
 .../visual/polymer-backbone-cylinder.ts       | 27 ++++---
 .../visual/polymer-direction-wedge.ts         | 25 ++++---
 .../structure/visual/polymer-gap-cylinder.ts  | 27 ++++---
 .../structure/visual/polymer-trace-mesh.ts    | 25 ++++---
 .../structure/visual/polymer-tube-mesh.ts     | 21 +++---
 src/mol-repr/structure/visual/util/common.ts  | 12 ++--
 src/mol-repr/structure/visual/util/element.ts | 30 ++++----
 .../structure/visual/util/gaussian.ts         | 14 ++--
 src/mol-repr/structure/visual/util/link.ts    | 20 +++---
 .../visual/util/molecular-surface.ts          | 10 +--
 .../structure/visual/util/nucleotide.ts       | 12 ++--
 src/mol-repr/structure/visual/util/polymer.ts | 14 ++--
 .../visual/util/polymer/backbone-iterator.ts  |  8 +--
 .../visual/util/polymer/curve-segment.ts      |  6 +-
 .../visual/util/polymer/gap-iterator.ts       |  6 +-
 .../visual/util/polymer/trace-iterator.ts     | 20 +++---
 src/mol-repr/util.ts                          |  6 +-
 src/mol-repr/visual.ts                        | 30 ++++----
 src/mol-repr/volume/direct-volume.ts          | 32 ++++-----
 src/mol-repr/volume/isosurface.ts             | 24 +++----
 src/mol-repr/volume/registry.ts               |  2 +-
 src/mol-repr/volume/representation.ts         | 44 ++++++------
 src/mol-script/language/parser.ts             |  2 +-
 src/mol-script/runtime/query/compiler.ts      |  2 +-
 src/mol-script/runtime/query/table.ts         | 12 ++--
 src/mol-script/script/mol-script/symbols.ts   |  2 +-
 src/mol-state/action.ts                       |  6 +-
 src/mol-state/object.ts                       |  6 +-
 src/mol-state/state.ts                        | 12 ++--
 src/mol-state/state/builder.ts                |  2 +-
 src/mol-state/transform.ts                    |  2 +-
 src/mol-state/transformer.ts                  |  6 +-
 src/mol-state/tree/transient.ts               |  2 +-
 src/mol-task/execution/observable.ts          |  2 +-
 src/mol-task/task.ts                          |  2 +-
 src/mol-task/util/chunked.ts                  |  2 +-
 src/mol-task/util/user-timing.ts              |  2 +-
 src/mol-theme/color.ts                        | 14 ++--
 src/mol-theme/color/carbohydrate-symbol.ts    | 13 ++--
 src/mol-theme/color/chain-id.ts               | 17 +++--
 src/mol-theme/color/cross-link.ts             | 15 ++--
 src/mol-theme/color/element-index.ts          | 14 ++--
 src/mol-theme/color/element-symbol.ts         | 14 ++--
 src/mol-theme/color/entity-source.ts          | 18 ++---
 src/mol-theme/color/hydrophobicity.ts         | 12 ++--
 src/mol-theme/color/illustrative.ts           | 12 ++--
 src/mol-theme/color/molecule-type.ts          | 16 ++---
 src/mol-theme/color/polymer-id.ts             | 18 ++---
 src/mol-theme/color/polymer-index.ts          | 16 ++---
 src/mol-theme/color/residue-name.ts           | 14 ++--
 src/mol-theme/color/secondary-structure.ts    | 18 ++---
 src/mol-theme/color/sequence-id.ts            | 12 ++--
 src/mol-theme/color/shape-group.ts            | 10 +--
 src/mol-theme/color/uncertainty.ts            | 10 +--
 src/mol-theme/color/uniform.ts                |  8 +--
 src/mol-theme/color/unit-index.ts             | 14 ++--
 src/mol-theme/color/util.ts                   | 10 +--
 src/mol-theme/label.ts                        |  6 +-
 src/mol-theme/overpaint.ts                    |  4 +-
 src/mol-theme/size.ts                         |  8 +--
 src/mol-theme/size/physical.ts                | 10 +--
 src/mol-theme/size/shape-group.ts             | 10 +--
 src/mol-theme/size/uncertainty.ts             |  8 +--
 src/mol-theme/size/uniform.ts                 |  4 +-
 src/mol-theme/theme.ts                        |  8 +--
 src/mol-theme/transparency.ts                 |  2 +-
 src/mol-util/color/color.ts                   |  4 +-
 src/mol-util/color/distinct.ts                | 10 +--
 src/mol-util/color/scale.ts                   |  4 +-
 src/mol-util/color/spaces/hcl.ts              | 12 ++--
 src/mol-util/color/spaces/lab.ts              | 16 ++---
 src/mol-util/data-source.ts                   |  4 +-
 src/mol-util/float-packing.ts                 |  2 +-
 src/mol-util/graphql-client.ts                |  4 +-
 src/mol-util/index.ts                         |  2 +-
 src/mol-util/input/event-offset.ts            |  2 +-
 src/mol-util/input/input-observer.ts          |  4 +-
 src/mol-util/lru-cache.ts                     |  2 +-
 src/mol-util/param-definition.ts              |  4 +-
 src/mol-util/performance-monitor.ts           |  2 +-
 src/mol-util/uuid.ts                          |  2 +-
 src/perf-tests/chunked-array-vs-native.ts     |  2 +-
 src/perf-tests/cif-encoder.ts                 |  2 +-
 src/perf-tests/column.ts                      |  2 +-
 src/perf-tests/iterators.ts                   |  2 +-
 src/perf-tests/lookup3d.ts                    | 10 +--
 src/perf-tests/mol-script.ts                  | 18 ++---
 src/perf-tests/sets.ts                        |  2 +-
 src/perf-tests/sort.ts                        |  2 +-
 src/perf-tests/state.ts                       |  4 +-
 src/perf-tests/string-builder.ts              |  2 +-
 src/perf-tests/structure.ts                   | 16 ++---
 src/perf-tests/tasks.ts                       |  4 +-
 src/servers/common/swagger-ui/index.ts        |  2 +-
 src/servers/model/preprocess/converter.ts     |  6 +-
 src/servers/model/preprocess/parallel.ts      |  5 +-
 src/servers/model/preprocess/preprocess.ts    |  8 +--
 src/servers/model/preprocess/util.ts          |  2 +-
 .../model/properties/providers/pdbe.ts        | 12 ++--
 .../model/properties/providers/rcsb.ts        |  2 +-
 src/servers/model/property-provider.ts        |  4 +-
 src/servers/model/query/atoms.ts              |  4 +-
 src/servers/model/server.ts                   |  4 +-
 src/servers/model/server/api-local.ts         |  6 +-
 src/servers/model/server/api-web.ts           |  4 +-
 src/servers/model/server/api.ts               |  4 +-
 src/servers/model/server/cache.ts             |  4 +-
 src/servers/model/server/jobs.ts              |  4 +-
 src/servers/model/server/query.ts             | 16 ++---
 src/servers/model/server/structure-wrapper.ts | 10 +--
 src/servers/model/utils/fetch-props-pdbe.ts   | 12 ++--
 src/servers/model/utils/fetch-retry.ts        |  2 +-
 src/servers/volume/common/binary-schema.ts    |  4 +-
 src/servers/volume/common/data-format.ts      |  4 +-
 src/servers/volume/common/file.ts             |  4 +-
 src/servers/volume/pack/data-model.ts         |  6 +-
 src/servers/volume/pack/downsampling.ts       |  2 +-
 src/servers/volume/pack/format.ts             |  4 +-
 src/servers/volume/pack/format/ccp4.ts        |  8 +--
 src/servers/volume/pack/format/dsn6.ts        |  8 +--
 src/servers/volume/pack/main.ts               |  2 +-
 src/servers/volume/pack/sampling.ts           |  6 +-
 src/servers/volume/pack/writer.ts             |  4 +-
 src/servers/volume/server.ts                  |  2 +-
 src/servers/volume/server/algebra/box.ts      |  2 +-
 .../volume/server/algebra/coordinate.ts       |  4 +-
 src/servers/volume/server/api.ts              |  4 +-
 src/servers/volume/server/query/compose.ts    |  2 +-
 src/servers/volume/server/query/data-model.ts |  8 +--
 src/servers/volume/server/query/encode.ts     |  8 +--
 src/servers/volume/server/query/execute.ts    | 14 ++--
 src/servers/volume/server/web-api.ts          |  6 +-
 src/tests/browser/font-atlas.ts               |  4 +-
 src/tests/browser/marching-cubes.ts           | 36 +++++-----
 src/tests/browser/render-asa.ts               | 28 ++++----
 src/tests/browser/render-lines.ts             | 18 ++---
 src/tests/browser/render-mesh.ts              | 20 +++---
 src/tests/browser/render-shape.ts             | 28 ++++----
 src/tests/browser/render-spheres.ts           | 14 ++--
 src/tests/browser/render-structure.ts         | 24 +++----
 src/tests/browser/render-text.ts              | 20 +++---
 tsconfig.json                                 | 24 +------
 webpack.config.js                             | 19 +++--
 527 files changed, 2496 insertions(+), 2558 deletions(-)

diff --git a/.gitignore b/.gitignore
index 0a3b7f873..202483f20 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 6b9b89280..f47f69c03 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 54c89117c..ccad3798f 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 e3b144fd9..d7b678f29 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 342325ee8..f888876e3 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 3520372ac..4629abcf4 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 c2b190603..b18e62435 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 28dc5000f..cc29af24a 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 386bba5b5..40808aa09 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 1a8c64e01..094ccf7d2 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 e6caffdac..3384e7779 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 0b54b2af3..844938990 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 5fd4d778e..aa95df845 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 befaea5a5..292d3987e 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 439867d65..73c7f4bb9 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 1cd02da05..833acf0b7 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 b04c25e3a..b068acaaf 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 f4a86d9a6..be1a7aac0 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 58c76c69f..6ffb3c324 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 c432e83fd..68e5b9896 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 1ce9c969a..ca058c307 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 a40a21b7d..f99f91a1b 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 66bf2ea7c..d628f628a 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 a2199b6ed..829a28b53 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 17082c93c..a15bcca86 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 c72a1adbe..bd9d4447f 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 d2a79e61b..3de24ed90 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 ffee5dc03..7ca695512 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 bf3c58078..a98f423fe 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 c8eff666f..d5ec7529e 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 a5c08374c..9835fa360 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 6db9c0c41..8ce2406b6 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 f8509b18c..493f33957 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 9a2ab105e..6299292c8 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 d07252794..5a577b1cf 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 b719707ff..7370392d7 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 5e3cbbabb..92d489e0b 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 469446c54..8e9f31a04 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 488999370..8109567a0 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 b19e9d6d9..db8512d8a 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 329cefae5..c5535caff 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 8f5a96347..22a2f19bd 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 60a252dee..ba28254f6 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 746460f97..4c3150c19 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 06ccc2c31..ee9ff4dee 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 13238d720..46e8ef8d7 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 079758dbf..7d184a44a 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 c993faa65..b567e8317 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 b67be9677..d0c3be326 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 4df70a711..5dc0e310a 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 956a8e365..00dfa6bf8 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 c168c5a03..e103fa292 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 f4991df31..423e2ba64 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 32eb6957b..33bdc759f 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 8b87e1d24..bce632842 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 36678a3fe..494e33232 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 70d994dbb..4d516afe1 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 13dea3213..bcee14f2c 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 65d8e5981..5e4feee99 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 daa24c4f7..758340c20 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 7960a0a8e..34032db08 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 765b96fca..8854ca703 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 8dcd299bf..2427ed6cd 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 693bc69d8..71f150632 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 cfe57234d..0381fd2c7 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 1095cd654..afcec7663 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 a1c74f127..c256cc8dc 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 af8d2fd69..b798b88ef 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 cb5f9c648..924ed1ccd 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 9fdc122f2..14815ece3 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 9050e723a..423c7b4db 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 9d38ea9a2..3129cd54a 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 46f11f633..7ad994593 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 ec3e077d5..3b4b5917e 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 0323d397d..cfbb2d31d 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 9e235f03c..2853d84a9 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 de4b2b797..748f8ed74 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 3b19b6130..e463d6aff 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 5ce466fe7..a677d94a1 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 58f8b893e..1760c3b10 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 f0886e627..fbfb2194e 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 02a69df21..3d46a8067 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 b84dbf379..55a6922a8 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 d848f2d61..e7d4af480 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 242dcbae5..6258cf6c5 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 dd2534f73..8313c2da1 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 2cb94620c..ce5201114 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 a39125f4f..c1bddeec2 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 d683696c5..1ba42e102 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 8c43501c1..c561f659a 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 e446ad257..cbc5d4234 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 8d78d9f32..4b728d8b2 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 b593beef4..bcd8a6223 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 519699cef..20dc0bb15 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 5185aa324..e6b74dc3f 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 c8271bbce..836cc21a6 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 6dc767475..8ad20d72e 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 23c6b8266..baea397c0 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 3fafe4de3..bdf983c5f 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 bfd563690..bd9a3a7bb 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 45887fec4..81cba1020 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 a464f730d..3b758213f 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 19bb43892..86df8c3f5 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 8b8d2dfe4..285020da1 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 e44a62f72..d7b293dd9 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 bcf65b9f0..8e74ad80f 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 6b2cf5e1a..0ed8c58f7 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 492b5a513..97fdf372e 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 1af5348ec..cd78335a1 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 1bf43a856..993feda41 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 75f6f08b1..c8ab401f0 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 7a8400e54..e33d09622 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 24093f858..21093f134 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 3096aa741..baa17e3b4 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 30df4e0ce..2aed7ec61 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 eb2c4f435..e5dcfb408 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 c8975a722..90a916f59 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 997c7412e..c9007d06e 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 8d393ac7c..1bd5bd5ef 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 40e397a4e..5e60430f1 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 d82a66b7b..672bc6eaf 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 86eea1024..2b72b0c53 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 546ba0328..bcaa0cdae 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 3918eb5d1..e0503cd9d 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 bdc7bccc1..136c54c32 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 0d745598e..a6376e920 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 c84ebcd31..2ffcd21b7 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 899d246ad..f69792b55 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 90c6deebf..cc2470e1f 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 9f44ee1dc..b5666a0c6 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 f07e982c3..24c01eb21 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 43e5cd4c5..f8823d130 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 1f7b4be1d..43240ae68 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 8977b5909..3d4dacb27 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 832135f4a..7f36f2909 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 54aad885c..f45c707fe 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 df1d27adb..09d0271a4 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 4cf3ae57f..be4ea44c7 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 db35b9419..e2807e913 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 b2094be89..c84d74e63 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 a66b44999..f35b02eb0 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 86007f71e..f65c958b4 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 646f74a6b..ef49e0fbc 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 b75a2cfd0..cd4b7b3bc 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 dc6c7747a..347fbb076 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 920546393..476fb0fa7 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 22fed914a..182ac81d3 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 46186a5c5..8a6a22d2d 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 fce7c9037..f1f476a44 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 48d1f1072..cf2b6449e 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 420720270..718708c7f 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 131de4668..b58df1f08 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 1a181f1a6..92134b588 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 ddc84303d..c2ef84426 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 0a11a9a0a..1f727b61f 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 21205a267..b444b47e6 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 a8b113a33..675d75195 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 600ac278e..d6ebff601 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 61ea12db4..2d19c3c52 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 c5fbcb995..f113959a8 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 a26084fb3..f0d95d18b 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 c9b39a799..9212bcea2 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 91c0d897f..35bf9cce1 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 2784e479e..0669e20e5 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 92760e92d..254bd9179 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 7dc7ec98d..ecde02d27 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 a3d50f7e7..7387757fc 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 61d34da38..60fbd3c44 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 df3c5693f..4d86a3a59 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 e152830cc..e10633247 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 3dedac18f..d1a8c2d16 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 1915926b9..949d5cae7 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 328f2d00a..3448d4314 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 326e863c4..81305f41e 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 90fd7e49e..f06acec18 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 9df2560a9..b11fca791 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 847e967ce..e513259dc 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 d9460e228..7e77e611c 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 a7bb2cfdb..56459c9b0 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 313de7f7b..abed77702 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 b757b2e7a..48475aab6 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 abbe498e2..2642c145c 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 65a32c3ff..3a5785dcf 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 982d323f1..a8bae3935 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 35346760e..80672cf6e 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 737bfcad2..0c94affdb 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 ad276f4ac..a735eefee 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 7b3f9bcff..f0a6b9187 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 90a453277..32c265567 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 d8ecc3d82..08d0d3b3f 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 2b7d95817..16d4518f9 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 6eecc06b6..ea8c6de06 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 ad0fa39b9..aed735ed8 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 38e39f5b6..bbb3889a3 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 9ba0b69eb..d2a813ea7 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 69689c51d..c3a5c9593 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 e6b86f11b..98ce31c67 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 2964745e9..62305d3e9 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 eee752fd2..4691e52c5 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 ca06a9b65..6de92b160 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 9915651b6..dd2a48a36 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 868cd5dd8..a6e450b40 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 1f398a11b..71d7ac58c 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 cce4dc869..525ec39cc 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 20ae0fdc5..02f6a989e 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 d5b92c64a..9045a2bfb 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 d280d1d37..362f8c26b 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 3fc4b147c..71959650b 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 118205173..4bfccd151 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 315bc33a6..aefd8a3e7 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 b256fe599..30a83c2dd 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 87f84d5a5..e2e2315bb 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 066d66aac..46ca8a58e 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 2f22e742f..21c57e124 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 784be59d3..0399f3841 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 7838724f5..171c8b01e 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 f8155ddb2..6ed04cfcc 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 adc48016c..250c644ca 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 63aab0ee8..a8bed860a 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 c0e948e4d..d7bef891c 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 163564d00..b4f3c9344 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 e889ddf8c..441c6c249 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 a5c540566..21265dfbf 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 8c3a8a7f3..4863cab96 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 483b95704..997a971f7 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 928298bd2..b6b8df769 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 4eab86251..2507935c5 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 1ba6eb951..d3f8c3816 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 434187445..8af6802ea 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 f555295a1..695af4b1e 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 517b0631a..7cd07f257 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 f40ed77d6..962e7b80c 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 dea45e8ba..2165e53d7 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 0d740ef14..413229c08 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 12f6f557c..6c35cf24d 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 842066742..5dedf013b 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 bd4772a45..a180891ec 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 0ca4666ce..2e9183f88 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 1a57fdbcb..bf594b3d0 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 cca5c83da..71574aa89 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 4b8acb1e8..091e92172 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 b94604b10..45071c82c 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 cad6d07e8..cd660879e 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 903ac4b72..984697b02 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 7262fe28a..0854b3b13 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 15efa28fe..bc31df324 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 dfc396ea6..145110876 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 5733dd3d4..db20568e8 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 c1b7af14d..8355c9dce 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 9c5ee6ceb..443984e6f 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 726b9e517..368ea2293 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 c1ffee05e..ee3a9c5e2 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 80c1d10e5..67f3a8a10 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 17bc9dc64..cb08a59a9 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 86ddca7d1..ab38a48e2 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 0df3abc66..e7fb45928 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 226a47a2f..89eaf3b4a 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 9dd28a6b2..5c1f09357 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 a3b060ae6..852fea6d3 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 4b08350f6..f0ca68108 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 24f49db0f..f370b5c2c 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 d451ca422..f1aa68f79 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 f85855d26..c734a7aa9 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 9fe6201be..c2d1b8286 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 a47a5354b..e4b338df8 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 315292b75..f05ca7cb1 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 4f61dbc78..7042b3ca0 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 754aaf7d6..4f9dc1aae 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 342175438..183bd430e 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 685867339..75d23bb9a 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 a75337837..de873ca3c 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 da1e5a307..506e725af 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 d2e50fcee..c56767369 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 eee13f1b6..cb9d8ebf3 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 221b858d7..a39470bcd 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 d8f40a7ec..d4992f9a1 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 ac094daa8..b1cbcc140 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 04b7497de..b1e646c91 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 a6e027e9c..85ce85c8e 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 64f9f857c..30cb5d148 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 4517fb879..112b305b5 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 e283f325b..1b9026a6a 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 d63fb8721..eefc39f01 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 ff60719d4..261cd942d 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 dbdf0cf77..de2cc6bf8 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 bcd726258..9f7ea91d2 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 8b808e246..13bdd18cc 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 2569f17e4..edd11736a 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 92069c444..f43a6cc6d 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 4f414675e..9afc2c605 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 bdfb750c2..12f0389f1 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 1f5376187..f2c194dc3 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 72574abce..988605e7f 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 f4bf9307c..77cceda3d 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 a9d314aef..5e1b21231 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 b3597932c..cc45ec7ea 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 32afe8027..eb10a2b15 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 7fc4487aa..f88383700 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 1af2657b1..50a524740 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 ba54b666d..213f0b1a9 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 dfabd0d16..97b25f4eb 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 d3a4dbf87..21b343e84 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 3684aca0a..347760a60 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 8a400f1ca..5807476dd 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 df0310e77..0a608a768 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 c4111b371..35409be66 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 01e3375f9..ce0c6a319 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 70aca5842..d1c77074b 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 b49f80c1b..e60e69c19 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 42ff3b531..cb75bfa17 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 3be770d70..bdff4dcdc 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 6a8599df9..f165ddad1 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 25f6c1035..e28aa4cc2 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 9a0ffd829..b5fbf0cb9 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 7a1311149..0257c8857 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 a3481bb07..f287e64fa 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 727114bf9..6f9f6a8a6 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 4bbab98fe..172423bab 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 d86448d5f..7d0a51bdc 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 2fe7350f3..2b73af3ed 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 5759feca7..20e6f422f 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 830dbaf8d..ef5792d83 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 c3a0a8c97..f1ebece9e 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 318925085..a37ecf699 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 43c82b639..68d145692 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 2a72f7a52..509c96410 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 69aac3a93..702644591 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 a114d8873..0813edd0c 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 127a50758..90136b1fd 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 6861dc237..e7313f7e5 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 2d85a7314..f09ae177c 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 0b251fdc2..2758c3d29 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 71addd5cc..7d3528763 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 4322923f4..70fafe032 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 07ebdc7bc..c05f2d9ea 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 e179f8cfa..19323297a 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 b57f3efc8..34e00c3e3 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 f03ff2f05..886f9a105 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 4951a7bbb..dad27abdb 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 a2a2f400d..d16a2845a 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 a56467f7f..bdd186f2a 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 c4b1b2116..e53e6aa9f 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 5bc1a9aa6..5dc1bc71a 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 16293756d..beff34741 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 c48d67128..1e6cd3ba9 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 20b1c7f14..aec6e264a 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 3c9d3b4c8..c42dfe9e1 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 9475f0b6f..869f51958 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 f990cfa79..1fe46be6d 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 1ec7fd2b6..e66efd60b 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 322f43f73..d7449a0c4 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 d053c4a61..6bd257f26 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 812bc71d0..d7ff15ff5 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 43fb6ea0f..a7196b8b2 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 e8ed4daf4..872c691b2 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 6728dfd3d..4df7c7eb8 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 c83be7e24..d2569805e 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 427ab0c0f..94a99ac2a 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 a7b3e9acc..324fb6eff 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 a4f4d3079..a36b8e7ec 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 1fef6f9ef..e315ea78a 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 096bf268b..40788e2c9 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 1e1e748f9..41711eeb7 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 df1e99b19..caf0913b4 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 3a5f0c051..2a0c6ecc4 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 fe54c0e2c..64157d4c9 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 b2d7f9c98..4623077e4 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 74ca4264a..91223e3a7 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 89e7adc7b..6c690ea2f 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 8f86a0556..8b0266ba2 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 73cd6fe64..094aef3ee 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 10a0042d8..db874c3fd 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 7a3d4e35a..460343df6 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 ccfb6c46e..1971a36e4 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 5292dfa8f..1ee303c06 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 6bff3a354..cffa6ff95 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 40e2592a1..7c49603af 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 ae26f57dd..f937cedf0 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 834b6fd41..241f86b8b 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 90999a7f2..775534ce9 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 7cbe60c18..a881695b1 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 aea6b6de9..2aa8c863e 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 f23f1424e..885e01805 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 d3b246d5c..992b107cf 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 ce98d3d40..830a0266b 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 46523a359..cc58aebda 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 28dddc9f1..957fda462 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 19b4e85d1..16793765b 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 4678499c1..dd9184143 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 7aaa308da..de52db7f5 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 1ce958ec9..d70dc06a3 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 2011ee1e1..401e68a60 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 df61f267d..0952cd022 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 a1b54e9ff..4444ec061 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 f97703e71..e3d968dea 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 5734c8dee..f025da7b1 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 103246a32..dcba74405 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 07ebb90f6..b096422dc 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 6a612ab59..11e631154 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 68b46ca5e..c73107161 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 e9e1a5962..5eadb325c 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 f0e6f182a..fd205a7fa 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 813a030f9..6d223ada5 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 224afe677..ce877d67d 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 fde44525b..3177b30bb 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 309a65ac9..a4be3321f 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 a1074abdf..5fdfbee14 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 28b96cb52..9faac5f14 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 ca269c8b6..e2d75927f 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 9bd111953..9893d843b 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 81baf5fc5..fc99fae33 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 dd4c5c1d3..3591c7089 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 6ffb8ff64..a054588b8 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 ec9fd4d92..98b457b03 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 fe4b251bf..4fa3ba40b 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 4e60189b7..725aeac6d 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 c9a5e8d84..27aca7d71 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 5b8d15a07..dbb19df9c 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 7fdf1b363..ec67e573f 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 88233dd17..3545c4836 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 54456d65f..ca8c087f4 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 bab8e130c..45fb46faf 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 f76bd90ed..734df427e 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 58034403c..f18257c6c 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 2645a71db..31c9058e0 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 d3213d264..8ae0b949a 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 36000f751..b34dd6fd5 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 6311735d5..02178af77 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 60be994f3..eb933335c 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 51f8d2bb4..70a50f907 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 aee54e1c8..57e7ab795 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 8b9764041..a5a3ba72f 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 d90b37d6b..1a1945043 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 08884a338..b488e2594 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 a62c0fa59..1d49c38a1 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 4abf60539..c7f11f3e4 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 905cce02c..1c3166faf 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 874f441a3..c8d629fbf 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 0548dbd58..5fa271563 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 c6e7764c3..213c1d933 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 63efaedf3..f250571ed 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 baeb5d978..9e247332f 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 b1468590f..9f566a056 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 2bed1e52e..71c79b8d2 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 3d141c045..d43551ac7 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 8bfcdf4f7..2e2f867d5 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 d75a7f4ac..c0d9b8eb0 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 69c7fd832..4d82bef10 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 bdf11bfed..db7180131 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 404a55b22..acb152aed 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 13296c6a2..993fcd5cc 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 f818f2b6c..693e57657 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 73de47668..981604782 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 cfffa7589..266d70376 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 4e05f2367..856e744b1 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 e390a897a..99c54d8d6 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 e75d31a6b..66f484c41 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 174acc732..45d0602b6 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 73d5c415b..cb63d2888 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 c0c1751f2..9c986e434 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 d9b521298..a488deb08 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 38d950981..d393006af 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 67c6b8d06..92496fc63 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 615bf93ba..11ed5d735 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 c1ebe8808..19a86dca8 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 2929408d5..c49ed0b25 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 5749ba5a4..50420f01c 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 bc1dda619..1a48a385c 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 1b0cc26de..8c1fd6f42 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 a625a6cd1..8df122b3e 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 f459e3a20..0ff78a678 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 8659c2a9b..5e59c37d2 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 aef1b0b76..35d74414d 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 1d9469185..b1a86b0ca 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 4801a1f69..792fb40c1 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 48f9e54d5..954990c08 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 447e1c6d0..9cfc3e01f 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 fadda6560..504cced90 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 0ef1bb1b5..fcbbe855c 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 1b600b5b0..3d222242a 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 f36ee59ee..727da1d02 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 0cb595c68..d83106b3a 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 66fe25ef9..f0b254dd0 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 001bf56b8..e2ae21e66 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 77ab34c50..d3b4ad00a 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 4f38ba3d2..1742592ca 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 22e5d8db9..b227cedac 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 74178f2c8..5b27b9859 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 a472a9f3d..d1a1dbfb9 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 ced5f7016..fd354875b 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 0da256c05..24cafe58f 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 f1e408174..52e0e06b9 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 a9cd4c754..3449f485f 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 6eef79c02..ee6d55625 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 76d77f662..da6a1d326 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 b29b7ec35..7071dc308 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 cdc72fb51..96c35c681 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 e3a51fe8c..61ea46888 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 f641faf7e..753512601 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 9e80f0f80..f3d6bbdef 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 25f67d795..47397b6bb 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 313d083e2..8988a37ef 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 6269dff65..721ee99eb 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 088a7bac5..93817a7b4 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 270682fbe..a6b9ec27c 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 299c1fb8c..356286a3e 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 287feae38..eb46d5fb4 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 d8b6149a2..9dd5a8b31 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 876406e9e..d604156ff 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 cd5cfc0fc..01ac3e5ba 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 e3a9c247a..85562c436 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 29f546c11..ef842706e 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 1536a7979..a5552a3d1 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 008159dfd..6efdfc34c 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 9314cb521..a7fa850e2 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 9630f314b..4f5a040cd 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 898f1ce18..7ec02880b 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 f7009255b..2e71abe29 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 1298dfd06..2115143d0 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 64f3c64d3..4cecd427c 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 c3dd5cb7c..363d64150 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 ff35b9808..f2ade96d7 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 7b6f723f5..020b57959 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 0ea0fffd1..e85346bd9 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 8a158ce42..ffb126107 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 0a845d198..d8dbd7dc9 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 ad68cafae..3de9e1565 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
     }
-- 
GitLab