diff --git a/package-lock.json b/package-lock.json
index 574466fb80e296362a8edd3ffa07466f61cfabde..5dd7cdfdd0103d81974786acc11356f597f66b03 100644
Binary files a/package-lock.json and b/package-lock.json differ
diff --git a/package.json b/package.json
index dc1072fccf3d5e5ff122a92708bdab6b51c44cc7..e706caab0381acd0cb43054be2d954f257ac6905 100644
--- a/package.json
+++ b/package.json
@@ -135,6 +135,7 @@
     "webpack-cli": "^4.10.0"
   },
     "dependencies": {
+	"util" : "*",
 	"parsimmon": "^1.6.2",
 	"semver": "^5.4.1",
 	"ciftools.js": "github:dsehnal/CIFTools.js#34cd913",
diff --git a/src/mol-plugin-state/helpers/structure-component.ts b/src/mol-plugin-state/helpers/structure-component.ts
index 6ddaac6b1c0c4f131985c9f23f36254ef8d4a1bb..76888cf9b72cbe28e17ab262458d77eb59f8d384 100644
--- a/src/mol-plugin-state/helpers/structure-component.ts
+++ b/src/mol-plugin-state/helpers/structure-component.ts
@@ -40,7 +40,7 @@ export const StructureComponentParams = () => ({
         static: PD.Text<StaticStructureComponentType>('polymer'),
         expression: PD.Value<Expression>(MolScriptBuilder.struct.generator.all),
         bundle: PD.Value<StructureElement.Bundle>(StructureElement.Bundle.Empty),
-        script: PD.Script({ language: 'mol-script', expression: '(sel.atom.all)' }),
+        script: PD.Script({ language: 'pymol', expression: 'all' }),
     }, { isHidden: true }),
     nullIfEmpty: PD.Optional(PD.Boolean(true, { isHidden: true })),
     label: PD.Text('', { isHidden: true })
@@ -167,4 +167,4 @@ export function updateStructureComponent(a: Structure, b: SO.Molecule.Structure,
     }
 
     return updated ? StateTransformer.UpdateResult.Updated : StateTransformer.UpdateResult.Unchanged;
-}
\ No newline at end of file
+}
diff --git a/src/mol-plugin-state/transforms/model.ts b/src/mol-plugin-state/transforms/model.ts
index e9b356ddcd6fca4c285926139203ce8411fb68b6..5d317d4803edf97e0e9c0e561ebfbc320e52ffaa 100644
--- a/src/mol-plugin-state/transforms/model.ts
+++ b/src/mol-plugin-state/transforms/model.ts
@@ -786,7 +786,7 @@ const StructureSelectionFromScript = PluginStateTransform.BuiltIn({
     from: SO.Molecule.Structure,
     to: SO.Molecule.Structure,
     params: () => ({
-        script: PD.Script({ language: 'mol-script', expression: '(sel.atom.atom-groups :residue-test (= atom.resname ALA))' }),
+        script: PD.Script({ language: 'pymol', expression: 'chain A' }),
         label: PD.Optional(PD.Text(''))
     })
 })({
@@ -1079,4 +1079,4 @@ const ShapeFromPly = PluginStateTransform.BuiltIn({
             return new SO.Shape.Provider(shape, props);
         });
     }
-});
\ No newline at end of file
+});
diff --git a/src/mol-plugin-state/transforms/representation.ts b/src/mol-plugin-state/transforms/representation.ts
index 32c564437b540369c43419285eb68e579a24a925..1194eb09dcb6569b92a579d3e26449d3e552d1cd 100644
--- a/src/mol-plugin-state/transforms/representation.ts
+++ b/src/mol-plugin-state/transforms/representation.ts
@@ -315,12 +315,12 @@ const OverpaintStructureRepresentation3DFromScript = PluginStateTransform.BuiltI
     to: SO.Molecule.Structure.Representation3DState,
     params: () => ({
         layers: PD.ObjectList({
-            script: PD.Script(Script('(sel.atom.all)', 'mol-script')),
+            script: PD.Script(Script('all', 'pymol')),
             color: PD.Color(ColorNames.blueviolet),
             clear: PD.Boolean(false)
         }, e => `${e.clear ? 'Clear' : Color.toRgbString(e.color)}`, {
             defaultValue: [{
-                script: Script('(sel.atom.all)', 'mol-script'),
+                script: Script('all','pymol'),
                 color: ColorNames.blueviolet,
                 clear: false
             }]
@@ -430,11 +430,11 @@ const TransparencyStructureRepresentation3DFromScript = PluginStateTransform.Bui
     to: SO.Molecule.Structure.Representation3DState,
     params: () => ({
         layers: PD.ObjectList({
-            script: PD.Script(Script('(sel.atom.all)', 'mol-script')),
+            script: PD.Script(Script('all','pymol')),
             value: PD.Numeric(0.5, { min: 0, max: 1, step: 0.01 }, { label: 'Transparency' }),
         }, e => `Transparency (${e.value})`, {
             defaultValue: [{
-                script: Script('(sel.atom.all)', 'mol-script'),
+                script: Script('all','pymol'),
                 value: 0.5,
             }]
         })
@@ -541,12 +541,12 @@ const SubstanceStructureRepresentation3DFromScript = PluginStateTransform.BuiltI
     to: SO.Molecule.Structure.Representation3DState,
     params: () => ({
         layers: PD.ObjectList({
-            script: PD.Script(Script('(sel.atom.all)', 'mol-script')),
+            script: PD.Script(Script('all','pymol')),
             material: Material.getParam(),
             clear: PD.Boolean(false)
         }, e => `${e.clear ? 'Clear' : Material.toString(e.material)}`, {
             defaultValue: [{
-                script: Script('(sel.atom.all)', 'mol-script'),
+                script: Script('all','pymol'),
                 material: Material({ roughness: 1 }),
                 clear: false
             }]
@@ -656,11 +656,11 @@ const ClippingStructureRepresentation3DFromScript = PluginStateTransform.BuiltIn
     to: SO.Molecule.Structure.Representation3DState,
     params: () => ({
         layers: PD.ObjectList({
-            script: PD.Script(Script('(sel.atom.all)', 'mol-script')),
+            script: PD.Script(Script('all','pymol')),
             groups: PD.Converted((g: Clipping.Groups) => Clipping.Groups.toNames(g), n => Clipping.Groups.fromNames(n), PD.MultiSelect(ObjectKeys(Clipping.Groups.Names), PD.objectToOptions(Clipping.Groups.Names))),
         }, e => `${Clipping.Groups.toNames(e.groups).length} group(s)`, {
             defaultValue: [{
-                script: Script('(sel.atom.all)', 'mol-script'),
+                script: Script('all','pymol'),
                 groups: Clipping.Groups.Flag.None,
             }]
         }),
@@ -1165,4 +1165,4 @@ const StructureSelectionsPlane3D = PluginStateTransform.BuiltIn({
             return StateTransformer.UpdateResult.Updated;
         });
     },
-});
\ No newline at end of file
+});
diff --git a/src/mol-script/script.ts b/src/mol-script/script.ts
index 756861c6a62a118da82c2347023f3854f8480e8c..d03734186a493cb2e4b9cb155ee254af4ca4ce0c 100644
--- a/src/mol-script/script.ts
+++ b/src/mol-script/script.ts
@@ -4,8 +4,9 @@
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
 
-import { transpileMolScript } from './script/mol-script/symbols';
-import { parseMolScript } from './language/parser';
+//import { transpileMolScript } from './script/mol-script/symbols';
+//import { parseMolScript } from './language/parser';
+import { parse } from './transpile';
 import { Expression } from './language/expression';
 import { StructureElement, QueryContext, StructureSelection, Structure, QueryFn, QueryContextOptions } from '../mol-model/structure';
 import { compile } from './runtime/query/compiler';
@@ -20,7 +21,7 @@ function Script(expression: string, language: Script.Language): Script {
 }
 
 namespace Script {
-    export type Language = 'mol-script'
+    export type Language = 'pymol'
 
     export function is(x: any): x is Script {
         return !!x && typeof (x as Script).expression === 'string' && !!(x as Script).language;
@@ -32,10 +33,16 @@ namespace Script {
 
     export function toExpression(script: Script): Expression {
         switch (script.language) {
-            case 'mol-script':
-                const parsed = parseMolScript(script.expression);
-                if (parsed.length === 0) throw new Error('No query');
-                return transpileMolScript(parsed[0]);
+//        case 'mol-script':
+//            const parsed = parseMolScript(script.expression);
+//            if (parsed.length === 0) throw new Error('No query');
+//            return transpileMolScript(parsed[0]);
+
+	case 'pymol':
+	    const parsed = parse("pymol",script.expression);
+//            if (parsed.length === 0) throw new Error('No query');
+            //return transpileMolScript(parsed);
+	    return parsed as Expression;	   
         }
         throw new Error('unsupported script language');
     }
@@ -56,4 +63,4 @@ namespace Script {
         const query = compile<StructureSelection>(e);
         return query(new QueryContext(structure, options));
     }
-}
\ No newline at end of file
+}
diff --git a/src/mol-script/transpile.ts b/src/mol-script/transpile.ts
index 7b94709a14b3ac32f99e838de772489ad1e335bd..d02a0a8d2e04b614a0447ac304b942662dba4ee7 100644
--- a/src/mol-script/transpile.ts
+++ b/src/mol-script/transpile.ts
@@ -5,13 +5,13 @@ import _transpiler from './transpilers/all'
 
 const transpiler: {[index: string]: Transpiler} = _transpiler
 
-const util = require('util')
+//const util = require('util')
 
-function parse(lang: string, str: string) {
+export function parse(lang: string, str: string) {
     try {
 	const query = transpiler[lang](str);
 	console.log(str);
-	console.log(util.inspect(query, {depth: 20, color: true}));
+	//console.log(util.inspect(query, {depth: 20, color: true}));
 	console.log('\n');
 	return query;      
 	//compile(query)
@@ -28,4 +28,5 @@ if (lang && str) {
     parse(lang, str);
 }
 
-default export parse;
+//export default parse;
+