From 801e1ef035ff0de5c86640a23f896e7f25cbaf52 Mon Sep 17 00:00:00 2001
From: David Sehnal <david.sehnal@gmail.com>
Date: Thu, 2 Nov 2017 15:42:19 +0100
Subject: [PATCH] more refactoring

---
 src/mol-data/sequence/TODO                    |  0
 src/mol-data/structure.ts                     | 13 -----
 .../{ => structure}/_spec/atom-set.spec.ts    |  2 +-
 src/mol-data/{ => structure}/model.ts         |  0
 .../{ => structure}/model/builders/mmcif.ts   |  9 ++-
 .../{ => structure}/model/constants.ts        |  2 +-
 .../{ => structure}/model/data-format.ts      |  2 +-
 src/mol-data/{ => structure}/model/model.ts   |  2 +-
 .../model/properties/computed.ts              |  0
 .../model/properties/conformation.ts          |  4 +-
 .../model/properties/format-specific.ts       |  0
 .../model/properties/hierarchy.ts             |  8 +--
 .../model/properties/transforms.ts            |  0
 .../model/utils/hierarchy-keys.ts             |  4 +-
 src/mol-data/{ => structure}/query.ts         |  0
 .../{ => structure}/query/generators.ts       |  2 +-
 .../{ => structure}/query/properties.ts       |  0
 src/mol-data/{ => structure}/query/query.ts   |  0
 .../{ => structure}/query/selection.ts        |  4 +-
 src/mol-data/structure/structure.ts           | 57 ++----------------
 .../structure/{ => structure}/atom.ts         |  2 +-
 .../structure/{ => structure}/atom/set.ts     |  2 +-
 .../{ => structure}/atom/set/builder.ts       |  4 +-
 .../{ => structure}/atom/set/impl.ts          |  6 +-
 .../{ => structure}/atom/set/properties.ts    |  0
 .../structure/{ => structure}/operator.ts     |  2 +-
 src/mol-data/structure/structure/structure.ts | 58 +++++++++++++++++++
 .../structure/{ => structure}/unit.ts         |  0
 src/mol-data/volume/TODO                      |  0
 src/perf-tests/sets.ts                        |  2 +-
 src/perf-tests/structure.ts                   |  6 +-
 src/script.ts                                 |  2 +-
 32 files changed, 96 insertions(+), 97 deletions(-)
 create mode 100644 src/mol-data/sequence/TODO
 delete mode 100644 src/mol-data/structure.ts
 rename src/mol-data/{ => structure}/_spec/atom-set.spec.ts (99%)
 rename src/mol-data/{ => structure}/model.ts (100%)
 rename src/mol-data/{ => structure}/model/builders/mmcif.ts (94%)
 rename src/mol-data/{ => structure}/model/constants.ts (99%)
 rename src/mol-data/{ => structure}/model/data-format.ts (77%)
 rename src/mol-data/{ => structure}/model/model.ts (94%)
 rename src/mol-data/{ => structure}/model/properties/computed.ts (100%)
 rename src/mol-data/{ => structure}/model/properties/conformation.ts (86%)
 rename src/mol-data/{ => structure}/model/properties/format-specific.ts (100%)
 rename src/mol-data/{ => structure}/model/properties/hierarchy.ts (91%)
 rename src/mol-data/{ => structure}/model/properties/transforms.ts (100%)
 rename src/mol-data/{ => structure}/model/utils/hierarchy-keys.ts (96%)
 rename src/mol-data/{ => structure}/query.ts (100%)
 rename src/mol-data/{ => structure}/query/generators.ts (97%)
 rename src/mol-data/{ => structure}/query/properties.ts (100%)
 rename src/mol-data/{ => structure}/query/query.ts (100%)
 rename src/mol-data/{ => structure}/query/selection.ts (96%)
 rename src/mol-data/structure/{ => structure}/atom.ts (95%)
 rename src/mol-data/structure/{ => structure}/atom/set.ts (96%)
 rename src/mol-data/structure/{ => structure}/atom/set/builder.ts (93%)
 rename src/mol-data/structure/{ => structure}/atom/set/impl.ts (98%)
 rename src/mol-data/structure/{ => structure}/atom/set/properties.ts (100%)
 rename src/mol-data/structure/{ => structure}/operator.ts (91%)
 create mode 100644 src/mol-data/structure/structure/structure.ts
 rename src/mol-data/structure/{ => structure}/unit.ts (100%)
 create mode 100644 src/mol-data/volume/TODO

