diff --git a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/ModelStructureQueryConnectorImpl.java b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/ModelStructureQueryConnectorImpl.java
index 2f284611adfce54d365dae7cf23370323613b4bd..42b42bcc6df608efd0d888e461d9949e51e6bb26 100644
--- a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/ModelStructureQueryConnectorImpl.java
+++ b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/ModelStructureQueryConnectorImpl.java
@@ -16,6 +16,8 @@ import tools.descartes.dql.connector.QueryProgressListener;
 import tools.descartes.dql.connector.kieker.structures.Trace;
 import tools.descartes.dql.connector.kieker.structures.records.EventRecord;
 import tools.descartes.dql.connector.kieker.structures.records.ResourceRecord;
+import tools.descartes.dql.connector.kieker.util.KiekerHelper;
+import tools.descartes.dql.connector.kieker.util.KiekerManager;
 import tools.descartes.dql.core.engine.util.DQLLogger;
 import tools.descartes.dql.models.mapping.domain.DomainFactory;
 import tools.descartes.dql.models.mapping.domain.Entity;
diff --git a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/PerformanceMetricsQueryConnectorImpl.java b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/PerformanceMetricsQueryConnectorImpl.java
index 3b31109ddab925726de4c310915578b8e718cdd1..83d384526d61a61d01387984505b19d4c81c05d4 100644
--- a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/PerformanceMetricsQueryConnectorImpl.java
+++ b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/PerformanceMetricsQueryConnectorImpl.java
@@ -10,18 +10,24 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
 import tools.descartes.dql.connector.AbstractOSGiQueryConnector;
 import tools.descartes.dql.connector.PerformanceMetricsQueryConnector;
 import tools.descartes.dql.connector.QueryProgressListener;
+import tools.descartes.dql.connector.kieker.filter.SessionFilter;
 import tools.descartes.dql.connector.kieker.structures.Component;
 import tools.descartes.dql.connector.kieker.structures.Resource;
+import tools.descartes.dql.connector.kieker.structures.Session;
 import tools.descartes.dql.connector.kieker.structures.Trace;
 import tools.descartes.dql.connector.kieker.structures.identifier.ResourceIdentifier;
 import tools.descartes.dql.connector.kieker.structures.records.EventRecord;
 import tools.descartes.dql.connector.kieker.structures.records.ResourceRecord;
+import tools.descartes.dql.connector.kieker.util.KiekerHelper;
+import tools.descartes.dql.connector.kieker.util.KiekerManager;
 import tools.descartes.dql.models.mapping.domain.ContinuousSeriesResult;
 import tools.descartes.dql.models.mapping.domain.DomainFactory;
 import tools.descartes.dql.models.mapping.domain.Entity;
 import tools.descartes.dql.models.mapping.domain.Probe;
+import tools.descartes.dql.models.mapping.domain.SeriesResultElement;
 import tools.descartes.dql.models.mapping.domain.StatType;
 import tools.descartes.dql.models.mapping.mapping.EntityMapping;
