diff --git a/src/mol-model/structure/structure/unit/accessible-surface-area/compute.ts b/src/mol-model/structure/structure/unit/accessible-surface-area/compute.ts
index dbd6801595ba1024062fb68afdaed54c820430c3..fc1363c5351e0b9ca48ccfc97550f4a314df89fd 100644
--- a/src/mol-model/structure/structure/unit/accessible-surface-area/compute.ts
+++ b/src/mol-model/structure/structure/unit/accessible-surface-area/compute.ts
@@ -1,20 +1,40 @@
+/**
+ * Copyright (c) 2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
+ *
+ * @author Sebastian Bittrich <sebastian.bittrich@rcsb.org>
+ */
+
 import Unit from '../../unit'
 import { Vec3 } from 'mol-math/linear-algebra';
-import { AccessibleSurfaceAreaComputationParameters, AccessibleSurfaceArea } from './data';
-import { isHydrogen, getElementIdx } from '../links/common'; // TODO move these functions somewhere more common
+import { AccessibleSurfaceAreaComputationParams, AccessibleSurfaceArea } from './data';
+import { isHydrogen, getElementIdx } from '../links/common'; // TODO these functions are relevant for many tasks: move them somewhere actually common
 import { MoleculeType, ElementSymbol, MaxAsa, DefaultMaxAsa } from 'mol-model/structure/model/types';
 import { VdwRadius } from 'mol-model/structure/model/properties/atomic/measures';
+import { ParamDefinition as PD } from 'mol-util/param-definition'
 
 const trigonalCarbonVdw = 1.76;
 const tetrahedralCarbonVdw = 1.87;
 const trigonalNitrogenVdw = 1.65;
 const tetrahedralNitrogenVdw = 1.50;
-/** deviating radii from the definition in types.ts */
+/** deviating radii from definition in types.ts */
 const oxygenVdw = 1.4;
 const sulfurVdw = 1.85;
 const missingAccessibleSurfaceAreaValue = -1.0;
 
