diff --git a/de.prob.core/src/de/prob/core/command/GetPluginResultCommand.java b/de.prob.core/src/de/prob/core/command/GetPluginResultCommand.java
new file mode 100644
index 0000000000000000000000000000000000000000..4a32059fac77b05ddcf5058cca7ef5c865fe3c9e
--- /dev/null
+++ b/de.prob.core/src/de/prob/core/command/GetPluginResultCommand.java
@@ -0,0 +1,54 @@
+/**
+ * (c) 2009 Lehrstuhl fuer Softwaretechnik und Programmiersprachen, Heinrich
+ * Heine Universitaet Duesseldorf This software is licenced under EPL 1.0
+ * (http://www.eclipse.org/org/documents/epl-v10.html)
+ * */
+
+package de.prob.core.command;
+
+import de.prob.parser.BindingGenerator;
+import de.prob.parser.ISimplifiedROMap;
+import de.prob.parser.ResultParserException;
+import de.prob.prolog.output.IPrologTermOutput;
+import de.prob.prolog.term.ListPrologTerm;
+import de.prob.prolog.term.PrologTerm;
+
+public final class GetPluginResultCommand implements IComposableCommand {
+
+	private final String resultID;
+	private String result;
+
+	public GetPluginResultCommand(final String resultID) {
+		this.resultID = resultID;
+	}
+
+	public String getResult() {
+		return result;
+	}
+
+	public void processResult(
+			final ISimplifiedROMap<String, PrologTerm> bindings)
+			throws CommandException {
+		ListPrologTerm list;
+		try {
+			list = BindingGenerator.getList(bindings, "Bindings");
+		} catch (ResultParserException e) {
+			CommandException commandException = new CommandException(
+					e.getLocalizedMessage(), e);
+			commandException.notifyUserOnce();
+			throw commandException;
+		}
+
+		for (PrologTerm term : list) {
+			int nextCharCode = BindingGenerator.getInteger(term).getValue()
+					.intValue();
+			result += (char) nextCharCode;
+		}
+	}
+
+	public void writeCommand(final IPrologTermOutput pto) {
+		pto.openTerm("getPluginOutput").printAtomOrNumber(resultID)
+				.printVariable("Bindings").closeTerm();
+	}
+
+}
diff --git a/de.prob.ui/src/de/prob/ui/eventb/StartUnitAnalysisHandler.java b/de.prob.ui/src/de/prob/ui/eventb/StartUnitAnalysisHandler.java
index e8c349d68ec246b5370ff8e5645ca44c4acd3f54..11b730830b22d94faf4009bbe41769486f495d12 100644
--- a/de.prob.ui/src/de/prob/ui/eventb/StartUnitAnalysisHandler.java
+++ b/de.prob.ui/src/de/prob/ui/eventb/StartUnitAnalysisHandler.java
@@ -38,12 +38,10 @@ import de.prob.core.LimitedLogger;
 import de.prob.core.command.ActivateUnitPluginCommand;
 import de.prob.core.command.ClearMachineCommand;
 import de.prob.core.command.ComposedCommand;
-import de.prob.core.command.GetCurrentStateIdCommand;
-import de.prob.core.command.GetStateValuesCommand;
+import de.prob.core.command.GetPluginResultCommand;
 import de.prob.core.command.SetPreferencesCommand;
 import de.prob.core.command.StartAnimationCommand;
 import de.prob.core.command.internal.InternalLoadCommand;
-import de.prob.core.domainobjects.Variable;
 import de.prob.exceptions.ProBException;
 import de.prob.logging.Logger;
 
@@ -131,17 +129,14 @@ public class StartUnitAnalysisHandler extends AbstractHandler implements
 				animator.execute(composed);
 
 				// TODO: get resulting state and fill attributes
-				String currentID = GetCurrentStateIdCommand.getID(animator);
-				GetStateValuesCommand stateValuesCommand = new GetStateValuesCommand(
-						currentID);
+				GetPluginResultCommand stateValuesCommand = new GetPluginResultCommand(
+						"Static Analysis Result");
 
 				animator.execute(stateValuesCommand);
 
-				List<Variable> vars = stateValuesCommand.getResult();
+				String output = stateValuesCommand.getResult();
 
-				for (Variable v : vars) {
-					System.out.println(v.getIdentifier());
-				}
+				System.out.println(output);
 
 				// shutdown animator
 				animator.shutdown();