diff --git a/src/mol-data/structure.ts b/src/mol-data/structure.ts
index 5902cd55b5c2a648d3bb5f31679a6b5dab285ab4..16b0d72f04b3d049343b06c2b1b1d66c64605627 100644
--- a/src/mol-data/structure.ts
+++ b/src/mol-data/structure.ts
@@ -8,15 +8,13 @@ import { Vec3, Mat4 } from '../mol-base/math/linear-algebra'
 import AtomSet from './atom-set'
 import Model from './model'
 
-export type Operator =
-    | { kind: Operator.Kind.Identity }
-    | { kind: Operator.Kind.Symmetry, hkl: number[], index: number, name: string, transform: Mat4, inverse: Mat4 }
-    | { kind: Operator.Kind.Assembly, assemblyName: string, index: number, transform: Mat4, inverse: Mat4 }
-    | { kind: Operator.Kind.Custom, name: string, transform: Mat4, inverse: Mat4 }
-
-export namespace Operator {
-    export enum Kind { Identity, Symmetry, Assembly, Custom }
-}
+export interface Operator extends Readonly<{
+    name: string,
+    hkl: number[], // defaults to [0, 0, 0] where not appropriate
+    transform: Mat4,
+    inverse: Mat4,
+    isIdentity: boolean
+}> { }
 
 export interface Unit extends Readonly<{
     // Structure-level unique identifier of the unit.