Index: /trunk/quest-plugin-mfc-test/src/test/java/de/ugoe/cs/quest/plugin/mfc/MFCLogParserTest.java
===================================================================
--- /trunk/quest-plugin-mfc-test/src/test/java/de/ugoe/cs/quest/plugin/mfc/MFCLogParserTest.java	(revision 705)
+++ /trunk/quest-plugin-mfc-test/src/test/java/de/ugoe/cs/quest/plugin/mfc/MFCLogParserTest.java	(revision 706)
@@ -18,8 +18,9 @@
 import org.junit.Test;
 
-import de.ugoe.cs.quest.ReplayGenerator;
 import de.ugoe.cs.quest.eventcore.Event;
 import de.ugoe.cs.quest.eventcore.guimodel.GUIModel;
+import de.ugoe.cs.util.console.CommandExecuter;
 import de.ugoe.cs.util.console.Console;
+import de.ugoe.cs.util.console.GlobalDataContainer;
 import de.ugoe.cs.util.console.listener.IOutputListener;
 
@@ -137,6 +138,8 @@
         guiModel.dump(System.err);
 
-        ReplayGenerator generator = new ReplayGenerator();
-        generator.createLogfileMultipleSessions(parser.getSequences(), tmpFile.getAbsolutePath());
+        
+        GlobalDataContainer.getInstance().addData("seqs",  parser.getSequences());
+        
+        CommandExecuter.getInstance().exec("generateReplayfile " + tmpFile.getAbsolutePath() + " seqs");
         
         InputStreamReader reader1 = 
