Index: trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/php/WeblogParser.java
===================================================================
--- trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/php/WeblogParser.java	(revision 488)
+++ trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/plugin/php/WeblogParser.java	(revision 554)
@@ -16,5 +16,10 @@
 import java.util.Set;
 
-import de.ugoe.cs.quest.plugin.php.eventcore.WebEvent;
+import de.ugoe.cs.quest.eventcore.Event;
+import de.ugoe.cs.quest.eventcore.IEventTarget;
+import de.ugoe.cs.quest.eventcore.IEventType;
+import de.ugoe.cs.quest.plugin.php.eventcore.PHPEventTarget;
+import de.ugoe.cs.quest.plugin.php.eventcore.PHPEventType;
+import de.ugoe.cs.quest.plugin.php.eventcore.WebRequest;
 import de.ugoe.cs.util.FileTools;
 import de.ugoe.cs.util.console.Console;
@@ -67,5 +72,5 @@
 	 * </p>
 	 */
-	private List<List<WebEvent>> sequences;
+	private List<List<Event>> sequences;
 
 	/**
@@ -90,5 +95,5 @@
 	 * </p>
 	 */
-	private List<Collection<List<WebEvent>>> sequencesFrequentUsers;
+	private List<Collection<List<Event>>> sequencesFrequentUsers;
 
 	/**
@@ -145,5 +150,5 @@
 	 * @return generated event sequences
 	 */
-	public Collection<List<WebEvent>> getSequences() {
+	public Collection<List<Event>> getSequences() {
 		return sequences;
 	}
@@ -232,5 +237,5 @@
 	 * @return list of the sequences of all frequent users
 	 */
-	public List<Collection<List<WebEvent>>> getFrequentUserSequences() {
+	public List<Collection<List<Event>>> getFrequentUserSequences() {
 		return sequencesFrequentUsers;
 	}
@@ -255,4 +260,6 @@
 
 		Map<String, List<Integer>> cookieSessionMap = new HashMap<String, List<Integer>>();
+		Map<String, Long> cookieTimestampMap = new HashMap<String, Long>();
+		
 		int lastId = -1;
 
@@ -261,5 +268,5 @@
 		loadRobotRegex();
 
-		sequences = new ArrayList<List<WebEvent>>();
+		sequences = new ArrayList<List<Event>>();
 		users = new ArrayList<String>();
 
@@ -298,6 +305,8 @@
 					List<String> getVars = extractGetVarsFromUri(uri);
 					
-					WebEvent event = new WebEvent(url, path, timestamp,
-							postedVars, getVars);
+					IEventType type = new PHPEventType(path, postedVars, getVars);
+					IEventTarget target = new PHPEventTarget(path);
+					Event event = new Event(type, target);
+					event.addReplayable(new WebRequest(url, path, postedVars, getVars));
 
 					// find session and add event
@@ -308,19 +317,18 @@
 						sessionIds.add(++lastId);
 						cookieSessionMap.put(cookie, sessionIds);
-						sequences.add(new LinkedList<WebEvent>());
+						sequences.add(new LinkedList<Event>());
 						users.add(cookie);
 					}
 					Integer lastSessionIndex = sessionIds
 							.get(sessionIds.size() - 1);
-					List<WebEvent> lastSession = sequences
+					List<Event> lastSession = sequences
 							.get(lastSessionIndex);
 					long lastEventTime = timestamp;
 					if (!lastSession.isEmpty()) {
-						lastEventTime = lastSession.get(lastSession.size() - 1)
-								.getTimestamp();
+						lastEventTime = cookieTimestampMap.get(cookie);
 					}
 					if (timestamp - lastEventTime > timeout) {
 						sessionIds.add(++lastId);
-						List<WebEvent> newSession = new LinkedList<WebEvent>();
+						List<Event> newSession = new LinkedList<Event>();
 						newSession.add(event);
 						sequences.add(newSession);
@@ -329,4 +337,5 @@
 						lastSession.add(event);
 					}
+					cookieTimestampMap.put(cookie, timestamp);
 				} catch (URISyntaxException e) {
 					Console.traceln("Ignored line " + lineCounter + ": "
@@ -358,5 +367,5 @@
 	private void generateFrequentUserSequences(Set<String> uniqueUsers) {
 		frequentUsers = new ArrayList<String>();
-		sequencesFrequentUsers = new ArrayList<Collection<List<WebEvent>>>();
+		sequencesFrequentUsers = new ArrayList<Collection<List<Event>>>();
 		for (String user : uniqueUsers) {
 			List<String> tmp = new ArrayList<String>();
@@ -367,5 +376,5 @@
 			if (size >= frequentUsersThreshold) {
 				frequentUsers.add(user);
-				Collection<List<WebEvent>> sequencesUser = new ArrayList<List<WebEvent>>();
+				Collection<List<Event>> sequencesUser = new ArrayList<List<Event>>();
 				for (int i = 0; i < sequences.size(); i++) {
 					if (users.get(i).equals(user)) {