-function _computeAccessibleSurfaceArea(unit: Unit.Atomic, params: AccessibleSurfaceAreaComputationParameters): AccessibleSurfaceArea {
+interface AccessibleSurfaceAreaContext {
+    unit: Unit.Atomic,
+    params: PD.Values<AccessibleSurfaceAreaComputationParams>,
+    spherePoints: Vec3[],
+    cons: number,
+    atomRadius: number[],
+    accessibleSurfaceArea: number[],
+    relativeAccessibleSurfaceArea: number[],
+    maxLookupRadius: number
+}
+
+function computeAccessibleSurfaceArea(unit: Unit.Atomic, params: PD.Values<AccessibleSurfaceAreaComputationParams>): AccessibleSurfaceArea {
+    console.log(`computing accessible surface area for unit #${ unit.id + 1 }`);
+
     const ctx = initialize(unit, params);
     assignRadiusForHeavyAtoms(ctx);
     computePerResidue(ctx);
@@ -182,18 +202,7 @@ function determineRadius(atomId: string, element: ElementSymbol, compId: string)
     return VdwRadius(element);
 }
 
-interface AccessibleSurfaceAreaContext {
-    unit: Unit.Atomic,
-    params: AccessibleSurfaceAreaComputationParameters,
-    spherePoints: Vec3[],
-    cons: number,
-    atomRadius: number[],
-    accessibleSurfaceArea: number[],
-    relativeAccessibleSurfaceArea: number[],
-    maxLookupRadius: number
-}
-
-function initialize(unit: Unit.Atomic, params: AccessibleSurfaceAreaComputationParameters): AccessibleSurfaceAreaContext {
+function initialize(unit: Unit.Atomic, params: PD.Values<AccessibleSurfaceAreaComputationParams>): AccessibleSurfaceAreaContext {
     return {
         unit: unit,
         params: params,
@@ -206,36 +215,6 @@ function initialize(unit: Unit.Atomic, params: AccessibleSurfaceAreaComputationP
     }
 }
 
-// class Count {
-//     static count = 10;
-//     get count(): number {
-//         return Count.count;
-//     }
-//     set count(v: number) {
-//         Count.count = v;
-//     }
-// }
-
-function computeAccessibleSurfaceArea(unit: Unit.Atomic, params?: Partial<AccessibleSurfaceAreaComputationParameters>): AccessibleSurfaceArea {
-    // const count = new Count();
-    // count.count = count.count - 1;
-    // if (count.count > 0) {
-    console.log(`computing accessible surface area for unit #${ unit.id + 1 }`);
-    return _computeAccessibleSurfaceArea(unit, {
-        numberOfSpherePoints: (params && params.numberOfSpherePoints) || 92 /* original value Shrake, A. & Rupley, J. A. (1973) J. Mol. Biol. 79: 92, BioJava: 960, EPPIC: 3000 */ ,
-        /** 92: 1600ms, 960: 5000ms, 3000: 13000ms */
-        probeSize: (params && params.probeSize) || 1.4
-    });
-    // } else {
-    //     return {
-    //         atomRadius: [],
-    //         accessibleSurfaceArea: [],
-    //         relativeAccessibleSurfaceArea: [],
-    //         buried: void 0
-    //     }
-    // }
-}
-
 /** Creates a collection of points on a sphere by the Golden Section Spiral algorithm. */
 function generateSpherePoints(numberOfSpherePoints: number): Vec3[] {
     const points: Vec3[] = [];
diff --git a/src/mol-model/structure/structure/unit/accessible-surface-area/data.ts b/src/mol-model/structure/structure/unit/accessible-surface-area/data.ts
index 083c113c33116e8c8387f91f31ceead63e742a3d..61e921d00a8f49022de67cd03ae4c9fe0e534128 100644
--- a/src/mol-model/structure/structure/unit/accessible-surface-area/data.ts
+++ b/src/mol-model/structure/structure/unit/accessible-surface-area/data.ts
@@ -1,13 +1,20 @@
-interface AccessibleSurfaceArea {
+/**
+ * Copyright (c) 2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
+ *
+ * @author Sebastian Bittrich <sebastian.bittrich@rcsb.org>
+ */
+
+import { ParamDefinition as PD } from 'mol-util/param-definition'
+
+export interface AccessibleSurfaceArea {
     readonly atomRadius: ArrayLike<number>,
     readonly accessibleSurfaceArea: ArrayLike<number>,
     readonly relativeAccessibleSurfaceArea: ArrayLike<number>,
     readonly buried: any
 }
 
-interface AccessibleSurfaceAreaComputationParameters {
-    numberOfSpherePoints: number
-    probeSize: number
+export const AccessibleSurfaceAreaComputationParams = {
+    numberOfSpherePoints: PD.Numeric(92, {}, { description: 'number of sphere points to sample per atom: 92 (original paper), 960 (BioJava), 3000 (EPPIC)' }),
+    probeSize: PD.Numeric(1.4, {}, { description: 'corresponds to the size of a water molecule: 1.4 (original paper), 1.5 (occassionally used)' })
 }
-
-export { AccessibleSurfaceArea, AccessibleSurfaceAreaComputationParameters }
\ No newline at end of file
+export type AccessibleSurfaceAreaComputationParams = typeof AccessibleSurfaceAreaComputationParams
\ No newline at end of file
diff --git a/src/mol-theme/color/accessible-surface-area.ts b/src/mol-theme/color/accessible-surface-area.ts
index 3593c7b769bb420d3c94fdb087336e169d1321aa..caa7521d480bf0187bee3e09090cb4385f35a728 100644
--- a/src/mol-theme/color/accessible-surface-area.ts
+++ b/src/mol-theme/color/accessible-surface-area.ts
@@ -1,7 +1,7 @@
 /**
- * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
+ * Copyright (c) 2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
  *
- * @author Alexander Rose <alexander.rose@weirdbyte.de>
+ * @author Sebastian Bittrich <sebastian.bittrich@rcsb.org>
  */
 
 import { Color } from 'mol-util/color';
diff --git a/src/tests/browser/render-structure.ts b/src/tests/browser/render-structure.ts
index de485a63ee5808b20b530551e41ef6f581ac10b6..08a59d7de9b679d7677cceaa70505fe092568e1e 100644
--- a/src/tests/browser/render-structure.ts
+++ b/src/tests/browser/render-structure.ts
@@ -61,7 +61,7 @@ function getCartoonRepr() {
 }
 
 async function init() {
-    const cif = await downloadFromPdb(/*'3j3q'*/'3j3q')
+    const cif = await downloadFromPdb(/*'3j3q'*/'1acj')
     const models = await getModels(cif)
 
     const structure = await getStructure(models[0])