Index: unk/quest-ui-core/src/main/java/de/ugoe/cs/quest/ReplayGenerator.java
===================================================================
--- /trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/ReplayGenerator.java	(revision 705)
+++ 	(revision )
@@ -1,190 +1,0 @@
-package de.ugoe.cs.quest;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.util.Collection;
-import java.util.List;
-import java.util.logging.Level;
-
-import de.ugoe.cs.quest.IReplayDecorator;
-import de.ugoe.cs.quest.eventcore.Event;
-import de.ugoe.cs.quest.eventcore.IReplayable;
-import de.ugoe.cs.util.StringTools;
-import de.ugoe.cs.util.console.Console;
-
-/**
- * <p>
- * This class provides the functionality to generate replay files from sequences if
- * {@link ReplayableEvent}s.
- * </p>
- * 
- * TODO: Add appropriate checks if Events are replayable
- * 
- * @author Steffen Herbold
- * @version 1.0
- */
-public class ReplayGenerator {
-
-    /**
-     * <p>
-     * {@link IReplayDecorator} to be used. If this field is {@code null}, no decorator is used.
-     * Default: {@code null}
-     * </p>
-     */
-    private IReplayDecorator decorator = null;
-
-    /**
-     * <p>
-     * Id of the current session. The starting id is 1.
-     * </p>
-     */
-    int sessionId = 1;
-
-    /**
-     * <p>
-     * Creates a replay file that contains multiple event sequences.
-     * </p>
-     * 
-     * @param sequences
-     *            collection of event sequences from which the sessions are generated
-     * @param filename
-     *            name and path of the replay file
-     */
-    public void createLogfileMultipleSessions(Collection<List<Event>> sequences, String filename) {
-        OutputStreamWriter writer = openReplayFile(filename);
-        if (writer != null) {
-            try {
-                try {
-                    decorator =
-                        sequences.iterator().next().get(0).getReplayables().get(0).getDecorator();
-                }
-                catch (Exception e) {
-                    // in the above line, many things can go wrong: emtpy sequences, null
-                    // references, etc. However, all failures just indicate that no replay decorator
-                    // should be used, hence, we ignore the exception
-                }
-                if (decorator != null) {
-                    writer.write(decorator.getHeader());
-                }
-                for (List<Event> actions : sequences) {
-                    writeSession(actions, writer);
-                }
-                if (decorator != null) {
-                    writer.write(decorator.getFooter());
-                }
-                decorator = null;
-                writer.close();
-            }
-            catch (IOException e) {
-                Console.printerrln("Unable to write replay file " + filename);
-            }
-        }
-    }
-
-    /**
-     * <p>
-     * Creates a replay file that from a single event sequence.
-     * </p>
-     * 
-     * @param actions
-     *            event sequence from which the sessions are generated
-     * @param filename
-     *            name and path of the replay file
-     */
-    public void createLogfileSingleSession(List<Event> actions, String filename) {
-        OutputStreamWriter writer = openReplayFile(filename);
-        if (writer != null) {
-            try {
-                try {
-                    decorator = actions.get(0).getReplayables().get(0).getDecorator();
-                }
-                catch (Exception e) {
-                    // in the above line, many things can go wrong: emtpy sequences, null
-                    // references, etc. However, all failures just indicate that no replay decorator
-                    // should be used, hence, we ignore the exception
-                }
-                if (decorator != null) {
-                    writer.write(decorator.getHeader());
-                }
-                writeSession(actions, writer);
-                if (decorator != null) {
-                    writer.write(decorator.getFooter());
-                }
-                decorator = null;
-                writer.close();
-            }
-            catch (IOException e) {
-                Console.printerrln("Unable to write replay file " + filename);
-            }
-        }
-    }
-
-    /**
-     * <p>
-     * Helper function that opens the replay file for writing.
-     * </p>
-     * 
-     * @param filename
-     *            name and path of the replay file
-     * @return {@link OutputStreamWriter} that writes to the replay file
-     */
-    private OutputStreamWriter openReplayFile(String filename) {
-        File file = new File(filename);
-        boolean fileCreated;
-        try {
-            fileCreated = file.createNewFile();
-            if (!fileCreated) {
-                Console.traceln(Level.INFO, "Created logfile " + filename);
-            }
-            else {
-                Console.traceln(Level.INFO, "Overwrote existing logfile " + filename);
-            }
-        }
-        catch (IOException e) {
-            Console.printerrln("Unable to create file " + filename);
-            Console.logException(e);
-        }
-        OutputStreamWriter writer = null;
-        try {
-            writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-16");
-        }
-        catch (IOException e) {
-            Console.printerrln("Unable to open file for writing (read-only file):" + filename);
-            Console.logException(e);
-        }
-        return writer;
-    }
-
-    /**
-     * <p>
-     * Helper function that adds an event sequence to the replay.
-     * </p>
-     * 
-     * @param actions
-     *            event sequences to be added
-     * @param writer
-     *            {@link OutputStreamWriter} to which the replay is added
-     * @throws IOException
-     *             thrown if there is a problem writing to writer
-     */
-    private void writeSession(List<Event> actions, OutputStreamWriter writer) throws IOException {
-        if (decorator != null) {
-            writer.write(decorator.getSessionHeader(sessionId));
-        }
-        for (Event currentAction : actions) {
-
-            List<? extends IReplayable> replayables = currentAction.getReplayables();
-            for (IReplayable replayble : replayables) {
-                writer.write(replayble.getReplay() + StringTools.ENDLINE);
-                writer.flush();
-            }
-        }
-        if (decorator != null) {
-            writer.write(decorator.getSessionFooter(sessionId));
-        }
-        sessionId++;
-    }
-
-}
Index: unk/quest-ui-core/src/main/java/de/ugoe/cs/quest/ui/commands/CMDgenerateRandomReplay.java
===================================================================
--- /trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/ui/commands/CMDgenerateRandomReplay.java	(revision 705)
+++ 	(revision )
@@ -1,81 +1,0 @@
-package de.ugoe.cs.quest.ui.commands;
-
-import java.security.InvalidParameterException;
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-
-import de.ugoe.cs.quest.CommandHelpers;
-import de.ugoe.cs.quest.ReplayGenerator;
-import de.ugoe.cs.quest.eventcore.Event;
-import de.ugoe.cs.quest.usageprofiles.IStochasticProcess;
-import de.ugoe.cs.util.console.Command;
-import de.ugoe.cs.util.console.Console;
-import de.ugoe.cs.util.console.GlobalDataContainer;
-
-/**
- * <p>
- * Command to create a replay file with randomly generated sessions.
- * </p>
- * 
- * @author Steffen Herbold
- * @version 1.0
- */
-public class CMDgenerateRandomReplay implements Command {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see de.ugoe.cs.util.console.Command#help()
-	 */
-	@Override
-	public String help() {
-		return "generateRandomReplay <modelName> <filename> {<numSessions>}";
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see de.ugoe.cs.util.console.Command#run(java.util.List)
-	 */
-	@Override
-	public void run(List<Object> parameters) {
-		String modelname;
-		String filename;
-		int numSessions = 1;
-		try {
-			modelname = (String) parameters.get(0);
-			filename = (String) parameters.get(1);
-			if (parameters.size() < 3) {
-				numSessions = Integer.parseInt((String) parameters.get(2));
-			}
-		} catch (Exception e) {
-			throw new InvalidParameterException();
-		}
-
-		IStochasticProcess model = null;
-		Object dataObject = GlobalDataContainer.getInstance()
-				.getData(modelname);
-		if (dataObject == null) {
-			CommandHelpers.objectNotFoundMessage(modelname);
-			return;
-		}
-		if (!(dataObject instanceof IStochasticProcess)) {
-			CommandHelpers.objectNotType(modelname, "IStochasticProcess");
-			return;
-		}
-		model = (IStochasticProcess) dataObject;
-		Collection<List<Event>> sequences = new LinkedList<List<Event>>();
-		try {
-			for (int i = 0; i < numSessions; i++) {
-				sequences
-						.add((List<Event>) model.randomSequence());
-			}
-		} catch (ClassCastException e) {
-			Console.printerrln("Modeled events don't support replay.");
-		}
-		ReplayGenerator generator = new ReplayGenerator();
-		generator.createLogfileMultipleSessions(sequences, filename);
-	}
-
-}
Index: /trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/ui/commands/CMDgenerateReplayfile.java
===================================================================
--- /trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/ui/commands/CMDgenerateReplayfile.java	(revision 705)
+++ /trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/ui/commands/CMDgenerateReplayfile.java	(revision 706)
@@ -1,13 +1,21 @@
 package de.ugoe.cs.quest.ui.commands;
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
 import java.security.InvalidParameterException;
 import java.util.Collection;
 import java.util.List;
+import java.util.logging.Level;
 
 import de.ugoe.cs.quest.CommandHelpers;
-import de.ugoe.cs.quest.ReplayGenerator;
+import de.ugoe.cs.quest.IReplayDecorator;
 import de.ugoe.cs.quest.SequenceInstanceOf;
 import de.ugoe.cs.quest.eventcore.Event;
+import de.ugoe.cs.quest.eventcore.IReplayable;
+import de.ugoe.cs.util.StringTools;
 import de.ugoe.cs.util.console.Command;
+import de.ugoe.cs.util.console.Console;
 import de.ugoe.cs.util.console.GlobalDataContainer;
 
@@ -16,4 +24,6 @@
  * Command to create a replay file from stored sessions.
  * </p>
+ * 
+ * TODO: Add appropriate checks if Events are replayable
  * 
  * @author Steffen Herbold
@@ -63,7 +73,127 @@
 
 		sequences = (Collection<List<Event>>) dataObject;
-		ReplayGenerator generator = new ReplayGenerator();
-		generator.createLogfileMultipleSessions(sequences, filename);
+		createLogfileMultipleSessions(sequences, filename);
 	}
