Index: trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/EventGenerator.java
===================================================================
--- trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/EventGenerator.java	(revision 560)
+++ trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/EventGenerator.java	(revision 566)
@@ -18,7 +18,8 @@
 
 import de.ugoe.cs.quest.eventcore.Event;
+import de.ugoe.cs.quest.plugin.mfc.eventcore.MFCEventTarget;
+import de.ugoe.cs.quest.plugin.mfc.eventcore.MFCEventType;
 import de.ugoe.cs.quest.plugin.mfc.eventcore.WindowTree;
 import de.ugoe.cs.quest.plugin.mfc.eventcore.WindowTreeNode;
-import de.ugoe.cs.quest.plugin.mfc.eventcore.WindowsEvent;
 import de.ugoe.cs.quest.plugin.mfc.eventcore.WindowsMessage;
 import de.ugoe.cs.util.console.Console;
@@ -81,5 +82,12 @@
 	 * </p>
 	 */
-	private WindowsEvent currentToken;
+	private Event currentToken;
+	
+	/**
+	 * <p>
+	 * Event type of the current token. Stored as a member to be able to update it during the parsing of the idinfo tag.
+	 * </p>
+	 */
+	private MFCEventType currentType;
 
 	/**
@@ -132,5 +140,5 @@
 	 */
 	@SuppressWarnings("unchecked")
-	public WindowsEvent generateEvent(List<WindowsMessage> sequence) {
+	public Event generateEvent(List<WindowsMessage> sequence) {
 		Document rulesDoc = getDocument(rulesFile);
 		Element rulesRoot = rulesDoc.getRootElement();
@@ -144,6 +152,7 @@
 			Element currentRule = ruleElements.get(ruleIndex);
 			currentRuleName = currentRule.getAttributeValue("name");
-			currentToken = new WindowsEvent(currentRuleName);
-			currentToken.setDecorator(MFCReplayDecorator.getInstance());
+			currentType = new MFCEventType(currentRuleName);
+			currentToken = new Event(currentType);
+			
 			isMatch = true;
 			messageStorage = new HashMap<String, Object>();
@@ -183,13 +192,13 @@
 						} catch (InvalidParameterException e) {
 							Console.printerrln(e.getMessage());
-							currentToken.invalidateReplay();
+							// TODO currentToken.invalidateReplay();
 						}
 					} else if (genMsgElement.getName().equals("genMsgSeq")) {
 						try {
 							generateReplaySequence(genMsgElement);
-							currentToken.invalidateReplay();
+							// TODO currentToken.invalidateReplay();
 						} catch (InvalidParameterException e) {
 							Console.printerrln(e.getMessage());
-							currentToken.invalidateReplay();
+							// TODO currentToken.invalidateReplay();
 						}
 					}
@@ -200,9 +209,8 @@
 					// cannot be empty if document is valid
 					List<Element> valueElements = idinfoElement.getChildren();
-					currentToken.setIdInfo(getTermValue(null,
+					currentType.setInfo(getTermValue(null,
 							valueElements.get(0)));
 				}
-				Console.traceln(currentRule.getAttributeValue("name")
-						+ currentToken.getIdInfo() + " matched");
+				Console.traceln(currentToken.getType().toString() + " matched");
 			} else {
 				currentToken = null;
@@ -249,8 +257,7 @@
 				if (isMatch) {
 					handleStorage(messageElement, currentMessage);
-					currentToken.setTarget(currentMessage
-							.getXmlWindowDescription());
-					currentToken
-							.setTargetShort(currentMessage.getParentNames());
+					currentToken.setTarget(new MFCEventTarget(currentMessage
+							.getXmlWindowDescription()));
+					// TODO currentToken.setTargetShort(currentMessage.getParentNames());
 				}
 			}
@@ -298,8 +305,7 @@
 				if (isCurrentMatch) {
 					handleStorage(messageElement, currentMessage);
-					currentToken.setTarget(currentMessage
-							.getXmlWindowDescription());
-					currentToken
-							.setTargetShort(currentMessage.getParentNames());
+					currentToken.setTarget(new MFCEventTarget(currentMessage
+							.getXmlWindowDescription()));
+					// TODO currentToken.setTargetShort(currentMessage.getParentNames());
 				}
 			}
@@ -516,7 +522,7 @@
 			generatedMessage.setDelay(delay);
 		} else {
-			currentToken.invalidateReplay();
-		}
-		currentToken.addReplayEvent(generatedMessage);
+			// TODO currentToken.invalidateReplay();
+		}
+		currentToken.addReplayable(generatedMessage);
 	}
 
@@ -568,5 +574,5 @@
 			}
 		}
-		currentToken.addReplaySequence(generatedMessageSeq);
+		currentToken.addReplayableSequence(generatedMessageSeq);
 	}
 
