diff --git a/de.prob.core/META-INF/MANIFEST.MF b/de.prob.core/META-INF/MANIFEST.MF
index 183aec64ab8396a38371833010f46f9c636a3346..b58a587fe9433899a58102254213d8cc92978586 100644
--- a/de.prob.core/META-INF/MANIFEST.MF
+++ b/de.prob.core/META-INF/MANIFEST.MF
@@ -59,7 +59,6 @@ Export-Package: com.thoughtworks.xstream,
  de.be4.ltl.core.parser.node,
  de.be4.ltl.core.parser.parser,
  de.hhu.stups.sablecc.patch,
- de.prob.animator.domainobjects,
  de.prob.cli,
  de.prob.cli.clipatterns,
  de.prob.core,
@@ -83,9 +82,6 @@ Export-Package: com.thoughtworks.xstream,
  de.prob.eventb.translator.internal,
  de.prob.exceptions,
  de.prob.logging,
- de.prob.model.eventb,
- de.prob.model.representation,
- de.prob.model.serialize,
  de.prob.parser,
  de.prob.parserbase,
  de.prob.prolog.match,
diff --git a/de.prob.core/src/de/prob/animator/domainobjects/EvalElementType.java b/de.prob.core/src/de/prob/animator/domainobjects/EvalElementType.java
deleted file mode 100644
index 95ff5f1c565a45e6fb653173cec26c0fce64c756..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/animator/domainobjects/EvalElementType.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package de.prob.animator.domainobjects;
-
-public enum EvalElementType {
-	PREDICATE, EXPRESSION;
-
-	@Override
-	public String toString() {
-		return "#" + super.toString();
-	}
-
-}
diff --git a/de.prob.core/src/de/prob/animator/domainobjects/EvaluationResult.java b/de.prob.core/src/de/prob/animator/domainobjects/EvaluationResult.java
deleted file mode 100644
index fb5ce98a7c77defd6ad8ee03b1b86cad06c52d25..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/animator/domainobjects/EvaluationResult.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package de.prob.animator.domainobjects;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * This is what is saved when a formula ({@link IEvalElement}) is executed in
- * the StateSpace
- * 
- * @author joy
- * 
- */
-public class EvaluationResult {
-
-	public final String value;
-	public final String solution;
-	public final String errors;
-	public final String code;
-	public final String explanation;
-	private final String resultType;
-	private final List<String> quantifiedVars;
-	private final boolean enumerationWarnings;
-	private final String stateid;
-
-	public EvaluationResult(final String stateid, final String code,
-			final String value, final String solution, final String errors,
-			final String resultType, final List<String> quantifiedVars,
-			final boolean enumerationWarnings) {
-		this.stateid = stateid;
-		this.code = code;
-		this.value = value;
-		this.solution = solution;
-		this.errors = errors;
-		this.resultType = resultType;
-		this.quantifiedVars = quantifiedVars;
-		this.enumerationWarnings = enumerationWarnings;
-		if (!solutionMode(resultType) && "TRUE".equals(value)) {
-			this.explanation = "Solution";
-		} else {
-			this.explanation = solutionMode(resultType) ? " Solution: "
-					: " Counterexample: ";
-		}
-	}
-
-	public EvaluationResult(final String stateid, final String code,
-			final String value, final String solution, final String errors,
-			final String resultType, final String[] strings,
-			final boolean enumerationWarnings) {
-		this(stateid, code, value, solution, errors, resultType, Arrays
-				.asList(strings), enumerationWarnings);
-	}
-
-	private boolean solutionMode(final String arg0) {
-		return "exists".equals(arg0);
-	}
-
-	public String getResultType() {
-		return resultType;
-	}
-
-	public List<String> getQuantifiedVars() {
-		return quantifiedVars;
-	}
-
-	public boolean hasEnumerationWarnings() {
-		return enumerationWarnings;
-	}
-
-	public boolean hasError() {
-		return errors != null && !errors.isEmpty(); // You're kidding, aren't
-													// you? ;-)
-	}
-
-	public String getErrors() {
-		return errors;
-	}
-
-	public String getValue() {
-		return value;
-	}
-
-	@Override
-	public String toString() {
-		final String result;
-		if (hasError()) {
-			result = "'Errors: " + errors + "'";
-		} else {
-			result = (solution == null || solution.equals("")) ? value : value
-					+ explanation + solution;
-		}
-		return result;
-	}
-	
-	public String getStateId() {
-		return stateid;
-	}
-
-	public String getStateid() {
-		return stateid;
-	}
-
-}
diff --git a/de.prob.core/src/de/prob/animator/domainobjects/EventB.java b/de.prob.core/src/de/prob/animator/domainobjects/EventB.java
deleted file mode 100644
index 15e683a4955385a05cdf4fc2a588702e929c8da4..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/animator/domainobjects/EventB.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package de.prob.animator.domainobjects;
-
-import de.be4.classicalb.core.parser.analysis.prolog.ASTProlog;
-import de.be4.classicalb.core.parser.node.Node;
-import de.prob.model.representation.FormulaUUID;
-import de.prob.prolog.output.IPrologTermOutput;
-import de.prob.unicode.UnicodeTranslator;
-
-/**
- * Representation of an Event-B formula
- * 
- * @author joy
- * 
- */
-public class EventB implements IEvalElement {
-
-	public FormulaUUID uuid = new FormulaUUID();
-
-	private final String code;
-	private String kind;
-	private Node ast = null;
-
-	/**
-	 * @param code
-	 *            - The String which is a representation of the desired Event-B
-	 *            formula
-	 */
-	public EventB(final String code) {
-		this.code = UnicodeTranslator.toAscii(code);
-	}
-
-	private void ensureParsed() {
-		// final String unicode = UnicodeTranslator.toUnicode(code);
-		// kind = PREDICATE.toString();
-		// IParseResult parseResult =
-		// FormulaFactory.getDefault().parsePredicate(
-		// unicode, LanguageVersion.LATEST, null);
-		//
-		// if (!parseResult.hasProblem()) {
-		// ast = preparePredicateAst(parseResult);
-		//
-		// } else {
-		// kind = EXPRESSION.toString();
-		// parseResult = FormulaFactory.getDefault().parseExpression(unicode,
-		// LanguageVersion.LATEST, null);
-		// ast = prepareExpressionAst(parseResult);
-		// }
-		// if (parseResult.hasProblem()) {
-		// throwException(code, parseResult);
-		// }
-	}
-
-	// private Node prepareExpressionAst(final IParseResult parseResult) {
-	// final Expression expr = parseResult.getParsedExpression();
-	// final ExpressionVisitor visitor = new ExpressionVisitor(
-	// new LinkedList<String>());
-	// expr.accept(visitor);
-	// final Node expression = visitor.getExpression();
-	// return expression;
-	// }
-	//
-	// private Node preparePredicateAst(final IParseResult parseResult) {
-	// final Predicate parsedPredicate = parseResult.getParsedPredicate();
-	// final PredicateVisitor visitor = new PredicateVisitor();
-	// parsedPredicate.accept(visitor);
-	// return visitor.getPredicate();
-	// }
-	//
-	// private void throwException(final String code,
-	// final IParseResult parseResult) {
-	// final List<ASTProblem> problems = parseResult.getProblems();
-	// final ArrayList<String> msgs = new ArrayList<String>();
-	// for (final ASTProblem astProblem : problems) {
-	// msgs.add(astProblem.getMessage().toString());
-	// }
-	// final String error = Joiner.on(", \n").join(msgs);
-	// throw new EvaluationException("Cannot parse " + code + ":\n " + error);
-	// }
-
-	@Override
-	public String getCode() {
-		return code;
-	}
-
-	@Override
-	public boolean equals(final Object that) {
-		if (that instanceof EventB) {
-			return ((EventB) that).getCode().equals(this.getCode());
-		}
-		return false;
-	}
-
-	@Override
-	public void printProlog(final IPrologTermOutput pout) {
-		if (ast == null) {
-			ensureParsed();
-		}
-
-		assert ast != null;
-		final ASTProlog prolog = new ASTProlog(pout, null);
-		ast.apply(prolog);
-	}
-
-	@Override
-	public String getKind() {
-		return kind;
-	}
-
-	@Override
-	public String toString() {
-		return getCode();
-	}
-
-}
diff --git a/de.prob.core/src/de/prob/animator/domainobjects/IEvalElement.java b/de.prob.core/src/de/prob/animator/domainobjects/IEvalElement.java
deleted file mode 100644
index e6fd3f173ba64ae683f5e37d33ced493d3969fb7..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/animator/domainobjects/IEvalElement.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package de.prob.animator.domainobjects;
-
-import de.prob.prolog.output.IPrologTermOutput;
-
-public interface IEvalElement {
-	public abstract String getCode();
-
-	public abstract void printProlog(IPrologTermOutput pout);
-
-	public abstract String getKind();
-}
diff --git a/de.prob.core/src/de/prob/model/eventb/Context.java b/de.prob.core/src/de/prob/model/eventb/Context.java
deleted file mode 100644
index a978d6d5f5bb6709811241b7edecc5ccc6078a0a..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/eventb/Context.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package de.prob.model.eventb;
-
-import java.util.List;
-
-import de.prob.model.representation.AbstractElement;
-import de.prob.model.representation.Axiom;
-import de.prob.model.representation.BSet;
-import de.prob.model.representation.Constant;
-public class Context extends AbstractElement {
-
-	private final String name;
-
-	public Context(final String name) {
-		this.name = name;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public void addExtends(final List<Context> contexts) {
-		put(Context.class, contexts);
-	}
-
-	public void addSets(final List<BSet> sets) {
-		put(BSet.class, sets);
-	}
-
-	public void addConstants(final List<EventBConstant> constants) {
-		put(Constant.class, constants);
-	}
-
-	public void addAxioms(final List<EventBAxiom> axioms) {
-		put(Axiom.class, axioms);
-	}
-
-	@Override
-	public String toString() {
-		return name;
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/eventb/Event.java b/de.prob.core/src/de/prob/model/eventb/Event.java
deleted file mode 100644
index e9071fa4c1f7362e3b20f21ec32b5b8d483a1bf4..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/eventb/Event.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package de.prob.model.eventb;
-
-import java.util.List;
-import java.util.Set;
-
-import de.prob.model.representation.AbstractElement;
-import de.prob.model.representation.Action;
-import de.prob.model.representation.BEvent;
-import de.prob.model.representation.Guard;
-
-public class Event extends BEvent {
-
-	private final EventType type;
-
-	public enum EventType {
-		ORDINARY, CONVERGENT, ANTICIPATED
-	}
-
-	public Event(final String name, final EventType type) {
-		super(name);
-		this.type = type;
-	}
-
-	public void addRefines(final List<Event> refines) {
-		put(Event.class, refines);
-	}
-
-	public void addGuards(final List<EventBGuard> guards) {
-		put(Guard.class, guards);
-	}
-
-	public void addActions(final List<EventBAction> actions) {
-		put(Action.class, actions);
-	}
-
-	public void addWitness(final List<Witness> witness) {
-		put(Witness.class, witness);
-	}
-
-	public void addParameters(final List<EventParameter> parameters) {
-		put(EventParameter.class, parameters);
-	}
-
-	public EventType getType() {
-		return type;
-	}
-
-	@Override
-	public String toString() {
-		return getName();
-	}
-	
-	public String print() {
-		StringBuilder sb = new StringBuilder();
-		sb.append("Name: " + getName() + "\n");
-		sb.append("Type: " + type.toString() + "\n");
-		addChildren("Refines", getChildrenOfType(Event.class), sb);
-		addChildren("Any", getChildrenOfType(EventParameter.class), sb);
-		addChildren("Where", getChildrenOfType(Guard.class), sb);
-		addChildren("With", getChildrenOfType(Witness.class), sb);
-		addChildren("Then", getChildrenOfType(Action.class), sb);
-		return sb.toString();
-	}
-
-	private void addChildren(final String name,
-			final Set<? extends AbstractElement> childrenOfType,
-			final StringBuilder sb) {
-		if (!childrenOfType.isEmpty()) {
-			sb.append(name + ": \n");
-			for (AbstractElement abstractElement : childrenOfType) {
-				sb.append("\t" + abstractElement.toString() + "\n");
-			}
-		}
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/eventb/EventBAction.java b/de.prob.core/src/de/prob/model/eventb/EventBAction.java
deleted file mode 100644
index 495a3306f026322ed66be61397898b69a80b8d47..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/eventb/EventBAction.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package de.prob.model.eventb;
-
-import de.prob.model.representation.Action;
-
-public class EventBAction extends Action {
-
-	private final String name;
-
-	public EventBAction(final String name, final String code) {
-		super(code);
-		this.name = name;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	@Override
-	public String toString() {
-		return name + ": " + getCode();
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/eventb/EventBAxiom.java b/de.prob.core/src/de/prob/model/eventb/EventBAxiom.java
deleted file mode 100644
index a21374bf45edd9b092e3397ca8f89e395a6d345b..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/eventb/EventBAxiom.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package de.prob.model.eventb;
-
-import de.prob.animator.domainobjects.EventB;
-import de.prob.model.representation.Axiom;
-
-public class EventBAxiom extends Axiom {
-
-	private final String name;
-	private final boolean theorem;
-
-	public EventBAxiom(final String name, final String code,
-			final boolean theorem) {
-		super(new EventB(code));
-		this.name = name;
-		this.theorem = theorem;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public boolean isTheorem() {
-		return theorem;
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/eventb/EventBConstant.java b/de.prob.core/src/de/prob/model/eventb/EventBConstant.java
deleted file mode 100644
index 935847691c782219755fcb792ae6aeb8e5732f66..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/eventb/EventBConstant.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package de.prob.model.eventb;
-
-import de.prob.animator.domainobjects.EventB;
-import de.prob.model.representation.Constant;
-
-public class EventBConstant extends Constant {
-
-	private final String name;
-
-	public EventBConstant(final String name) {
-		super(new EventB(name));
-		this.name = name;
-	}
-
-	public String getName() {
-		return name;
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/eventb/EventBGuard.java b/de.prob.core/src/de/prob/model/eventb/EventBGuard.java
deleted file mode 100644
index 2e2bc569062f52170a32eef5e5eba9ad2428f372..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/eventb/EventBGuard.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package de.prob.model.eventb;
-
-import de.prob.animator.domainobjects.EventB;
-import de.prob.model.representation.Guard;
-
-public class EventBGuard extends Guard {
-
-	private final String name;
-	private final boolean theorem;
-
-	public EventBGuard(final String name, final String code,
-			final boolean theorem) {
-		super(new EventB(code));
-		this.name = name;
-		this.theorem = theorem;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public boolean isTheorem() {
-		return theorem;
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/eventb/EventBInvariant.java b/de.prob.core/src/de/prob/model/eventb/EventBInvariant.java
deleted file mode 100644
index a49c05d459fc7cb23a014704b4600d0158518713..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/eventb/EventBInvariant.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package de.prob.model.eventb;
-
-import de.prob.animator.domainobjects.EventB;
-import de.prob.model.representation.Invariant;
-
-public class EventBInvariant extends Invariant {
-
-	private final String name;
-	private final boolean theorem;
-
-	public EventBInvariant(final String name, final String code,
-			final boolean theorem) {
-		super(new EventB(code));
-		this.name = name;
-		this.theorem = theorem;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public boolean isTheorem() {
-		return theorem;
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/eventb/EventBMachine.java b/de.prob.core/src/de/prob/model/eventb/EventBMachine.java
deleted file mode 100644
index 5998cc8b87e4842b44004ab4165825e7fe427ae8..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/eventb/EventBMachine.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package de.prob.model.eventb;
-
-import java.util.List;
-
-import de.prob.model.representation.BEvent;
-import de.prob.model.representation.Invariant;
-import de.prob.model.representation.Machine;
-import de.prob.model.representation.Variable;
-
-public class EventBMachine extends Machine {
-	public EventBMachine(final String name) {
-		super(name);
-	}
-
-	public void addRefines(final List<EventBMachine> refines) {
-		put(Machine.class, refines);
-	}
-
-	public void addSees(final List<Context> sees) {
-		put(Context.class, sees);
-	}
-
-	public void addVariables(final List<EventBVariable> variables) {
-		put(Variable.class, variables);
-	}
-
-	public void addInvariants(final List<EventBInvariant> invariants) {
-		put(Invariant.class, invariants);
-	}
-
-	public void addVariant(final List<Variant> variant) {
-		put(Variant.class, variant);
-	}
-
-	public void addEvents(final List<Event> events) {
-		put(BEvent.class, events);
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/eventb/EventBVariable.java b/de.prob.core/src/de/prob/model/eventb/EventBVariable.java
deleted file mode 100644
index 4ecf1af228d618822d89ee9840f3ecff16368ad6..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/eventb/EventBVariable.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package de.prob.model.eventb;
-
-import de.prob.animator.domainobjects.EventB;
-import de.prob.model.representation.Variable;
-
-public class EventBVariable extends Variable {
-
-	private final String name;
-
-	public EventBVariable(final String name) {
-		super(new EventB(name));
-		this.name = name;
-	}
-
-	public String getName() {
-		return name;
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/eventb/EventParameter.java b/de.prob.core/src/de/prob/model/eventb/EventParameter.java
deleted file mode 100644
index 5ebff9f27bcf3a4c73185beeb9770c59aa6846c9..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/eventb/EventParameter.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package de.prob.model.eventb;
-
-import de.prob.model.representation.AbstractElement;
-
-public class EventParameter extends AbstractElement {
-
-	private final String name;
-
-	public EventParameter(final String name) {
-		this.name = name;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	@Override
-	public String toString() {
-		return name;
-	}
-
-}
diff --git a/de.prob.core/src/de/prob/model/eventb/Variant.java b/de.prob.core/src/de/prob/model/eventb/Variant.java
deleted file mode 100644
index 7fcbc5363ba9be0cacaa7c1065dfd04834d8bb08..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/eventb/Variant.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package de.prob.model.eventb;
-
-import de.prob.animator.domainobjects.EventB;
-import de.prob.animator.domainobjects.IEvalElement;
-import de.prob.model.representation.AbstractElement;
-import de.prob.model.representation.IEval;
-
-public class Variant extends AbstractElement implements IEval {
-	private final IEvalElement expression;
-
-	public Variant(final String code) {
-		expression = new EventB(code);
-	}
-
-	public IEvalElement getExpression() {
-		return expression;
-	}
-
-	@Override
-	public IEvalElement getEvaluate() {
-		return expression;
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/eventb/Witness.java b/de.prob.core/src/de/prob/model/eventb/Witness.java
deleted file mode 100644
index d476e0cae01a2704b2fb1f56dddfcd7e2c2b77bc..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/eventb/Witness.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package de.prob.model.eventb;
-
-import de.prob.animator.domainobjects.EventB;
-import de.prob.animator.domainobjects.IEvalElement;
-import de.prob.model.representation.AbstractElement;
-import de.prob.model.representation.IEval;
-
-public class Witness extends AbstractElement implements IEval {
-
-	private final String name;
-	private final EventB predicate;
-
-	public Witness(final String name, final String code) {
-		this.name = name;
-		predicate = new EventB(code);
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	public EventB getPredicate() {
-		return predicate;
-	}
-
-	@Override
-	public IEvalElement getEvaluate() {
-		return predicate;
-	}
-
-}
diff --git a/de.prob.core/src/de/prob/model/representation/AbstractElement.java b/de.prob.core/src/de/prob/model/representation/AbstractElement.java
deleted file mode 100644
index 53c0c5aca6cd86c5ef43bf01020f0514afe9dd51..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/representation/AbstractElement.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package de.prob.model.representation;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * This class is the subclass of all model elements (Models, Machines, Contexts,
- * Variables, etc.)
- * 
- * @author joy
- * 
- */
-public abstract class AbstractElement {
-	protected Map<Class<? extends AbstractElement>, java.util.Set<? extends AbstractElement>> children = new HashMap<Class<? extends AbstractElement>, Set<? extends AbstractElement>>();
-
-	/**
-	 * Each {@link AbstractElement} can have children of a subclass that extends
-	 * {@link AbstractElement}. These are specified by the class of the child.
-	 * To get a Set of all of the children of a particular class, use this
-	 * method.
-	 * 
-	 * @param c
-	 *            {@link Class} T of the desired type of children
-	 * @return {@link Set} containing all the children of type T
-	 */
-	@SuppressWarnings("unchecked")
-	public <T extends AbstractElement> Set<T> getChildrenOfType(final Class<T> c) {
-		Set<? extends AbstractElement> set = children.get(c);
-		if (set == null) {
-			return Collections.emptySet();
-		}
-		return (Set<T>) set;
-	}
-
-	/**
-	 * Maps a {@link Collection} of elements to the specified {@link Class}
-	 * 
-	 * @param c
-	 *            {@link Class} to specify children elements
-	 * @param elements
-	 *            {@link Collection} of elements with which c will be mapped
-	 */
-	public <T extends AbstractElement> void put(final Class<T> c,
-			final Collection<? extends T> elements) {
-		children.put(c, new LinkedHashSet<T>(elements));
-	}
-
-	/**
-	 * @return the {@link Map} of {@link Class} to {@link Set} of children
-	 */
-	public Map<Class<? extends AbstractElement>, java.util.Set<? extends AbstractElement>> getChildren() {
-		return children;
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/representation/Action.java b/de.prob.core/src/de/prob/model/representation/Action.java
deleted file mode 100644
index 5950f5e4431da0186991409d0e8c2d44bde5f179..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/representation/Action.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package de.prob.model.representation;
-
-public abstract class Action extends AbstractElement {
-
-	private final String code;
-
-	public Action(final String code) {
-		this.code = code;
-	}
-
-	public String getCode() {
-		return code;
-	}
-
-	@Override
-	public String toString() {
-		return code;
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/representation/Axiom.java b/de.prob.core/src/de/prob/model/representation/Axiom.java
deleted file mode 100644
index d76f5fa2b3fe1dad5fe86cfdb244a1f11cebdec1..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/representation/Axiom.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package de.prob.model.representation;
-
-import de.prob.animator.domainobjects.IEvalElement;
-import de.prob.unicode.UnicodeTranslator;
-
-public abstract class Axiom extends AbstractElement implements IEval {
-
-	private final IEvalElement predicate;
-
-	public Axiom(final IEvalElement predicate) {
-		this.predicate = predicate;
-	}
-
-	public IEvalElement getPredicate() {
-		return predicate;
-	}
-
-	@Override
-	public IEvalElement getEvaluate() {
-		return predicate;
-	}
-	
-	@Override
-	public String toString() {
-		return UnicodeTranslator.toUnicode(predicate.getCode());
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/representation/BEvent.java b/de.prob.core/src/de/prob/model/representation/BEvent.java
deleted file mode 100644
index ccea9c12a7972c11f2dd100d634946d9fd0be888..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/representation/BEvent.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package de.prob.model.representation;
-
-
-public abstract class BEvent extends AbstractElement {
-
-	private final String name;
-
-	public BEvent(final String name) {
-		this.name = name;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	@Override
-	public String toString() {
-		return name;
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/representation/BSet.java b/de.prob.core/src/de/prob/model/representation/BSet.java
deleted file mode 100644
index 44040c771baff1d07714d72d6d5b5459f797dfde..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/representation/BSet.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package de.prob.model.representation;
-
-public class BSet extends AbstractElement {
-
-	private final String name;
-
-	public BSet(final String name) {
-		this.name = name;
-	}
-
-	public String getName() {
-		return name;
-	}
-	
-	@Override
-	public String toString() {
-		return name;
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/representation/Constant.java b/de.prob.core/src/de/prob/model/representation/Constant.java
deleted file mode 100644
index ad9742da06bd61932c201557f401c000a88720fc..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/representation/Constant.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package de.prob.model.representation;
-
-import de.prob.animator.domainobjects.EvaluationResult;
-import de.prob.animator.domainobjects.IEvalElement;
-import de.prob.unicode.UnicodeTranslator;
-
-public abstract class Constant extends AbstractElement implements IEval {
-
-	protected final IEvalElement expression;
-	protected EvaluationResult result;
-
-	public Constant(final IEvalElement expression) {
-		this.expression = expression;
-	}
-
-	public IEvalElement getExpression() {
-		return expression;
-	}
-
-	@Override
-	public IEvalElement getEvaluate() {
-		return expression;
-	}
-
-	@Override
-	public String toString() {
-		return UnicodeTranslator.toUnicode(expression.getCode());
-	}
-
-//	// Experimental. Would allow the user to calculate the value once and cache
-//	// it.
-//	public EvaluationResult getValue(final History h) {
-//		if (result == null) {
-//			result = h.evalCurrent(getEvaluate());
-//		}
-//		return result;
-//	}
-
-}
diff --git a/de.prob.core/src/de/prob/model/representation/FormulaUUID.java b/de.prob.core/src/de/prob/model/representation/FormulaUUID.java
deleted file mode 100644
index d84d6c7f28c2e427f674ea6a367dda9f9beb7056..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/representation/FormulaUUID.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package de.prob.model.representation;
-
-public class FormulaUUID {
-	static int count = 0;
-	public final String uuid = "Formula_" + (++count);
-}
diff --git a/de.prob.core/src/de/prob/model/representation/Guard.java b/de.prob.core/src/de/prob/model/representation/Guard.java
deleted file mode 100644
index b6574defafa1be14be6a40e3634d6eaadbc6fc5b..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/representation/Guard.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package de.prob.model.representation;
-
-import de.prob.animator.domainobjects.IEvalElement;
-
-public abstract class Guard extends AbstractElement implements IEval {
-
-	private final IEvalElement predicate;
-
-	public Guard(final IEvalElement predicate) {
-		this.predicate = predicate;
-	}
-
-	public IEvalElement getPredicate() {
-		return predicate;
-	}
-
-	@Override
-	public IEvalElement getEvaluate() {
-		return predicate;
-	}
-
-	@Override
-	public String toString() {
-		return predicate.toString();
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/representation/IEval.java b/de.prob.core/src/de/prob/model/representation/IEval.java
deleted file mode 100644
index 5dddd32727290ff31ce1f30600881d51017f217c..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/representation/IEval.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package de.prob.model.representation;
-
-import de.prob.animator.domainobjects.IEvalElement;
-
-public interface IEval {
-	public IEvalElement getEvaluate();
-}
diff --git a/de.prob.core/src/de/prob/model/representation/Invariant.java b/de.prob.core/src/de/prob/model/representation/Invariant.java
deleted file mode 100644
index 18de7013a3dbd0ea2dca52b793260c0ae4bc41fa..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/representation/Invariant.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package de.prob.model.representation;
-
-import de.prob.animator.domainobjects.IEvalElement;
-import de.prob.unicode.UnicodeTranslator;
-
-public abstract class Invariant extends AbstractElement implements IEval {
-
-	private final IEvalElement predicate;
-
-	public Invariant(final IEvalElement predicate) {
-		this.predicate = predicate;
-	}
-
-	public IEvalElement getPredicate() {
-		return predicate;
-	}
-
-	@Override
-	public IEvalElement getEvaluate() {
-		return predicate;
-	}
-
-	@Override
-	public String toString() {
-		return UnicodeTranslator.toUnicode(predicate.getCode());
-	}
-
-}
diff --git a/de.prob.core/src/de/prob/model/representation/Machine.java b/de.prob.core/src/de/prob/model/representation/Machine.java
deleted file mode 100644
index c5cad197b3fad9fc15cee1f4c9ab76f8da70029e..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/representation/Machine.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package de.prob.model.representation;
-
-public abstract class Machine extends AbstractElement {
-
-	private final String name;
-
-	public Machine(final String name) {
-		this.name = name;
-	}
-
-	public String getName() {
-		return name;
-	}
-
-	@Override
-	public String toString() {
-		return name;
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/representation/RefType.java b/de.prob.core/src/de/prob/model/representation/RefType.java
deleted file mode 100644
index 192a8a4aafe21eb232ada4f0045f5b0c4e6e2b1d..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/representation/RefType.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package de.prob.model.representation;
-
-public class RefType {
-	private final ERefType relationship;
-
-	/*
-	 * RefType is used for both ClassicalBModels and EventBModels
-	 * 
-	 * ClassicalB: SEES, USES, REFINES, INCLUDES, IMPORTS EventB: SEES, REFINES,
-	 * EXTENDS
-	 */
-	public enum ERefType {
-		SEES, USES, REFINES, INCLUDES, IMPORTS, EXTENDS
-	}
-
-	public RefType(final ERefType relationship) {
-		this.relationship = relationship;
-	}
-
-	@Override
-	public String toString() {
-		return relationship.toString();
-	}
-
-	public ERefType getRelationship() {
-		return relationship;
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/representation/StateSchema.java b/de.prob.core/src/de/prob/model/representation/StateSchema.java
deleted file mode 100644
index 52f97690b9232ee8263766af00cb05ed825d63bc..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/representation/StateSchema.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package de.prob.model.representation;
-
-public interface StateSchema {
-	public Object[] getElements(Object o);
-	public boolean hasChildren(Object o);
-}
diff --git a/de.prob.core/src/de/prob/model/representation/Variable.java b/de.prob.core/src/de/prob/model/representation/Variable.java
deleted file mode 100644
index 098bb5e99ca13b0c0a03145680191ea1aeaace6c..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/representation/Variable.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package de.prob.model.representation;
-
-import de.prob.animator.domainobjects.IEvalElement;
-import de.prob.unicode.UnicodeTranslator;
-
-public abstract class Variable extends AbstractElement implements IEval {
-
-	protected final IEvalElement expression;
-
-	public Variable(final IEvalElement expression) {
-		this.expression = expression;
-	}
-
-	public IEvalElement getExpression() {
-		return expression;
-	}
-
-	@Override
-	public IEvalElement getEvaluate() {
-		return expression;
-	}
-
-	public String getName() {
-		return expression.getCode();
-	}
-	
-	@Override
-	public String toString() {
-		return UnicodeTranslator.toUnicode(expression.getCode());
-	}
-}
diff --git a/de.prob.core/src/de/prob/model/serialize/EventBModelTranslator.java b/de.prob.core/src/de/prob/model/serialize/EventBModelTranslator.java
deleted file mode 100644
index 354414a4617e438b0866697f3f6632081561bf50..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/serialize/EventBModelTranslator.java
+++ /dev/null
@@ -1,295 +0,0 @@
-package de.prob.model.serialize;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Base64;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.zip.GZIPOutputStream;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eventb.core.IConvergenceElement.Convergence;
-import org.eventb.core.IEventBProject;
-import org.eventb.core.IEventBRoot;
-import org.eventb.core.ISCAction;
-import org.eventb.core.ISCAxiom;
-import org.eventb.core.ISCCarrierSet;
-import org.eventb.core.ISCConstant;
-import org.eventb.core.ISCContextRoot;
-import org.eventb.core.ISCEvent;
-import org.eventb.core.ISCExtendsContext;
-import org.eventb.core.ISCGuard;
-import org.eventb.core.ISCInternalContext;
-import org.eventb.core.ISCInvariant;
-import org.eventb.core.ISCMachineRoot;
-import org.eventb.core.ISCParameter;
-import org.eventb.core.ISCRefinesEvent;
-import org.eventb.core.ISCRefinesMachine;
-import org.eventb.core.ISCVariable;
-import org.eventb.core.ISCVariant;
-import org.eventb.core.ISCWitness;
-import org.rodinp.core.IInternalElement;
-import org.rodinp.core.IInternalElementType;
-import org.rodinp.core.IRodinFile;
-
-import com.thoughtworks.xstream.XStream;
-
-import de.prob.model.eventb.Context;
-import de.prob.model.eventb.Event;
-import de.prob.model.eventb.Event.EventType;
-import de.prob.model.eventb.EventBAction;
-import de.prob.model.eventb.EventBAxiom;
-import de.prob.model.eventb.EventBConstant;
-import de.prob.model.eventb.EventBGuard;
-import de.prob.model.eventb.EventBInvariant;
-import de.prob.model.eventb.EventBMachine;
-import de.prob.model.eventb.EventBVariable;
-import de.prob.model.eventb.EventParameter;
-import de.prob.model.eventb.Variant;
-import de.prob.model.eventb.Witness;
-import de.prob.model.representation.AbstractElement;
-import de.prob.model.representation.BSet;
-
-public class EventBModelTranslator {
-	//
-	// Map<String, ISCMachineRoot> machines = new HashMap<String,
-	// ISCMachineRoot>();
-	// Map<String, ISCContextRoot> contexts = new HashMap<String,
-	// ISCContextRoot>();
-
-	Map<String, EventBMachine> machines = new HashMap<String, EventBMachine>();
-	Map<String, Context> contexts = new HashMap<String, Context>();
-	File modelFile;
-
-	AbstractElement mainComponent;
-	private final IEventBProject eventBProject;
-
-	public EventBModelTranslator(final IEventBRoot root) {
-		modelFile = root.getUnderlyingResource().getRawLocation().toFile();
-		eventBProject = root.getEventBProject();
-		IInternalElementType<? extends IInternalElement> elementType = root
-				.getElementType();
-		String id = elementType.getId();
-		if (id.equals("org.eventb.core.machineFile")) {
-			ISCMachineRoot scMachineRoot = eventBProject.getSCMachineRoot(root
-					.getElementName());
-			mainComponent = translateMachine(scMachineRoot);
-		}
-		if (id.equals("org.eventb.core.contextFile")) {
-			ISCContextRoot scContextRoot = eventBProject.getSCContextRoot(root
-					.getElementName());
-			mainComponent = translateContext(scContextRoot);
-		}
-	}
-
-	private Context translateContext(final ISCContextRoot root) {
-		String name = root.getComponentName();
-		if (contexts.containsKey(name)) {
-			return contexts.get(name);
-		}
-
-		Context c = new Context(name);
-		try {
-			List<Context> exts = new ArrayList<Context>();
-			for (ISCExtendsContext iscExtendsContext : root
-					.getSCExtendsClauses()) {
-				String componentName = iscExtendsContext.getAbstractSCContext()
-						.getRodinFile().getBareName();
-				exts.add(translateContext(eventBProject
-						.getSCContextRoot(componentName)));
-			}
-			c.addExtends(exts);
-
-			List<BSet> sets = new ArrayList<BSet>();
-			for (ISCCarrierSet iscCarrierSet : root.getSCCarrierSets()) {
-				sets.add(new BSet(iscCarrierSet.getIdentifierString()));
-			}
-			c.addSets(sets);
-
-			List<EventBAxiom> axioms = new ArrayList<EventBAxiom>();
-			for (ISCAxiom iscAxiom : root.getSCAxioms()) {
-				String elementName = iscAxiom.getRodinFile().getBareName();
-				String predicateString = iscAxiom.getPredicateString();
-				boolean theorem = iscAxiom.isTheorem();
-				axioms.add(new EventBAxiom(elementName, predicateString,
-						theorem));
-			}
-			c.addAxioms(axioms);
-
-			List<EventBConstant> constants = new ArrayList<EventBConstant>();
-			for (ISCConstant iscConstant : root.getSCConstants()) {
-				constants.add(new EventBConstant(iscConstant.getElementName()));
-			}
-			c.addConstants(constants);
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-		contexts.put(c.getName(), c);
-		return c;
-	}
-
-	private EventBMachine translateMachine(final ISCMachineRoot root) {
-		String name = root.getComponentName();
-		if (machines.containsKey(name)) {
-			return machines.get(name);
-		}
-
-		EventBMachine machine = new EventBMachine(name);
-
-		try {
-			List<EventBMachine> refines = new ArrayList<EventBMachine>();
-			ISCRefinesMachine[] scRefinesClauses = root.getSCRefinesClauses();
-			for (ISCRefinesMachine iscRefinesMachine : scRefinesClauses) {
-				IRodinFile abstractSCMachine = iscRefinesMachine
-						.getAbstractSCMachine();
-				String bareName = abstractSCMachine.getBareName();
-				refines.add(translateMachine(eventBProject
-						.getSCMachineRoot(bareName)));
-			}
-			machine.addRefines(refines);
-
-			List<Context> sees = new ArrayList<Context>();
-			for (ISCInternalContext iscInternalContext : root
-					.getSCSeenContexts()) {
-				String componentName = iscInternalContext.getComponentName();
-				sees.add(translateContext(eventBProject
-						.getSCContextRoot(componentName)));
-			}
-			machine.addSees(sees);
-
-			List<EventBVariable> variables = new ArrayList<EventBVariable>();
-			for (ISCVariable iscVariable : root.getSCVariables()) {
-				variables.add(new EventBVariable(iscVariable.getElementName()));
-			}
-			machine.addVariables(variables);
-
-			List<EventBInvariant> invariants = new ArrayList<EventBInvariant>();
-			for (ISCInvariant iscInvariant : root.getSCInvariants()) {
-				String elementName = iscInvariant.getElementName();
-				String predicateString = iscInvariant.getPredicateString();
-				boolean theorem = iscInvariant.isTheorem();
-				invariants.add(new EventBInvariant(elementName,
-						predicateString, theorem));
-			}
-			machine.addInvariants(invariants);
-
-			List<Variant> variant = new ArrayList<Variant>();
-			for (ISCVariant iscVariant : root.getSCVariants()) {
-				variant.add(new Variant(iscVariant.getExpressionString()));
-			}
-			machine.addVariant(variant);
-
-			List<Event> events = new ArrayList<Event>();
-			ISCEvent[] scEvents = root.getSCEvents();
-			for (ISCEvent iscEvent : scEvents) {
-				events.add(extractEvent(iscEvent));
-			}
-			machine.addEvents(events);
-		} catch (CoreException e) {
-			e.printStackTrace();
-		}
-		machines.put(machine.getName(), machine);
-		return machine;
-	}
-
-	private Event extractEvent(final ISCEvent iscEvent) throws CoreException {
-		String name = iscEvent.getLabel();
-
-		int typeId = iscEvent.getConvergence().getCode();
-
-		Event e = new Event(name, calculateEventType(typeId));
-
-		List<Event> refines = new ArrayList<Event>();
-		for (ISCRefinesEvent iscRefinesEvent : iscEvent.getSCRefinesClauses()) {
-			refines.add(extractEvent(iscRefinesEvent.getAbstractSCEvent()));
-		}
-		e.addRefines(refines);
-
-		List<EventBGuard> guards = new ArrayList<EventBGuard>();
-		for (ISCGuard iscGuard : iscEvent.getSCGuards()) {
-			String elementName = iscGuard.getElementName();
-			String predicateString = iscGuard.getPredicateString();
-			boolean theorem = iscGuard.isTheorem();
-			guards.add(new EventBGuard(elementName, predicateString, theorem));
-		}
-		e.addGuards(guards);
-
-		List<EventBAction> actions = new ArrayList<EventBAction>();
-		for (ISCAction iscAction : iscEvent.getSCActions()) {
-			String elementName = iscAction.getElementName();
-			String assignmentString = iscAction.getAssignmentString();
-			actions.add(new EventBAction(elementName, assignmentString));
-		}
-		e.addActions(actions);
-
-		List<Witness> witnesses = new ArrayList<Witness>();
-		for (ISCWitness iscWitness : iscEvent.getSCWitnesses()) {
-			String elementName = iscWitness.getElementName();
-			String predicateString = iscWitness.getPredicateString();
-			witnesses.add(new Witness(elementName, predicateString));
-		}
-		e.addWitness(witnesses);
-
-		List<EventParameter> parameters = new ArrayList<EventParameter>();
-		for (ISCParameter iscParameter : iscEvent.getSCParameters()) {
-			parameters.add(new EventParameter(iscParameter
-					.getIdentifierString()));
-		}
-		e.addParameters(parameters);
-
-		return e;
-	}
-
-	private EventType calculateEventType(final int typeId) {
-		Convergence valueOf = Convergence.valueOf(typeId);
-		if (valueOf.equals(Convergence.ORDINARY)) {
-			return EventType.ORDINARY;
-		}
-		if (valueOf.equals(Convergence.CONVERGENT)) {
-			return EventType.CONVERGENT;
-		}
-		if (valueOf.equals(Convergence.ANTICIPATED)) {
-			return EventType.ANTICIPATED;
-		}
-		return null;
-	}
-
-	public AbstractElement getMainComponent() {
-		return mainComponent;
-	}
-
-	public Collection<EventBMachine> getMachines() {
-		return machines.values();
-	}
-
-	public Collection<Context> getContexts() {
-		return contexts.values();
-	}
-
-	public File getModelFile() {
-		return modelFile;
-	}
-
-	public String serialized() {
-		XStream xstream = new XStream();
-		String xml = xstream.toXML(new ModelObject(getMachines(),
-				getContexts(), modelFile, mainComponent));
-		ByteArrayOutputStream out = new ByteArrayOutputStream();
-		GZIPOutputStream gzip;
-		byte[] bytes;
-		try {
-			gzip = new GZIPOutputStream(out);
-			gzip.write(xml.getBytes());
-			gzip.close();
-			bytes = out.toByteArray();
-		} catch (IOException e) {
-			bytes = xml.getBytes();
-		}
-		return Base64.getMimeEncoder().encodeToString(bytes);
-	}
-
-}
diff --git a/de.prob.core/src/de/prob/model/serialize/ModelObject.java b/de.prob.core/src/de/prob/model/serialize/ModelObject.java
deleted file mode 100644
index 16deeb951e9fc51894ea69b2ab0866e0dfb25444..0000000000000000000000000000000000000000
--- a/de.prob.core/src/de/prob/model/serialize/ModelObject.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package de.prob.model.serialize;
-
-import java.io.File;
-import java.util.Collection;
-
-import de.prob.model.eventb.Context;
-import de.prob.model.eventb.EventBMachine;
-import de.prob.model.representation.AbstractElement;
-
-public class ModelObject {
-	final Collection<EventBMachine> machines;
-	final Collection<Context> contexts;
-	final File modelFile;
-	final AbstractElement mainComponent;
-	
-	public ModelObject(Collection<EventBMachine> machines, Collection<Context> contexts, File modelFile, AbstractElement mainComponent) {
-		this.machines = machines;
-		this.contexts = contexts;
-		this.modelFile = modelFile;
-		this.mainComponent = mainComponent;
-	}
-
-	public Collection<EventBMachine> getMachines() {
-		return machines;
-	}
-
-	public Collection<Context> getContexts() {
-		return contexts;
-	}
-
-	public File getModelFile() {
-		return modelFile;
-	}
-
-	public AbstractElement getMainComponent() {
-		return mainComponent;
-	}
-}