diff --git a/src/mol-plugin/behavior/static/representation.ts b/src/mol-plugin/behavior/static/representation.ts
index 22859c4d8653b1fa19919736fb5565dacea5e808..5bc71d9fef1f82656404cc046d3f79f42e21f94b 100644
--- a/src/mol-plugin/behavior/static/representation.ts
+++ b/src/mol-plugin/behavior/static/representation.ts
@@ -30,7 +30,13 @@ export function SyncRepresentationToCanvas(ctx: PluginContext) {
         }
 
         if (!SO.isRepresentation3D(e.obj)) return;
+
         updateVisibility(e, e.obj.data);
+
+        if (e.action === 'recreate') {
+            ctx.canvas3d.add(e.obj.data);
+            ctx.canvas3d.requestDraw(true);
+        }
     });
     events.object.removed.subscribe(e => {
         if (!SO.isRepresentation3D(e.obj)) return;
diff --git a/src/mol-plugin/ui/state/common.tsx b/src/mol-plugin/ui/state/common.tsx
index 184a0a47b66cc9fb709e7fff03cbf21d3e68a22e..ca64bbf00308c28366a9261e1596e163017fd81a 100644
--- a/src/mol-plugin/ui/state/common.tsx
+++ b/src/mol-plugin/ui/state/common.tsx
@@ -4,7 +4,7 @@
  * @author David Sehnal <david.sehnal@gmail.com>
  */
 
-import { StateObject, State, Transform, StateObjectCell, Transformer } from 'mol-state';
+import { State, Transform, StateObjectCell, Transformer } from 'mol-state';
 import * as React from 'react';
 import { PurePluginComponent } from '../base';
 import { ParameterControls, ParamOnChange } from '../controls/parameters';
@@ -41,7 +41,6 @@ namespace StateTransformParameters {
         info: {
             params: PD.Params,
             initialValues: any,
-            source: StateObject,
             isEmpty: boolean
         },
         events: {
@@ -59,7 +58,6 @@ namespace StateTransformParameters {
         const params = action.definition.params ? action.definition.params(source, plugin) : { };
         const initialValues = PD.getDefaultValues(params);
         return {
-            source,
             initialValues,
             params,
             isEmpty: Object.keys(params).length === 0
@@ -72,7 +70,6 @@ namespace StateTransformParameters {
         const create = transform.transformer.definition.params;
         const params = create ? create((source && source.obj) as any, plugin) : { };
         return {
-            source: (source && source.obj) as any,
             initialValues: transform.params,
             params,
             isEmpty: Object.keys(params).length === 0
@@ -81,7 +78,7 @@ namespace StateTransformParameters {
 }
 
 namespace TransformContolBase {
-    export interface State {
+    export interface ControlState {
         params: any,
         error?: string,
         busy: boolean,
@@ -90,7 +87,7 @@ namespace TransformContolBase {
     }
 }
 
-abstract class TransformContolBase<P, S extends TransformContolBase.State> extends PurePluginComponent<P, S> {
+abstract class TransformContolBase<P, S extends TransformContolBase.ControlState> extends PurePluginComponent<P, S> {
     abstract applyAction(): Promise<void>;
     abstract getInfo(): StateTransformParameters.Props['info'];
     abstract getHeader(): Transformer.Definition['display'];