Index: trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/MFCLogParser.java
===================================================================
--- trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/MFCLogParser.java	(revision 560)
+++ trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/MFCLogParser.java	(revision 566)
@@ -23,6 +23,6 @@
 import org.xml.sax.helpers.DefaultHandler;
 
+import de.ugoe.cs.quest.eventcore.Event;
 import de.ugoe.cs.quest.plugin.mfc.eventcore.WindowTree;
-import de.ugoe.cs.quest.plugin.mfc.eventcore.WindowsEvent;
 import de.ugoe.cs.quest.plugin.mfc.eventcore.WindowsMessage;
 import de.ugoe.cs.util.StringTools;
@@ -71,5 +71,5 @@
 	 * </p>
 	 */
-	private Collection<List<WindowsEvent>> sequences;
+	private Collection<List<Event>> sequences;
 
 	/**
@@ -110,5 +110,5 @@
 	public MFCLogParser(boolean countMessageOccurences) {
 		sequenceSplitter = new SequenceSplitter();
-		sequences = new LinkedList<List<WindowsEvent>>();
+		sequences = new LinkedList<List<Event>>();
 		currentHandler = null;
 		this.countMessageOccurences = countMessageOccurences;
@@ -127,5 +127,5 @@
 	 * @return collection of event sequences
 	 */
