Index: /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/DotPrinter.java
===================================================================
--- /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/DotPrinter.java	(revision 19)
+++ /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/DotPrinter.java	(revision 19)
@@ -0,0 +1,5 @@
+package de.ugoe.cs.eventbench.models;
+
+public interface DotPrinter {
+	public abstract void printDot();
+}
Index: /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/FirstOrderMarkovModel.java
===================================================================
--- /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/FirstOrderMarkovModel.java	(revision 18)
+++ /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/FirstOrderMarkovModel.java	(revision 19)
@@ -6,5 +6,4 @@
 
 import de.ugoe.cs.eventbench.data.Event;
-import de.ugoe.cs.eventbench.markov.DotPrinter;
 import de.ugoe.cs.util.console.Console;
 import edu.uci.ics.jung.graph.Graph;
Index: /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/IMemory.java
===================================================================
--- /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/IMemory.java	(revision 19)
+++ /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/IMemory.java	(revision 19)
@@ -0,0 +1,40 @@
+package de.ugoe.cs.eventbench.models;
+
+import java.util.List;
+
+/**
+ * <p>
+ * This interface defines basic functions for classes that implement a memory
+ * about the recent events of a sequences.
+ * </p>
+ * 
+ * @author Steffen Herbold
+ * @version 1.0
+ * 
+ * @param <T>
+ *            Type of the sequence elements that are memorized.
+ */
+public interface IMemory<T> {
+
+	/**
+	 * Adds an element to the end of the memory.
+	 * 
+	 * @param element
+	 *            Element to be added.
+	 */
+	public void add(T element);
+
+	/**
+	 * <p>
+	 * Returns the last <code>num</code> memorized elements. If the history is
+	 * shorter than <code>num</code>, the length of the returned
+	 * {@link java.util.List} may be less than <code>num</code>.
+	 * </p>
+	 * 
+	 * @param num
+	 *            Number of states from the end of the memory to be returned.
+	 * @return {@link java.util.List} of memorized elements.
+	 */
+	public List<T> getLast(int num);
+
+}
Index: /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/IncompleteMemory.java
===================================================================
--- /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/IncompleteMemory.java	(revision 19)
+++ /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/IncompleteMemory.java	(revision 19)
@@ -0,0 +1,33 @@
+package de.ugoe.cs.eventbench.models;
+
+import java.util.LinkedList;
+import java.util.List;
+
+public class IncompleteMemory<T> implements IMemory<T> {
+
+	private int length;
+	
+	private List<T> history;
+	
+	public IncompleteMemory(int length) {
+		this.length = length;
+		history = new LinkedList<T>();
+	}
+	
+	@Override
+	public void add(T state) {
+		if( history.size()==length ) {
+			history.remove(0);
+		}
+		history.add(state);
+	}
+
+	@Override
+	public List<T> getLast(int num) {
+		return new LinkedList<T>(history); // defensive copy
+	}
+
+	public int getLength() {
+		return history.size();
+	}
+}
Index: /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/Trie.java
===================================================================
--- /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/Trie.java	(revision 18)
+++ /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/Trie.java	(revision 19)
@@ -13,5 +13,4 @@
 import org.apache.commons.collections15.Transformer;
 
-import de.ugoe.cs.eventbench.markov.IncompleteMemory;
 
 import edu.uci.ics.jung.algorithms.layout.Layout;
Index: /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/TrieBasedModel.java
===================================================================
--- /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/TrieBasedModel.java	(revision 18)
+++ /trunk/EventBenchCore/src/de/ugoe/cs/eventbench/models/TrieBasedModel.java	(revision 19)
@@ -6,5 +6,4 @@
 
 import de.ugoe.cs.eventbench.data.Event;
-import de.ugoe.cs.eventbench.markov.IncompleteMemory;
 
 public abstract class TrieBasedModel implements IStochasticProcess {
