diff --git a/src/plugins/tprovoost/scripteditor/scriptblock/Javascript.java b/src/plugins/tprovoost/scripteditor/scriptblock/Javascript.java
index 9207e0962b0d64a43d04a2c249754f7c922e26ae..5af4ccecc7017132cea2d1ccaff674fbe32509e9 100644
--- a/src/plugins/tprovoost/scripteditor/scriptblock/Javascript.java
+++ b/src/plugins/tprovoost/scripteditor/scriptblock/Javascript.java
@@ -27,6 +27,7 @@ import javax.script.ScriptException;
 import org.fife.ui.autocomplete.ParameterizedCompletion.Parameter;
 
 import plugins.adufour.vars.lang.Var;
+import plugins.adufour.vars.lang.VarMutable;
 import plugins.tprovoost.scripteditor.completion.IcyCompletionProvider;
 import plugins.tprovoost.scripteditor.completion.types.ScriptFunctionCompletion;
 import plugins.tprovoost.scripteditor.completion.types.ScriptFunctionCompletion.BindingFunction;
@@ -130,7 +131,7 @@ public class Javascript extends ScriptBlock {
 
 	@Override
 	protected void setOutputVariables(ScriptEngine engine) {
-		for (VarMutableScript output : getVarScript().getOutputVariables()) {
+		for (VarMutable output : getVarScript().getOutputVariables()) {
 			Object resObject = engine.get(output.getName());
 			output.setValue(JSScriptBlock.transformScriptOutput(resObject));
 		}
diff --git a/src/plugins/tprovoost/scripteditor/scriptblock/Pythonscript.java b/src/plugins/tprovoost/scripteditor/scriptblock/Pythonscript.java
index 431ec0505ae1a735cb98459676e9db84bd0216ea..e062211ff7e6723185c95d8086d39c140eaebe1f 100644
--- a/src/plugins/tprovoost/scripteditor/scriptblock/Pythonscript.java
+++ b/src/plugins/tprovoost/scripteditor/scriptblock/Pythonscript.java
@@ -22,6 +22,7 @@ import java.lang.reflect.Method;
 import java.util.ArrayList;
 
 import plugins.adufour.vars.lang.Var;
+import plugins.adufour.vars.lang.VarMutable;
 import plugins.tprovoost.scripteditor.scriptblock.var.VarPythonScript;
 import plugins.tprovoost.scripteditor.scriptinghandlers.ScriptEngine;
 
@@ -67,7 +68,7 @@ public class Pythonscript extends ScriptBlock {
 
 	@Override
 	protected void setOutputVariables(ScriptEngine engine) {
-		for (VarMutableScript output : getVarScript().getOutputVariables()) {
+		for (VarMutable output : getVarScript().getOutputVariables()) {
 			Object resObject = engine.get(output.getName());
 			output.setValue(PythonScriptBlock.transformScriptOutput(resObject));
 		}
diff --git a/src/plugins/tprovoost/scripteditor/scriptblock/ScriptBlock.java b/src/plugins/tprovoost/scripteditor/scriptblock/ScriptBlock.java
index fd981f1452d129e0e98207186ddc247a1b28c707..2504c4a4113bde22a73291f31a4ead4935d203e9 100644
--- a/src/plugins/tprovoost/scripteditor/scriptblock/ScriptBlock.java
+++ b/src/plugins/tprovoost/scripteditor/scriptblock/ScriptBlock.java
@@ -87,7 +87,7 @@ public abstract class ScriptBlock extends Plugin implements Block, VarListListen
 		inputMap.add("Script", script);
 		inputMap.add("Add Input", inputVarTrigger);
 		inputMap.add("Add output", outputVarTrigger);
-		VarMutableScript firstInputVariable = createInputVariable(inputVarIdx);
+		VarMutable firstInputVariable = createInputVariable(inputVarIdx);
 		inputMap.add(firstInputVariable.getName(), firstInputVariable);
 	}
 
@@ -107,7 +107,7 @@ public abstract class ScriptBlock extends Plugin implements Block, VarListListen
 
 			@Override
 			public void triggered(VarTrigger source) {
-				VarMutableScript newVariable = createInputVariable(inputVarIdx);
+				VarMutable newVariable = createInputVariable(inputVarIdx);
 				inputMap.addRuntimeVariable("" + newVariable.hashCode(), newVariable);
 				registerVariables();
 			}
@@ -131,7 +131,7 @@ public abstract class ScriptBlock extends Plugin implements Block, VarListListen
 
 			@Override
 			public void triggered(VarTrigger source) {
-				VarMutableScript newVariable = createOutputVariable(outputVarIdx);
+				VarMutable newVariable = createOutputVariable(outputVarIdx);
 				outputMap.addRuntimeVariable("" + newVariable.hashCode(), newVariable);
 				registerVariables();
 			}
@@ -139,8 +139,8 @@ public abstract class ScriptBlock extends Plugin implements Block, VarListListen
 		outputVarTrigger.setReferencingPolicy(VarReferencingPolicy.NONE);
 	}
 
-	private VarMutableScript createInputVariable(int varIdx) {
-		VarMutableScript newVariable = new VarMutableScript("input" + varIdx, Object.class);
+	private VarMutable createInputVariable(int varIdx) {
+		VarMutable newVariable = new VarMutable("input" + varIdx, Object.class);
 		setupVariable(newVariable);
 		return newVariable;
 	}
@@ -152,18 +152,18 @@ public abstract class ScriptBlock extends Plugin implements Block, VarListListen
 
 		outputMap.addVarListListener(this);
 
-		VarMutableScript firstOutputVariable = createOutputVariable(outputVarIdx);
+		VarMutable firstOutputVariable = createOutputVariable(outputVarIdx);
 		outputMap.add(firstOutputVariable.getName(), firstOutputVariable);
 		registerVariables();
 	}
 
-	private VarMutableScript createOutputVariable(int varIdx) {
-		VarMutableScript newVariable = new VarMutableScript("output" + varIdx, Object.class);
+	private VarMutable createOutputVariable(int varIdx) {
+		VarMutable newVariable = new VarMutable("output" + varIdx, Object.class);
 		setupVariable(newVariable);
 		return newVariable;
 	}
 
-	private void setupVariable(VarMutableScript newVariable) {
+	private void setupVariable(VarMutable newVariable) {
 		newVariable.setDefaultEditorModel(typeSelector);
 		newVariable.addTypeChangeListener(this);
 	}
@@ -197,18 +197,18 @@ public abstract class ScriptBlock extends Plugin implements Block, VarListListen
 	}
 
 	private void registerVariables() {
-		Set<VarMutableScript> inputVars = new HashSet<>();
-		Set<VarMutableScript> outputVars = new HashSet<>();
+		Set<VarMutable> inputVars = new HashSet<>();
+		Set<VarMutable> outputVars = new HashSet<>();
 		if (inputMap != null)
 			for (Var<?> v : inputMap) {
-				if (v instanceof VarMutableScript || inputMap.isRuntimeVariable(v)) {
-					inputVars.add((VarMutableScript) v);
+				if (v instanceof VarMutable || inputMap.isRuntimeVariable(v)) {
+					inputVars.add((VarMutable) v);
 				}
 			}
 		if (outputMap != null)
 			for (Var<?> v : outputMap) {
-				if (v instanceof VarMutableScript || outputMap.isRuntimeVariable(v)) {
-					outputVars.add((VarMutableScript) v);
+				if (v instanceof VarMutable || outputMap.isRuntimeVariable(v)) {
+					outputVars.add((VarMutable) v);
 				}
 			}
 
diff --git a/src/plugins/tprovoost/scripteditor/scriptblock/editor/VarScriptEditor.java b/src/plugins/tprovoost/scripteditor/scriptblock/editor/VarScriptEditor.java
index d81499afa66010c959f7004d4a7f8b14add134a6..13e12bbfc81e9fe8c35a0bfbdf8702d3c81f666e 100644
--- a/src/plugins/tprovoost/scripteditor/scriptblock/editor/VarScriptEditor.java
+++ b/src/plugins/tprovoost/scripteditor/scriptblock/editor/VarScriptEditor.java
@@ -24,8 +24,8 @@ import icy.resource.icon.IcyIcon;
 import icy.system.thread.ThreadUtil;
 import plugins.adufour.vars.gui.swing.SwingVarEditor;
 import plugins.adufour.vars.lang.Var;
+import plugins.adufour.vars.lang.VarMutable;
 import plugins.tprovoost.scripteditor.gui.ScriptingPanel;
-import plugins.tprovoost.scripteditor.scriptblock.VarMutableScript;
 import plugins.tprovoost.scripteditor.scriptblock.script.Script;
 import plugins.tprovoost.scripteditor.scriptblock.var.VarScript;
 import plugins.tprovoost.scripteditor.scriptinghandlers.ScriptVariable;
@@ -53,8 +53,8 @@ public abstract class VarScriptEditor extends SwingVarEditor<Script> {
 		setNameVisible(false);
 		setComponentResizeable(true);
 		JPanel component = buildComponentPanel();
-		Set<VarMutableScript> inputVariables = getVariable().getInputVariables();
-		Set<VarMutableScript> outputVariables = getVariable().getOutputVariables();
+		Set<VarMutable> inputVariables = getVariable().getInputVariables();
+		Set<VarMutable> outputVariables = getVariable().getOutputVariables();
 		ThreadUtil.invokeLater(() -> {
 			setupVariables(inputVariables, outputVariables);
 			panelIn.getScriptHandler().interpret(false);
@@ -186,14 +186,14 @@ public abstract class VarScriptEditor extends SwingVarEditor<Script> {
 		setupVariables(getVariable().getInputVariables(), getVariable().getOutputVariables());
 	}
 
-	public void setupVariables(Set<VarMutableScript> inputVariables, Set<VarMutableScript> outputVariables) {
+	public void setupVariables(Set<VarMutable> inputVariables, Set<VarMutable> outputVariables) {
 		ScriptingHandler inHandler = panelIn.getScriptHandler();
 		ScriptingHandler outHandler = panelOut.getScriptHandler();
 		setupVariables(inputVariables, outputVariables, inHandler);
 		setupVariables(inputVariables, outputVariables, outHandler);
 	}
 
-	private void setupVariables(Set<VarMutableScript> inputVariables, Set<VarMutableScript> outputVariables,
+	private void setupVariables(Set<VarMutable> inputVariables, Set<VarMutable> outputVariables,
 			ScriptingHandler handler) {
 		HashMap<String, ScriptVariable> handlerVariables = handler.getExternalVariables();
 
diff --git a/src/plugins/tprovoost/scripteditor/scriptblock/script/DefaultScript.java b/src/plugins/tprovoost/scripteditor/scriptblock/script/DefaultScript.java
index 244adbeac2b9a6bced6ba2419291d023e909c549..cac944c29a4e9727d218ba596a0720b424022eb2 100644
--- a/src/plugins/tprovoost/scripteditor/scriptblock/script/DefaultScript.java
+++ b/src/plugins/tprovoost/scripteditor/scriptblock/script/DefaultScript.java
@@ -5,12 +5,13 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 
+import plugins.adufour.vars.lang.VarMutable;
 import plugins.tprovoost.scripteditor.scriptblock.VarMutableScript;
 
 public abstract class DefaultScript implements Script {
 
 	private String code;
-	private Set<VarMutableScript> variables;
+	private Set<VarMutable> variables;
 	
 	public DefaultScript() {
 		this("");
@@ -22,7 +23,7 @@ public abstract class DefaultScript implements Script {
 
 	public DefaultScript(String code, Collection<VarMutableScript> variables) {
 		this.code = code;
-		this.variables = new HashSet<VarMutableScript>(variables);
+		this.variables = new HashSet<>(variables);
 	}
 
 	@Override
@@ -31,7 +32,7 @@ public abstract class DefaultScript implements Script {
 	}
 
 	@Override
-	public Set<VarMutableScript> getVariables() {
+	public Set<VarMutable> getVariables() {
 		return Collections.unmodifiableSet(variables);
 	}
 
@@ -41,22 +42,22 @@ public abstract class DefaultScript implements Script {
 	}
 
 	@Override
-	public void addVariable(VarMutableScript variable) {
+	public void addVariable(VarMutable variable) {
 		variables.add(variable);
 	}
 
 	@Override
-	public void addVariables(Collection<VarMutableScript> variables) {
+	public void addVariables(Collection<VarMutable> variables) {
 		this.variables.addAll(variables);
 	}
 
 	@Override
-	public void removeVariable(VarMutableScript variable) {
+	public void removeVariable(VarMutable variable) {
 		variables.remove(variable);
 	}
 
 	@Override
-	public void removeVariables(Collection<VarMutableScript> variables) {
+	public void removeVariables(Collection<VarMutable> variables) {
 		this.variables.removeAll(variables);
 	}
 	
diff --git a/src/plugins/tprovoost/scripteditor/scriptblock/script/Script.java b/src/plugins/tprovoost/scripteditor/scriptblock/script/Script.java
index ed49532d315e5e9f80738eade39f0bb18f327d42..4d2eddc0da854e47c847eb16cdc33ede4382ffbf 100644
--- a/src/plugins/tprovoost/scripteditor/scriptblock/script/Script.java
+++ b/src/plugins/tprovoost/scripteditor/scriptblock/script/Script.java
@@ -3,22 +3,22 @@ package plugins.tprovoost.scripteditor.scriptblock.script;
 import java.util.Collection;
 import java.util.Set;
 
-import plugins.tprovoost.scripteditor.scriptblock.VarMutableScript;
+import plugins.adufour.vars.lang.VarMutable;
 
 public interface Script {
 	ScriptType getScriptType();
 
 	String getCode();
 
-	Set<VarMutableScript> getVariables();
+	Set<VarMutable> getVariables();
 
 	void updateCode(String newCode);
 
-	void addVariable(VarMutableScript variable);
+	void addVariable(VarMutable variable);
 
-	void addVariables(Collection<VarMutableScript> inputVariables);
+	void addVariables(Collection<VarMutable> inputVariables);
 
-	void removeVariable(VarMutableScript variable);
+	void removeVariable(VarMutable variable);
 
-	void removeVariables(Collection<VarMutableScript> inputVariables);
+	void removeVariables(Collection<VarMutable> inputVariables);
 }
diff --git a/src/plugins/tprovoost/scripteditor/scriptblock/var/VarScript.java b/src/plugins/tprovoost/scripteditor/scriptblock/var/VarScript.java
index f13402f570067e52129d2eec0f52cc09bdba0a33..57bf82e5d9724b067a7a3885157814e545ef1db3 100644
--- a/src/plugins/tprovoost/scripteditor/scriptblock/var/VarScript.java
+++ b/src/plugins/tprovoost/scripteditor/scriptblock/var/VarScript.java
@@ -7,23 +7,23 @@ import java.util.Set;
 
 import plugins.adufour.vars.gui.VarEditor;
 import plugins.adufour.vars.lang.Var;
+import plugins.adufour.vars.lang.VarMutable;
 import plugins.adufour.vars.util.VarListener;
-import plugins.tprovoost.scripteditor.scriptblock.VarMutableScript;
 import plugins.tprovoost.scripteditor.scriptblock.editor.DefaultScriptVarEditorFactory;
 import plugins.tprovoost.scripteditor.scriptblock.editor.VarScriptEditor;
 import plugins.tprovoost.scripteditor.scriptblock.script.Script;
 
 public abstract class VarScript extends Var<Script> {
 
-	Set<VarMutableScript> inputVariables;
-	Set<VarMutableScript> outputVariables;
+	Set<VarMutable> inputVariables;
+	Set<VarMutable> outputVariables;
 
 	public VarScript(String name, Script defaultValue) {
 		this(name, defaultValue, Collections.emptySet(), Collections.emptySet());
 	}
 
-	public VarScript(String name, Script defaultValue, Collection<VarMutableScript> inputVariables,
-			Collection<VarMutableScript> outputVariables) throws NullPointerException {
+	public VarScript(String name, Script defaultValue, Collection<VarMutable> inputVariables,
+			Collection<VarMutable> outputVariables) throws NullPointerException {
 		this(name, defaultValue, inputVariables, outputVariables, null);
 	}
 
@@ -32,8 +32,8 @@ public abstract class VarScript extends Var<Script> {
 		this(name, defaultValue, Collections.emptyList(), Collections.emptyList(), defaultListener);
 	}
 
-	public VarScript(String name, Script defaultValue, Collection<VarMutableScript> inputVariables,
-			Collection<VarMutableScript> outputVariables, VarListener<Script> defaultListener)
+	public VarScript(String name, Script defaultValue, Collection<VarMutable> inputVariables,
+			Collection<VarMutable> outputVariables, VarListener<Script> defaultListener)
 			throws NullPointerException {
 		super(name, defaultValue, defaultListener);
 		setValue(defaultValue);
@@ -45,15 +45,15 @@ public abstract class VarScript extends Var<Script> {
 		return getValue().getCode();
 	}
 
-	public Set<VarMutableScript> getVariables() {
+	public Set<VarMutable> getVariables() {
 		return getValue().getVariables();
 	}
 
-	public Set<VarMutableScript> getInputVariables() {
+	public Set<VarMutable> getInputVariables() {
 		return Collections.unmodifiableSet(inputVariables);
 	}
 
-	public Set<VarMutableScript> getOutputVariables() {
+	public Set<VarMutable> getOutputVariables() {
 		return Collections.unmodifiableSet(outputVariables);
 	}
 	
@@ -70,7 +70,7 @@ public abstract class VarScript extends Var<Script> {
 		}
 	}
 
-	public void setupInputVariables(Collection<VarMutableScript> variables) {
+	public void setupInputVariables(Collection<VarMutable> variables) {
 		getValue().removeVariables(getInputVariables());
 		inputVariables.clear();
 		inputVariables.addAll(variables);
@@ -78,7 +78,7 @@ public abstract class VarScript extends Var<Script> {
 
 	}
 
-	public void setupOutputVariables(Collection<VarMutableScript> variables) {
+	public void setupOutputVariables(Collection<VarMutable> variables) {
 		getValue().removeVariables(getOutputVariables());
 		outputVariables.clear();
 		outputVariables.addAll(variables);
@@ -86,25 +86,25 @@ public abstract class VarScript extends Var<Script> {
 
 	}
 
-	public void addInputVariable(VarMutableScript variable) {
+	public void addInputVariable(VarMutable variable) {
 		getValue().addVariable(variable);
 		inputVariables.add(variable);
 		fireVariableChanged(getValue(), getValue());
 	}
 
-	public void addOutputVariable(VarMutableScript variable) {
+	public void addOutputVariable(VarMutable variable) {
 		getValue().addVariable(variable);
 		outputVariables.add(variable);
 		fireVariableChanged(getValue(), getValue());
 	}
 
-	public void removeInputVariable(VarMutableScript variable) {
+	public void removeInputVariable(VarMutable variable) {
 		getValue().removeVariable(variable);
 		inputVariables.remove(variable);
 		fireVariableChanged(getValue(), getValue());
 	}
 
-	public void removeOutputVariable(VarMutableScript variable) {
+	public void removeOutputVariable(VarMutable variable) {
 		getValue().removeVariable(variable);
 		outputVariables.remove(variable);
 		fireVariableChanged(getValue(), getValue());