-	public Collection<List<WindowsEvent>> getSequences() {
+	public Collection<List<Event>> getSequences() {
 		return sequences;
 	}
@@ -209,5 +209,5 @@
 		} else if (qName.equals("session")) {
 			sequenceSplitter.endSession();
-			List<WindowsEvent> seq = sequenceSplitter.getSequence();
+			List<Event> seq = sequenceSplitter.getSequence();
 			if( seq!=null && !seq.isEmpty() ) {
 				sequences.add(seq);
Index: trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/SequenceSplitter.java
===================================================================
--- trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/SequenceSplitter.java	(revision 560)
+++ trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/SequenceSplitter.java	(revision 566)
@@ -5,5 +5,4 @@
 
 import de.ugoe.cs.quest.eventcore.Event;
-import de.ugoe.cs.quest.plugin.mfc.eventcore.WindowsEvent;
 import de.ugoe.cs.quest.plugin.mfc.eventcore.WindowsMessage;
 import de.ugoe.cs.util.console.Console;
@@ -57,5 +56,5 @@
 	 * </p>
 	 */
-	private List<WindowsEvent> actionSequence;
+	private List<Event> actionSequence;
 
 	/**
@@ -76,5 +75,5 @@
 		initMessages = true;
 		tokenGenerator = new EventGenerator();
-		actionSequence = new LinkedList<WindowsEvent>();
+		actionSequence = new LinkedList<Event>();
 		prevMsg = 0;
 	}
@@ -91,5 +90,5 @@
 		if (startOfSequence(msg)) {
 			if (!initMessages) {
-				WindowsEvent currentAction = tokenGenerator
+				Event currentAction = tokenGenerator
 						.generateEvent(currentSequence);
 				if (currentAction != null) {
@@ -129,5 +128,5 @@
 	 * @return generated event sequence
 	 */
-	public List<WindowsEvent> getSequence() {
+	public List<Event> getSequence() {
 		return actionSequence;
 	}
@@ -140,5 +139,5 @@
 	 */
 	public void endSession() {
-		WindowsEvent currentAction = tokenGenerator
+		Event currentAction = tokenGenerator
 				.generateEvent(currentSequence);
 		if (currentAction != null) {
Index: trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/commands/CMDparseXML.java
===================================================================
--- trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/commands/CMDparseXML.java	(revision 560)
+++ trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/commands/CMDparseXML.java	(revision 566)
@@ -7,8 +7,8 @@
 
 import de.ugoe.cs.quest.CommandHelpers;
+import de.ugoe.cs.quest.eventcore.Event;
 import de.ugoe.cs.quest.plugin.mfc.MFCLogParser;
 import de.ugoe.cs.quest.plugin.mfc.eventcore.MFCTargetComparator;
 import de.ugoe.cs.quest.plugin.mfc.eventcore.WindowTree;
-import de.ugoe.cs.quest.plugin.mfc.eventcore.WindowsEvent;
 import de.ugoe.cs.quest.ui.GlobalDataContainer;
 import de.ugoe.cs.util.console.Command;
@@ -63,12 +63,12 @@
 		parser.parseFile(filename);
 
-		Collection<List<WindowsEvent>> sequences = parser.getSequences();
+		Collection<List<Event>> sequences = parser.getSequences();
 		
 		Console.traceln("Pre-computing event target equalities.");
 		// compare all Events to a dummy event to make sure they are known by
 		// the MFCTargetComparator
-		WindowsEvent dummyEvent = new WindowsEvent("dummy");
-		for (List<WindowsEvent> sequence : sequences) {
-			for (WindowsEvent event : sequence) {
+		Event dummyEvent = Event.STARTEVENT;
+		for (List<Event> sequence : sequences) {
+			for (Event event : sequence) {
 				event.equals(dummyEvent);
 			}
Index: trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/MFCEventTarget.java
===================================================================
--- trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/MFCEventTarget.java	(revision 566)
+++ trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/MFCEventTarget.java	(revision 566)
@@ -0,0 +1,46 @@
+
+package de.ugoe.cs.quest.plugin.mfc.eventcore;
+
+import de.ugoe.cs.quest.eventcore.IEventTarget;
+
+/**
+ * 
+ * <p>
+ * TODO comment
+ * </p>
+ * 
+ * @version $Revision: $ $Date: Aug 17, 2012$
+ * @author 2012, last modified by $Author: sherbold$
+ */
+public class MFCEventTarget implements IEventTarget {
+
+    /**  */
+    private static final long serialVersionUID = 1L;
+
+    private String targetString;
+
+    public MFCEventTarget(String targetString) {
+        this.targetString = targetString;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see de.ugoe.cs.quest.eventcore.IEventTarget#getPlatform()
+     */
+    @Override
+    public String getPlatform() {
+        return "MFC";
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        return targetString;
+    }
+
+}
Index: trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/MFCEventType.java
===================================================================
--- trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/MFCEventType.java	(revision 566)
+++ trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/MFCEventType.java	(revision 566)
@@ -0,0 +1,55 @@
+
+package de.ugoe.cs.quest.plugin.mfc.eventcore;
+
+import de.ugoe.cs.quest.eventcore.IEventType;
+
+/**
+ * <p>
+ * TODO comment
+ * </p>
+ * 
+ * @version $Revision: $ $Date: Aug 17, 2012$
+ * @author 2012, last modified by $Author: sherbold$
+ */
+public class MFCEventType implements IEventType {
+
+    /**  */
+    private static final long serialVersionUID = 1L;
+
+    private final String typeString;
+    
+    private String info = null;
+
+    public MFCEventType(String typeString) {
+        this.typeString = typeString;
+    }
+    
+    public void setInfo(String info) {
+        this.info = info;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see de.ugoe.cs.quest.eventcore.IEventType#getName()
+     */
+    @Override
+    public String getName() {
+        return "MFCEventType";
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        String str = typeString;
+        if( info!=null ) {
+            str += "." + info;
+        }
+        return str;
+    }
+
+}
Index: trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/WindowsEvent.java
===================================================================
--- trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/WindowsEvent.java	(revision 560)
+++ trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/WindowsEvent.java	(revision 566)
@@ -10,5 +10,6 @@
 import org.w3c.dom.NodeList;
 
-import de.ugoe.cs.quest.eventcore.ReplayableEvent;
+import de.ugoe.cs.quest.eventcore.Event;
+
 
 /**
@@ -19,6 +20,7 @@
  * @author Steffen Herbold
  * @version 1.0
+ * @deprecated This class is deprecated and only kept for now for documentation - some features still need to be extracted and reconstructed elsewhere
  */
-public class WindowsEvent extends ReplayableEvent<WindowsMessage> {
+public class WindowsEvent extends Event {
 
 	/**
@@ -39,15 +41,15 @@
 	 */
 	public WindowsEvent(String type) {
-		super(type);
+		super(new MFCEventType("foo"));
 	}
 
-	@Override
+	//@Override
 	protected boolean targetEquals(String otherTarget) {
-		return MFCTargetComparator.compare(target, otherTarget);
+		return MFCTargetComparator.compare(target.toString(), otherTarget);
 	}
 	
 	int targetHash = 0;
 	
-	@Override
+	//@Override
 	protected int targetHashCode() {
 		if( targetHash==0 ) {
Index: trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/WindowsMessage.java
===================================================================
--- trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/WindowsMessage.java	(revision 560)
+++ trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/mfc/eventcore/WindowsMessage.java	(revision 566)
@@ -5,5 +5,7 @@
 import java.util.Map;
 
+import de.ugoe.cs.quest.IReplayDecorator;
 import de.ugoe.cs.quest.eventcore.IReplayable;
+import de.ugoe.cs.quest.plugin.mfc.MFCReplayDecorator;
 import de.ugoe.cs.util.StringTools;
 
@@ -509,12 +511,10 @@
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see de.ugoe.cs.quest.eventcore.IReplayable#getTarget()
-	 */
-	@Override
-	public String getTarget() {
-		return xmlWindowDescription;
-	}
+    /* (non-Javadoc)
+     * @see de.ugoe.cs.quest.eventcore.IReplayable#getDecorator()
+     */
+    @Override
+    public IReplayDecorator getDecorator() {
+        return MFCReplayDecorator.getInstance();
+    }
 }