+import tools.descartes.dql.models.mapping.mapping.MappingFactory;
 
 public class PerformanceMetricsQueryConnectorImpl extends AbstractOSGiQueryConnector
 		implements PerformanceMetricsQueryConnector {
@@ -54,81 +60,143 @@ public class PerformanceMetricsQueryConnectorImpl extends AbstractOSGiQueryConne
 		// browse through each entity and its probes
 		// and try to replace the probe with a result
 		for (Entity ent : response.getEntities()) {
-			for (Probe dqlProbe : ent.getProbes()) {
-				for (StatType st : dqlProbe.getStatTypes()) {
-					if (KiekerHelper.METRIC_UTILIZATION.equalsIgnoreCase(dqlProbe.getMetricName())) {
-						if (st.getTypeName().equals("DEFAULT") || st.getTypeName().equals("SAMPLE")) {
-							ContinuousSeriesResult result = DomainFactory.eINSTANCE.createContinuousSeriesResult();
-							result.setXAxisDescription("ms");
-							result.setYAxisDescription("% (between 0 and 1)");
-							ResourceIdentifier dqlId = ResourceIdentifier.createResourceIdentifier("",
-									ent.getIdentifier());
-							Resource res = resourceIds.get(dqlId);
-							if (res != null && resources.get(res) != null
-									&& resources.get(res).getResources().size() > 0) {
-
-								try {
-									for (ResourceRecord record : resources.get(res).getResources()) {
-										// System.out.println("ADDING for
-										// "+ent.getIdentifier()+": Time"
-										// +record.getTimestamp()+" / Util:
-										// "+record.getContent().get(2));
-										result.getElements()
-												.add(KiekerHelper.getSeriesResultElement(record.getTimestamp(),
-														record.getContent().get(2) / 1000 / 1000, firstTs));
+			if (ent.getIdentifier().equals("session") | ent.getAlias().equals("session")) {
+				addSessionResults(ent, resourceIds, firstTs);
+			} else {
+
+				for (Probe dqlProbe : ent.getProbes()) {
+					for (StatType st : dqlProbe.getStatTypes()) {
+						if (KiekerHelper.METRIC_UTILIZATION.equalsIgnoreCase(dqlProbe.getMetricName())) {
+							if (st.getTypeName().equals("DEFAULT") || st.getTypeName().equals("SAMPLE")) {
+								ContinuousSeriesResult result = DomainFactory.eINSTANCE.createContinuousSeriesResult();
+								result.setXAxisDescription("ms");
+								result.setYAxisDescription("% (between 0 and 1)");
+								ResourceIdentifier dqlId = ResourceIdentifier.createResourceIdentifier("",
+										ent.getIdentifier());
+								Resource res = resourceIds.get(dqlId);
+								if (res != null && resources.get(res) != null
+										&& resources.get(res).getResources().size() > 0) {
+
+									try {
+										for (ResourceRecord record : resources.get(res).getResources()) {
+											// System.out.println("ADDING for
+											// "+ent.getIdentifier()+": Time"
+											// +record.getTimestamp()+" / Util:
+											// "+record.getContent().get(2));
+											result.getElements().add(KiekerHelper.getSeriesResultElement(
+													record.getTimestamp(), record.getContent().get(2), firstTs));
+										}
+										result.setValid(true);
+									} catch (NumberFormatException exc) {
+										result.setValid(false);
 									}
-									result.setValid(true);
-								} catch (NumberFormatException exc) {
-									result.setValid(false);
+									st.setResult(result);
 								}
-								st.setResult(result);
+
+							} else {
+								// do nothing
 							}
+						} else if (KiekerHelper.METRIC_RESPONSE_TIME.equalsIgnoreCase(dqlProbe.getMetricName())) {
+							if (st.getTypeName().equals("DEFAULT") || st.getTypeName().equals("SAMPLE")) {
+								ContinuousSeriesResult res = DomainFactory.eINSTANCE.createContinuousSeriesResult();
+								res.setXAxisDescription("ms");
+								res.setYAxisDescription("ms");
+								if (services != null) {
+									try {
+										Component comp = new Component(
+												KiekerHelper.getComponentString(ent.getIdentifier()));
+										Trace tr = services.get(comp);
+										if (tr != null && tr.getEvents().size() > 0) {
+											for (EventRecord er : tr.getEvents()) {
+												String dqlId = ent.getIdentifier();
+
+												String kiekerId = er.getIdentifier().getComponentID();
+												if (er.getIdentifier().isInterfaceIdentifier()) {
+													kiekerId += "." + er.getIdentifier().getInterfaceID();
+												}
+												if (kiekerId.contains(dqlId)) {
+													res.getElements().add(KiekerHelper.getSeriesResultElement(
+															er.getTimestamp(), er.getRuntime(), firstTs));
+												}
 
-						} else {
-							// do nothing
-						}
-					} else if (KiekerHelper.METRIC_RESPONSE_TIME.equalsIgnoreCase(dqlProbe.getMetricName())) {
-						if (st.getTypeName().equals("DEFAULT") || st.getTypeName().equals("SAMPLE")) {
-							ContinuousSeriesResult res = DomainFactory.eINSTANCE.createContinuousSeriesResult();
-							res.setXAxisDescription("ms");
-							res.setYAxisDescription("ms");
-							if (services != null) {
-								try {
-									Component comp = new Component(
-											KiekerHelper.getComponentString(ent.getIdentifier()));
-									Trace tr = services.get(comp);
-									if (tr != null && tr.getEvents().size() > 0) {
-										for (EventRecord er : tr.getEvents()) {
-											String dqlId = ent.getIdentifier();
-
-											String kiekerId = er.getIdentifier().getComponentID();
-											if (er.getIdentifier().isInterfaceIdentifier()) {
-												kiekerId += "." + er.getIdentifier().getInterfaceID();
-											}
-											if (kiekerId.contains(dqlId)) {
-												res.getElements().add(KiekerHelper.getSeriesResultElement(
-														er.getTimestamp(), er.getRuntime(), firstTs));
 											}
-
+											res.setValid(true);
 										}
-										res.setValid(true);
-									}
 
-								} catch (NumberFormatException exc) {
-									res.setValid(false);
+									} catch (NumberFormatException exc) {
+										res.setValid(false);
+									}
+									st.setResult(res);
 								}
-								st.setResult(res);
 							}
+
 						}
 
 					}
-
 				}
 			}
 		}
 
 	}
 
+	private void addSessionResults(Entity entity, Map<ResourceIdentifier, Resource> resourceIds,
+			long firstTs) {
+		Probe probe = DomainFactory.eINSTANCE.createProbe();
+		probe.setMetricName("responseTime");
+		entity.getProbes().add(probe);
+		StatType statType = DomainFactory.eINSTANCE.createStatType();
+		statType.setTypeName("DEFAULT");
+		probe.getStatTypes().add(statType);
+
+		ContinuousSeriesResult result = DomainFactory.eINSTANCE.createContinuousSeriesResult();
+		result.setXAxisDescription("ms");
+		result.setYAxisDescription("% (between 0 and 1)");
+		String abc = "session"; // ent.getIdentifier();
+		ResourceIdentifier dqlId = ResourceIdentifier.createResourceIdentifier("", abc);
+		Resource res = new Resource("session");// resourceIds.get(dqlId);
+		// resourceIds.put(dqlId, res);
+		for (Session session : SessionFilter.sessionTimes) {
+			SeriesResultElement resultElement = KiekerHelper.getSeriesResultElement(session.start, session.duration,
+					firstTs);
+			result.getElements().add(resultElement);
+		}
+		statType.setResult(result);
+	}
+
+	// private void runABC(EntityMapping response, Trace kiekerResults, long
+	// firstTs){
+	// Map<Resource, Trace> resources = kiekerResults.getResourceToTraceMap();
+	// Map<ResourceIdentifier, Resource> resourceIds =
+	// kiekerResults.getResourceIdentifierToResourceMap();
+	// Map<Component, Trace> services = kiekerResults.getComponentToTraceMap();
+	//
+	// ContinuousSeriesResult res =
+	// DomainFactory.eINSTANCE.createContinuousSeriesResult();
+	// res.setXAxisDescription("ms");
+	// res.setYAxisDescription("ms");
+	// if (services != null) {
+	// try {
+	// Component comp = new Component(
+	// KiekerHelper.getComponentString(ent.getIdentifier()));
+	// Trace tr = services.get(comp);
+	// if (tr != null && tr.getEvents().size() > 0) {
+	// EventRecord first = tr.getEvents().get(0);
+	// EventRecord last = tr.getEvents().get(tr.getEvents().size()-1);
+	// double traceTime = last.getTimestamp() + last.getRuntime() -
+	// (first.getTimestamp());
+	// res.getElements().add(KiekerHelper.getSeriesResultElement(
+	// er.getTimestamp(), er.getRuntime(), firstTs));
+	// res.setValid(true);
+	// }
+	//
+	// } catch (NumberFormatException exc) {
+	// res.setValid(false);
+	// }
+	// st.setResult(res);
+	// }
+	// }
+	//
+
 	public void reset() {
 		// Nothing to do here
 	}
diff --git a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/filter/SessionFilter.java b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/filter/SessionFilter.java
new file mode 100644
index 0000000000000000000000000000000000000000..48fb351ba4b9f98f842853678369033374bd404c
--- /dev/null
+++ b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/filter/SessionFilter.java
@@ -0,0 +1,169 @@
+package tools.descartes.dql.connector.kieker.filter;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+
+import kieker.analysis.IProjectContext;
+import kieker.analysis.plugin.annotation.InputPort;
+import kieker.analysis.plugin.annotation.OutputPort;
+import kieker.analysis.plugin.annotation.Plugin;
+import kieker.common.configuration.Configuration;
+import kieker.tools.traceAnalysis.filter.AbstractMessageTraceProcessingFilter;
+import kieker.tools.traceAnalysis.systemModel.AbstractMessage;
+import kieker.tools.traceAnalysis.systemModel.MessageTrace;
+import kieker.tools.traceAnalysis.systemModel.Operation;
+import tools.descartes.dql.connector.kieker.structures.Session;
+
+import org.apache.log4j.Logger;
+
+@Plugin(name = "SessionFilter", description = "...", outputPorts = {
+		@OutputPort(name = SessionFilter.OUTPUT_PORT_NAME_WORKLOAD, description = "Outputs workload description", eventTypes = {
+				HashMap.class }), })
+public class SessionFilter extends AbstractMessageTraceProcessingFilter {
+
+	public static final String INPUT_PORT_NAME_MESSAGE_TRACE = "messageTrace";
+	public static final String OUTPUT_PORT_NAME_WORKLOAD = "workload";
+
+	private static final Logger log = Logger.getLogger(SessionFilter.class);
+	private static HashMap<String, List<Long>> timeSeriesMap;
+	private static HashMap<String, Long> sumMap;
+	public static ArrayList<Session> sessionTimes;
+
+	public SessionFilter(Configuration configuration, IProjectContext projectContext) {
+		super(configuration, projectContext);
+		timeSeriesMap = new HashMap<String, List<Long>>();
+		sumMap = new HashMap<String, Long>();
+		sessionTimes = new ArrayList<Session>();
+	}
+
+	@Override
+	@InputPort(name = AbstractMessageTraceProcessingFilter.INPUT_PORT_NAME_MESSAGE_TRACES, description = "Receives the message traces to be processed", eventTypes = {
+			MessageTrace.class })
+	public void inputMessageTraces(final MessageTrace mt) {
+		long start = mt.getStartTimestamp();
+		long time = (long) ((mt.getEndTimestamp() - mt.getStartTimestamp()) * 0.000001);
+		// mt.getTraceInformation().getSessionId();
+		AbstractMessage message = getStartMessage(mt);
+		long time2 = message.getReceivingExecution().getTin();
+		// double time3 = message.getReceivingExecution().getTout();
+		long time3 = message.getReceivingExecution().getTout();
+
+		Operation operation = message.getReceivingExecution().getOperation();
+		String id = mt.getSessionId();
+		System.out.println(id + ":" + time + "\txxx" + (time3 - time2) * 0.000001 + "\t\t "
+				+ operation.getSignature().getName() + " \t\t||| " + start);
+
+		// addTimeStamp(id, mt.getStartTimestamp());
+		// addTimeStamp(id, mt.getEndTimestamp());
+		// addTimeStamp(id, message.getTimestamp());
+		addTimeStamp(id, message.getReceivingExecution().getTin());
+		addTimeStamp(id, message.getReceivingExecution().getTout());
+		long value = (time3 - time2); //* 0.000001;
+		System.out.println("\t\t\t"+value);
+		addToSumMap(id, value);
+		// addTimeStamp(id, message.getReceivingExecution().getTout());
+		sortMessageTrace(mt);
+	}
+	Comparator<AbstractMessage> timeComparator;
+	
+	private void sortMessageTrace(final MessageTrace mt) {
+		List<AbstractMessage> messages = mt.getSequenceAsVector();
+		messages = new ArrayList<AbstractMessage>(messages);
+		timeComparator = new Comparator<AbstractMessage>() {
+			@Override
+			public int compare(AbstractMessage arg0, AbstractMessage arg1) {
+				return arg0.getReceivingExecution().getEoi() - arg1.getReceivingExecution().getEoi();
+//				if (arg0.getTimestamp() > arg1.getTimestamp()) {
+//					return 1;
+//				} else if (arg0.getTimestamp() < arg1.getTimestamp()) {
+//					return -1;
+//				} else {
+//					return 0;
+//				}
+			}
+		};
+		Collections.sort(messages, timeComparator);
+		for (AbstractMessage message : messages) {
+			if(message.getReceivingExecution().getEoi() == 0){
+				System.out.println(
+					"==>" + message.getReceivingExecution().getOperation().getSignature().getName() + " " + message.getReceivingExecution().getEoi());
+			}else{
+				System.out.println(
+						"" + message.getReceivingExecution().getOperation().getSignature().getName() + " " + message.getReceivingExecution().getEoi());
+			}
+		}
+	}
+
+	AbstractMessage getStartMessage(final MessageTrace mt) {
+		for (AbstractMessage message : mt.getSequenceAsVector()) {
+			System.out.println("\t" + message.getReceivingExecution().getOperation().getSignature().getName() + " "
+					+ message.getTimestamp() + " " + mt.getStartTimestamp());
+			// System.out.println("\t"+message.getReceivingExecution().getTin()
+			// + " "+ message.getReceivingExecution().getTout() + " " +
+			// message.getSendingExecution().getTout() );
+			if (message.getTimestamp() == mt.getStartTimestamp()) {
+				return message;
+			}
+		}
+		return mt.getSequenceAsVector().get(0);
+	}
+
+	private synchronized void addToSumMap(String key, long time){
+		if (!sumMap.containsKey(key)) {
+			sumMap.put(key, time);
+		} else {
+			sumMap.put(key, sumMap.get(key)+ time);
+		}
+	}
+
+	private synchronized void addTimeStamp(String key, long timestamp) {
+		List<Long> timeSeries;
+		if (!timeSeriesMap.containsKey(key)) {
+			timeSeries = new ArrayList<>();
+			timeSeries.add(timestamp);
+			timeSeriesMap.put(key, timeSeries);
+		} else {
+			timeSeries = timeSeriesMap.get(key);
+			timeSeries.add(timestamp);
+		}
+	}
+
+	@Override
+	public void terminate(boolean errorBeforeTermination) {
+		// log.info("workloadddd "+timeSeriesMap);
+		if (timeSeriesMap.isEmpty()) {
+			log.error("Could not extract incoming requests to create workload model");
+		}
+
+		for (String key : timeSeriesMap.keySet()) {
+			List<Long> list = timeSeriesMap.get(key);
+			Collections.sort(timeSeriesMap.get(key));
+			for (long t : list) {
+				//System.out.println("\t\t" + (t * 0.000001));
+			}
+			;
+			long start = Collections.min(list);//list.get(0);
+			long duration = (long) (Collections.max(list) - start);
+//			System.out.println(key + "\t\t" + time + "\t\t\tnumElements:"+list.size()+"\tfirst:" + list.get(0) + "\tlast" + list.get(list.size() - 1));
+//			System.out.println(key + "\t\t" +sumMap.get(key)+ " << sum map");
+			//System.out.println(key + "\t\t" + time + "<< total \t\t" + sumMap.get(key) * 0.000001 + " << processing time");
+			addNewSession(key, start, duration);
+		}
+
+		super.deliver(SessionFilter.OUTPUT_PORT_NAME_WORKLOAD, timeSeriesMap);
+		super.terminate(errorBeforeTermination);
+	}
+
+	private void addNewSession(String key, long start, long duration) {
+		sessionTimes.add(new Session(key, start, duration));
+	}
+
+	@Override
+	public Configuration getCurrentConfiguration() {
+		return this.configuration;
+	}
+
+}
diff --git a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/structures/Configuration.java b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/structures/Configuration.java
index 41f534a03b73ff696be2dfda7ce849e409bbf651..95d9c9ee69b0b36f5e9c33dd6fc0362ecfdf7ea1 100644
--- a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/structures/Configuration.java
+++ b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/structures/Configuration.java
@@ -8,23 +8,19 @@ import java.util.Properties;
 import kieker.common.logging.Log;
 import kieker.common.logging.LogFactory;
 
-public class Configuration extends Properties{
-
+public class Configuration extends Properties {
 
 	private static final long serialVersionUID = 3566582505382356485L;
 	private static final Log log = LogFactory.getLog(Configuration.class);
 
-
 	public Configuration() {
 	}
 
-
 	public Configuration(String key, String sign) {
 		super.put(key, sign);
 	}
 
-
-	public final void setPropertyArray(String key, Object[] sign){
+	public final void setPropertyArray(String key, Object[] sign) {
 		super.setProperty(key, toPropertyString(sign));
 	}
 
@@ -39,7 +35,7 @@ public class Configuration extends Properties{
 		return sb.toString();
 	}
 
-	public static String generateID(Class<?> c){
+	public static String generateID(Class<?> c) {
 		return c.getSimpleName() + "_CONFIG";
 	}
 
@@ -107,12 +103,11 @@ public class Configuration extends Properties{
 		return null;
 	}
 
-
 	public final String[] getPropertyArray(final String key) {
 		super.getProperty(key.trim());
 		String[] out = super.getProperty(key).split("&");
 		for (String str : out) {
-			if (!(str.length()==0 || str == null)) {
+			if (!(str.length() == 0 || str == null)) {
 				str = str.trim();
 			}
 		}
@@ -124,30 +119,28 @@ public class Configuration extends Properties{
 
 		super.load(inStream);
 	}
-	
-	
+
 	public synchronized String toString() {
 		return super.toString();
 	}
 
-	
 	@Override
 	@Deprecated
-	public void putAll(Map<? extends Object,? extends Object> m){
+	public void putAll(Map<? extends Object, ? extends Object> m) {
 		super.putAll(m);
 
 	}
 
 	@Override
 	@Deprecated
-	public Object put(Object key, Object sign){
+	public Object put(Object key, Object sign) {
 		return super.put(key, sign);
 
 	}
 
 	@Override
 	@Deprecated
-	public Object get(Object key){
+	public Object get(Object key) {
 		return super.get(key);
 
 	}
@@ -160,10 +153,9 @@ public class Configuration extends Properties{
 
 	@Override
 	@Deprecated
-	public Object putIfAbsent(Object key, Object sign){
+	public Object putIfAbsent(Object key, Object sign) {
 		return super.putIfAbsent(key, sign);
 
 	}
 
-
 }
diff --git a/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/structures/Session.java b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/structures/Session.java
new file mode 100644
index 0000000000000000000000000000000000000000..089e4984043800e20828698dc6ea51fe8956022a
--- /dev/null
+++ b/tools.descartes.dql.connector.kieker/src/tools/descartes/dql/connector/kieker/structures/Session.java
@@ -0,0 +1,33 @@
+package tools.descartes.dql.connector.kieker.structures;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import tools.descartes.dql.connector.kieker.structures.identifier.ComponentIdentifier;
+import tools.descartes.dql.connector.kieker.structures.identifier.ResourceIdentifier;
+import tools.descartes.dql.connector.kieker.structures.records.AbstractRecord;
+import tools.descartes.dql.connector.kieker.structures.records.EventRecord;
+import tools.descartes.dql.connector.kieker.structures.records.ResourceRecord;
+
+/**
+ * Stores list of event records and offers multiple analysis methods.
+ * 
+ * @author J�rgen Walter
+ */
+public class Session {
+	
+	public String id;
+	public Long start;
+	public Long duration;
+	
+	public Session(	String id, Long start, Long duration) {
+		this.id = id;
+		this.start = start;
+		this.duration = duration;
+	}
+	
+}