diff --git a/src/mol-data/sequence/TODO b/src/mol-data/sequence/TODO
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/mol-data/structure.ts b/src/mol-data/structure.ts
deleted file mode 100644
index cc8bf49f3..000000000
--- a/src/mol-data/structure.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info.
- *
- * @author David Sehnal <david.sehnal@gmail.com>
- */
-
-import Atom from './structure/atom'
-import AtomSet from './structure/atom/set'
-import Structure from './structure/structure'
-import Operator from './structure/operator'
-import Unit from './structure/unit'
-
-export { Atom, AtomSet, Structure, Operator, Unit }
\ No newline at end of file
diff --git a/src/mol-data/_spec/atom-set.spec.ts b/src/mol-data/structure/_spec/atom-set.spec.ts
similarity index 99%
rename from src/mol-data/_spec/atom-set.spec.ts
rename to src/mol-data/structure/_spec/atom-set.spec.ts
index 62e5ea804..2ca79d8f9 100644
--- a/src/mol-data/_spec/atom-set.spec.ts
+++ b/src/mol-data/structure/_spec/atom-set.spec.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { OrderedSet } from '../../mol-base/collections/integer'
+import { OrderedSet } from '../../../mol-base/collections/integer'
 import AtomSet from '../structure/atom/set'
 import Atom from '../structure/atom'
 
diff --git a/src/mol-data/model.ts b/src/mol-data/structure/model.ts
similarity index 100%
rename from src/mol-data/model.ts
rename to src/mol-data/structure/model.ts
diff --git a/src/mol-data/model/builders/mmcif.ts b/src/mol-data/structure/model/builders/mmcif.ts
similarity index 94%
rename from src/mol-data/model/builders/mmcif.ts
rename to src/mol-data/structure/model/builders/mmcif.ts
index 4d92bbc56..3fa96b038 100644
--- a/src/mol-data/model/builders/mmcif.ts
+++ b/src/mol-data/structure/model/builders/mmcif.ts
@@ -5,12 +5,11 @@
  */
 
 import { mmCIF } from '../data-format'
-//import { Frame as mmCIF } from '../../../mol-io/reader/cif/schema/mmcif'
 import Model from '../model'
-import Column from '../../../mol-base/collections/column'
-import Table from '../../../mol-base/collections/table'
-import { Interval, Segmentation } from '../../../mol-base/collections/integer'
-import { newUUID } from '../../../mol-base/utils/uuid'
+import Column from '../../../../mol-base/collections/column'
+import Table from '../../../../mol-base/collections/table'
+import { Interval, Segmentation } from '../../../../mol-base/collections/integer'
+import { newUUID } from '../../../../mol-base/utils/uuid'
 import * as Hierarchy from '../properties/hierarchy'
 import Conformation from '../properties/conformation'
 import findHierarchyKeys from '../utils/hierarchy-keys'
diff --git a/src/mol-data/model/constants.ts b/src/mol-data/structure/model/constants.ts
similarity index 99%
rename from src/mol-data/model/constants.ts
rename to src/mol-data/structure/model/constants.ts
index 5db57c733..48c863c7f 100644
--- a/src/mol-data/model/constants.ts
+++ b/src/mol-data/structure/model/constants.ts
@@ -5,7 +5,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import BitFlags from '../../mol-base/utils/bit-flags'
+import BitFlags from '../../../mol-base/utils/bit-flags'
 
 export const enum EntityType {
     Unknown = 'unknown',
diff --git a/src/mol-data/model/data-format.ts b/src/mol-data/structure/model/data-format.ts
similarity index 77%
rename from src/mol-data/model/data-format.ts
rename to src/mol-data/structure/model/data-format.ts
index 128136b86..c5c4aa2e7 100644
--- a/src/mol-data/model/data-format.ts
+++ b/src/mol-data/structure/model/data-format.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Frame as mmCIF_Frame } from '../../mol-io/reader/cif/schema/mmcif'
+import { Frame as mmCIF_Frame } from '../../../mol-io/reader/cif/schema/mmcif'
 
 export interface mmCIF { kind: 'mmCIF', data: mmCIF_Frame }
 