+	
+	    /**
+	     * <p>
+	     * {@link IReplayDecorator} to be used. If this field is {@code null}, no decorator is used.
+	     * Default: {@code null}
+	     * </p>
+	     */
+	    private IReplayDecorator decorator = null;
 
+	    /**
+	     * <p>
+	     * Id of the current session. The starting id is 1.
+	     * </p>
+	     */
+	    int sessionId = 1;
+
+	    /**
+	     * <p>
+	     * Creates a replay file that contains multiple event sequences.
+	     * </p>
+	     * 
+	     * @param sequences
+	     *            collection of event sequences from which the sessions are generated
+	     * @param filename
+	     *            name and path of the replay file
+	     */
+	    private void createLogfileMultipleSessions(Collection<List<Event>> sequences, String filename) {
+	        OutputStreamWriter writer = openReplayFile(filename);
+	        if (writer != null) {
+	            try {
+	                try {
+	                    decorator =
+	                        sequences.iterator().next().get(0).getReplayables().get(0).getDecorator();
+	                }
+	                catch (Exception e) {
+	                    // in the above line, many things can go wrong: emtpy sequences, null
+	                    // references, etc. However, all failures just indicate that no replay decorator
+	                    // should be used, hence, we ignore the exception
+	                }
+	                if (decorator != null) {
+	                    writer.write(decorator.getHeader());
+	                }
+	                for (List<Event> actions : sequences) {
+	                    writeSession(actions, writer);
+	                }
+	                if (decorator != null) {
+	                    writer.write(decorator.getFooter());
+	                }
+	                decorator = null;
+	                writer.close();
+	            }
+	            catch (IOException e) {
+	                Console.printerrln("Unable to write replay file " + filename);
+	            }
+	        }
+	    }
+
+	    /**
+	     * <p>
+	     * Helper function that opens the replay file for writing.
+	     * </p>
+	     * 
+	     * @param filename
+	     *            name and path of the replay file
+	     * @return {@link OutputStreamWriter} that writes to the replay file
+	     */
+	    private OutputStreamWriter openReplayFile(String filename) {
+	        File file = new File(filename);
+	        boolean fileCreated;
+	        try {
+	            fileCreated = file.createNewFile();
+	            if (!fileCreated) {
+	                Console.traceln(Level.INFO, "Created logfile " + filename);
+	            }
+	            else {
+	                Console.traceln(Level.INFO, "Overwrote existing logfile " + filename);
+	            }
+	        }
+	        catch (IOException e) {
+	            Console.printerrln("Unable to create file " + filename);
+	            Console.logException(e);
+	        }
+	        OutputStreamWriter writer = null;
+	        try {
+	            writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-16");
+	        }
+	        catch (IOException e) {
+	            Console.printerrln("Unable to open file for writing (read-only file):" + filename);
+	            Console.logException(e);
+	        }
+	        return writer;
+	    }
+
+	    /**
+	     * <p>
+	     * Helper function that adds an event sequence to the replay.
+	     * </p>
+	     * 
+	     * @param actions
+	     *            event sequences to be added
+	     * @param writer
+	     *            {@link OutputStreamWriter} to which the replay is added
+	     * @throws IOException
+	     *             thrown if there is a problem writing to writer
+	     */
+	    private void writeSession(List<Event> actions, OutputStreamWriter writer) throws IOException {
+	        if (decorator != null) {
+	            writer.write(decorator.getSessionHeader(sessionId));
+	        }
+	        for (Event currentAction : actions) {
+
+	            List<? extends IReplayable> replayables = currentAction.getReplayables();
+	            for (IReplayable replayble : replayables) {
+	                writer.write(replayble.getReplay() + StringTools.ENDLINE);
+	                writer.flush();
+	            }
+	        }
+	        if (decorator != null) {
+	            writer.write(decorator.getSessionFooter(sessionId));
+	        }
+	        sessionId++;
+	    }
 }