diff --git a/src/mol-data/model/model.ts b/src/mol-data/structure/model/model.ts
similarity index 94%
rename from src/mol-data/model/model.ts
rename to src/mol-data/structure/model/model.ts
index 12c5fe73a..b2dbf68fc 100644
--- a/src/mol-data/model/model.ts
+++ b/src/mol-data/structure/model/model.ts
@@ -7,7 +7,7 @@
 import DataFormat from './data-format'
 import HierarchyProperties from './properties/hierarchy'
 import ConformationProperties from './properties/conformation'
-import UUID from '../../mol-base/utils/uuid'
+import UUID from '../../../mol-base/utils/uuid'
 
 import buildMmCIF from './builders/mmcif'
 
diff --git a/src/mol-data/model/properties/computed.ts b/src/mol-data/structure/model/properties/computed.ts
similarity index 100%
rename from src/mol-data/model/properties/computed.ts
rename to src/mol-data/structure/model/properties/computed.ts
diff --git a/src/mol-data/model/properties/conformation.ts b/src/mol-data/structure/model/properties/conformation.ts
similarity index 86%
rename from src/mol-data/model/properties/conformation.ts
rename to src/mol-data/structure/model/properties/conformation.ts
index 7ea3c5243..a80739667 100644
--- a/src/mol-data/model/properties/conformation.ts
+++ b/src/mol-data/structure/model/properties/conformation.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column from '../../../mol-base/collections/column'
-import UUID from '../../../mol-base/utils/uuid'
+import Column from '../../../../mol-base/collections/column'
+import UUID from '../../../../mol-base/utils/uuid'
 
 interface Conformation {
     id: UUID,
diff --git a/src/mol-data/model/properties/format-specific.ts b/src/mol-data/structure/model/properties/format-specific.ts
similarity index 100%
rename from src/mol-data/model/properties/format-specific.ts
rename to src/mol-data/structure/model/properties/format-specific.ts
diff --git a/src/mol-data/model/properties/hierarchy.ts b/src/mol-data/structure/model/properties/hierarchy.ts
similarity index 91%
rename from src/mol-data/model/properties/hierarchy.ts
rename to src/mol-data/structure/model/properties/hierarchy.ts
index e86fc8983..dceb055c4 100644
--- a/src/mol-data/model/properties/hierarchy.ts
+++ b/src/mol-data/structure/model/properties/hierarchy.ts
@@ -4,10 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column from '../../../mol-base/collections/column'
-import Table from '../../../mol-base/collections/table'
-import { Segmentation } from '../../../mol-base/collections/integer'
-import { Schema as mmCIF } from '../../../mol-io/reader/cif/schema/mmcif'
+import Column from '../../../../mol-base/collections/column'
+import Table from '../../../../mol-base/collections/table'
+import { Segmentation } from '../../../../mol-base/collections/integer'
+import { Schema as mmCIF } from '../../../../mol-io/reader/cif/schema/mmcif'
 
 const _esCache = Object.create(null);
 export interface ElementSymbol extends String { '@type': 'element-symbol' }
diff --git a/src/mol-data/model/properties/transforms.ts b/src/mol-data/structure/model/properties/transforms.ts
similarity index 100%
rename from src/mol-data/model/properties/transforms.ts
rename to src/mol-data/structure/model/properties/transforms.ts
diff --git a/src/mol-data/model/utils/hierarchy-keys.ts b/src/mol-data/structure/model/utils/hierarchy-keys.ts
similarity index 96%
rename from src/mol-data/model/utils/hierarchy-keys.ts
rename to src/mol-data/structure/model/utils/hierarchy-keys.ts
index 6bc5a4a8c..b99cec069 100644
--- a/src/mol-data/model/utils/hierarchy-keys.ts
+++ b/src/mol-data/structure/model/utils/hierarchy-keys.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Column from '../../../mol-base/collections/column'
+import Column from '../../../../mol-base/collections/column'
 import { Data, Segments, Keys } from '../properties/hierarchy'
-import { Interval, Segmentation } from '../../../mol-base/collections/integer'
+import { Interval, Segmentation } from '../../../../mol-base/collections/integer'
 
 function getResidueId(comp_id: string, seq_id: number, ins_code: string) {
     return `${comp_id} ${seq_id} ${ins_code}`;
diff --git a/src/mol-data/query.ts b/src/mol-data/structure/query.ts
similarity index 100%
rename from src/mol-data/query.ts
rename to src/mol-data/structure/query.ts
diff --git a/src/mol-data/query/generators.ts b/src/mol-data/structure/query/generators.ts
similarity index 97%
rename from src/mol-data/query/generators.ts
rename to src/mol-data/structure/query/generators.ts
index d90d9c3b9..a647260f6 100644
--- a/src/mol-data/query/generators.ts
+++ b/src/mol-data/structure/query/generators.ts
@@ -8,7 +8,7 @@ import Query from './query'
 //import Selection from './selection'
 import * as P from './properties'
 import { AtomSet, Atom } from '../structure'
-import { OrderedSet } from '../../mol-base/collections/integer'
+import { OrderedSet } from '../../../mol-base/collections/integer'
 
 export interface AtomGroupsSpec {
     entityTest: Atom.Predicate,
diff --git a/src/mol-data/query/properties.ts b/src/mol-data/structure/query/properties.ts
similarity index 100%
rename from src/mol-data/query/properties.ts
rename to src/mol-data/structure/query/properties.ts
diff --git a/src/mol-data/query/query.ts b/src/mol-data/structure/query/query.ts
similarity index 100%
rename from src/mol-data/query/query.ts
rename to src/mol-data/structure/query/query.ts
diff --git a/src/mol-data/query/selection.ts b/src/mol-data/structure/query/selection.ts
similarity index 96%
rename from src/mol-data/query/selection.ts
rename to src/mol-data/structure/query/selection.ts
index d2ef57dff..8e46f0f36 100644
--- a/src/mol-data/query/selection.ts
+++ b/src/mol-data/structure/query/selection.ts
@@ -4,8 +4,8 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import Iterator from '../../mol-base/collections/iterator'
-import HashSet from '../../mol-base/collections/hash-set'
+import Iterator from '../../../mol-base/collections/iterator'
+import HashSet from '../../../mol-base/collections/hash-set'
 import { Structure, Atom, AtomSet } from '../structure'
 
 type Selection =
diff --git a/src/mol-data/structure/structure.ts b/src/mol-data/structure/structure.ts
index cc995ad2c..cc8bf49f3 100644
--- a/src/mol-data/structure/structure.ts
+++ b/src/mol-data/structure/structure.ts
@@ -4,55 +4,10 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Model } from '../model'
-import Unit from './unit'
-import Operator from './operator'
-import AtomSet from './atom/set'
-import { OrderedSet } from '../../mol-base/collections/integer'
+import Atom from './structure/atom'
+import AtomSet from './structure/atom/set'
+import Structure from './structure/structure'
+import Operator from './structure/operator'
+import Unit from './structure/unit'
 
-interface Structure extends Readonly<{
-    units: { readonly [id: number]: Unit },
-    atoms: AtomSet
-}> { }
-
-namespace Structure {
-    export const Empty = { units: {}, atoms: AtomSet.Empty };
-
-    export function ofModel(model: Model): Structure {
-        const chains = model.hierarchy.chainSegments;
-        const builder = Builder();
-
-        for (let c = 0; c < chains.count; c++) {
-            const unit = Unit.create(model, Operator.Identity);
-            builder.addUnit(unit);
-            builder.addAtoms(unit.id, OrderedSet.ofBounds(chains.segments[c], chains.segments[c + 1]));
-        }
-
-        return builder.getStructure();
-    }
-
-    export interface Builder {
-        addUnit(unit: Unit): void,
-        addAtoms(unitId: number, atoms: OrderedSet): void,
-        getStructure(): Structure,
-        readonly atomCount: number
-    }
-
-    class BuilderImpl implements Builder {
-        private units = Object.create(null);
-        private atoms = Object.create(null);
-        atomCount = 0;
-
-        addUnit(unit: Unit) { this.units[unit.id] = unit; }
-        addAtoms(unitId: number, atoms: OrderedSet) { this.atoms[unitId] = atoms; this.atomCount += OrderedSet.size(atoms); }
-        getStructure(): Structure { return this.atomCount > 0 ? { units: this.units, atoms: AtomSet.create(this.atoms) } : Empty; }
-    }
-
-    export function Builder(): Builder { return new BuilderImpl(); }
-
-
-    // TODO: "lift" atom set operators?
-    // TODO: "diff"
-}
-
-export default Structure
\ No newline at end of file
+export { Atom, AtomSet, Structure, Operator, Unit }
\ No newline at end of file
diff --git a/src/mol-data/structure/atom.ts b/src/mol-data/structure/structure/atom.ts
similarity index 95%
rename from src/mol-data/structure/atom.ts
rename to src/mol-data/structure/structure/atom.ts
index 34a38d169..ddce507fd 100644
--- a/src/mol-data/structure/atom.ts
+++ b/src/mol-data/structure/structure/atom.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Tuple } from '../../mol-base/collections/integer'
+import { Tuple } from '../../../mol-base/collections/integer'
 import Unit from './unit'
 import Structure from './structure'
 
diff --git a/src/mol-data/structure/atom/set.ts b/src/mol-data/structure/structure/atom/set.ts
similarity index 96%
rename from src/mol-data/structure/atom/set.ts
rename to src/mol-data/structure/structure/atom/set.ts
index 92a04dc70..25a77f423 100644
--- a/src/mol-data/structure/atom/set.ts
+++ b/src/mol-data/structure/structure/atom/set.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { OrderedSet, SortedArray, Iterator } from '../../../mol-base/collections/integer'
+import { OrderedSet, SortedArray, Iterator } from '../../../../mol-base/collections/integer'
 import Atom from '../atom'
 import * as Impl from './set/impl'
 import createBuilder from './set/builder'
diff --git a/src/mol-data/structure/atom/set/builder.ts b/src/mol-data/structure/structure/atom/set/builder.ts
similarity index 93%
rename from src/mol-data/structure/atom/set/builder.ts
rename to src/mol-data/structure/structure/atom/set/builder.ts
index a1940c367..1e6c4beda 100644
--- a/src/mol-data/structure/atom/set/builder.ts
+++ b/src/mol-data/structure/structure/atom/set/builder.ts
@@ -5,8 +5,8 @@
  */
 
 import AtomSet from '../set'
-import { OrderedSet } from '../../../../mol-base/collections/integer'
-import { sortArray } from '../../../../mol-base/collections/sort'
+import { OrderedSet } from '../../../../../mol-base/collections/integer'
+import { sortArray } from '../../../../../mol-base/collections/sort'
 
 class Builder {
     private keys: number[] = [];
diff --git a/src/mol-data/structure/atom/set/impl.ts b/src/mol-data/structure/structure/atom/set/impl.ts
similarity index 98%
rename from src/mol-data/structure/atom/set/impl.ts
rename to src/mol-data/structure/structure/atom/set/impl.ts
index fab4133aa..7f2f2d15f 100644
--- a/src/mol-data/structure/atom/set/impl.ts
+++ b/src/mol-data/structure/structure/atom/set/impl.ts
@@ -4,9 +4,9 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { SortedArray, Interval, Iterator, OrderedSet } from '../../../../mol-base/collections/integer'
-import { sortArray } from '../../../../mol-base/collections/sort'
-import { hash1 } from '../../../../mol-base/collections/hash-functions'
+import { SortedArray, Interval, Iterator, OrderedSet } from '../../../../../mol-base/collections/integer'
+import { sortArray } from '../../../../../mol-base/collections/sort'
+import { hash1 } from '../../../../../mol-base/collections/hash-functions'
 import Atom from '../../atom'
 
 /** Long and painful implementation starts here */
diff --git a/src/mol-data/structure/atom/set/properties.ts b/src/mol-data/structure/structure/atom/set/properties.ts
similarity index 100%
rename from src/mol-data/structure/atom/set/properties.ts
rename to src/mol-data/structure/structure/atom/set/properties.ts
diff --git a/src/mol-data/structure/operator.ts b/src/mol-data/structure/structure/operator.ts
similarity index 91%
rename from src/mol-data/structure/operator.ts
rename to src/mol-data/structure/structure/operator.ts
index 484dd7590..363331f27 100644
--- a/src/mol-data/structure/operator.ts
+++ b/src/mol-data/structure/structure/operator.ts
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { Mat4 } from '../../mol-base/math/linear-algebra'
+import { Mat4 } from '../../../mol-base/math/linear-algebra'
 
 interface Operator extends Readonly<{
     name: string,
diff --git a/src/mol-data/structure/structure/structure.ts b/src/mol-data/structure/structure/structure.ts
new file mode 100644
index 000000000..31e001a27
--- /dev/null
+++ b/src/mol-data/structure/structure/structure.ts
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info.
+ *
+ * @author David Sehnal <david.sehnal@gmail.com>
+ */
+
+import { Model } from '../model'
+import Unit from './unit'
+import Operator from './operator'
+import AtomSet from './atom/set'
+import { OrderedSet } from '../../../mol-base/collections/integer'
+
+interface Structure extends Readonly<{
+    units: { readonly [id: number]: Unit },
+    atoms: AtomSet
+}> { }
+
+namespace Structure {
+    export const Empty = { units: {}, atoms: AtomSet.Empty };
+
+    export function ofModel(model: Model): Structure {
+        const chains = model.hierarchy.chainSegments;
+        const builder = Builder();
+
+        for (let c = 0; c < chains.count; c++) {
+            const unit = Unit.create(model, Operator.Identity);
+            builder.addUnit(unit);
+            builder.addAtoms(unit.id, OrderedSet.ofBounds(chains.segments[c], chains.segments[c + 1]));
+        }
+
+        return builder.getStructure();
+    }
+
+    export interface Builder {
+        addUnit(unit: Unit): void,
+        addAtoms(unitId: number, atoms: OrderedSet): void,
+        getStructure(): Structure,
+        readonly atomCount: number
+    }
+
+    class BuilderImpl implements Builder {
+        private units = Object.create(null);
+        private atoms = Object.create(null);
+        atomCount = 0;
+
+        addUnit(unit: Unit) { this.units[unit.id] = unit; }
+        addAtoms(unitId: number, atoms: OrderedSet) { this.atoms[unitId] = atoms; this.atomCount += OrderedSet.size(atoms); }
+        getStructure(): Structure { return this.atomCount > 0 ? { units: this.units, atoms: AtomSet.create(this.atoms) } : Empty; }
+    }
+
+    export function Builder(): Builder { return new BuilderImpl(); }
+
+
+    // TODO: "lift" atom set operators?
+    // TODO: "diff"
+}
+
+export default Structure
\ No newline at end of file
diff --git a/src/mol-data/structure/unit.ts b/src/mol-data/structure/structure/unit.ts
similarity index 100%
rename from src/mol-data/structure/unit.ts
rename to src/mol-data/structure/structure/unit.ts
diff --git a/src/mol-data/volume/TODO b/src/mol-data/volume/TODO
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/perf-tests/sets.ts b/src/perf-tests/sets.ts
index e4f067085..b499ae2a3 100644
--- a/src/perf-tests/sets.ts
+++ b/src/perf-tests/sets.ts
@@ -1,6 +1,6 @@
 import * as B from 'benchmark'
 import { Tuple, Segmentation, OrderedSet as OrdSet } from '../mol-base/collections/integer'
-import { AtomSet } from '../mol-data/structure'
+import { AtomSet } from '../mol-data/structure/structure'
 
 export namespace Iteration {
     const U = 1000, V = 2500;
diff --git a/src/perf-tests/structure.ts b/src/perf-tests/structure.ts
index b066edf91..7da905f45 100644
--- a/src/perf-tests/structure.ts
+++ b/src/perf-tests/structure.ts
@@ -10,9 +10,9 @@ import * as util from 'util'
 import * as fs from 'fs'
 import CIF from '../mol-io/reader/cif'
 
-import { Model } from '../mol-data/Model'
-import { Structure, Atom, AtomSet } from '../mol-data/structure'
-import * as Q from '../mol-data/query'
+import { Model } from '../mol-data/structure/model'
+import { Structure, Atom, AtomSet } from '../mol-data/structure/structure'
+import * as Q from '../mol-data/structure/query'
 import { OrderedSet as OrdSet, Segmentation } from '../mol-base/collections/integer'
 
 require('util.promisify').shim();
diff --git a/src/script.ts b/src/script.ts
index e42be6c0b..7408e72ea 100644
--- a/src/script.ts
+++ b/src/script.ts
@@ -17,7 +17,7 @@ import CIF from './mol-io/reader/cif'
 
 import Computation from './mol-base/computation'
 
-import buildModels from './mol-data/model/builders/mmcif'
+import buildModels from './mol-data/structure/model/builders/mmcif'
 
 // import { toTypedFrame as applySchema } from './reader/cif/schema'
 import { generateSchema } from './mol-io/reader/cif/schema/utils'
-- 
GitLab