Index: trunk/autoquest-core-tasktrees-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/TaskSymbolBucketedMapTest.java
===================================================================
--- trunk/autoquest-core-tasktrees-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/TaskSymbolBucketedMapTest.java	(revision 1285)
+++ trunk/autoquest-core-tasktrees-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/TaskSymbolBucketedMapTest.java	(revision 1294)
@@ -28,5 +28,8 @@
 import org.junit.Test;
 
+import de.ugoe.cs.autoquest.eventcore.Event;
 import de.ugoe.cs.autoquest.tasktrees.taskequality.TaskEquality;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTaskInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskFactory;
@@ -60,6 +63,6 @@
     @Test
     public void testSymbolMap_1() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         assertNotNull(symbolMap);
@@ -69,6 +72,6 @@
     @Test
     public void testSymbolMap_2() {
-        TaskSymbolBucketedMap<String> symbolMap1 =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        TaskSymbolBucketedMap<String> symbolMap1 = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         ITaskInstance taskInstance = createTaskInstance("symbol");
@@ -89,6 +92,6 @@
     @Test
     public void testAddSymbol_1() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         ITaskInstance taskInstance = createTaskInstance("symbol");
@@ -102,6 +105,6 @@
     @Test
     public void testAddSymbol_2() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -122,6 +125,6 @@
     @Test
     public void testAddSymbol_3() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -148,6 +151,6 @@
     @Test(expected = java.lang.IllegalArgumentException.class)
     public void testAddSymbol_4() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         symbolMap.addSymbol(null, null);
@@ -156,6 +159,6 @@
     @Test
     public void testSize_1() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         assertEquals(0, symbolMap.size());
@@ -164,6 +167,6 @@
     @Test
     public void testSize_2() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         symbolMap.addSymbol(createTaskInstance("symbol1"), "value1");
@@ -174,6 +177,6 @@
     @Test
     public void testSize_3() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -188,6 +191,6 @@
     @Test
     public void testSize_4() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -207,6 +210,6 @@
     @Test
     public void testSize_5() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -225,6 +228,6 @@
     @Test
     public void testIsEmpty_1() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         assertTrue(symbolMap.isEmpty());
@@ -233,6 +236,6 @@
     @Test
     public void testIsEmpty_2() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         symbolMap.addSymbol(createTaskInstance("symbol1"), "value1");
@@ -243,6 +246,6 @@
     @Test
     public void testIsEmpty_3() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -257,6 +260,6 @@
     @Test
     public void testIsEmpty_4() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -276,6 +279,6 @@
     @Test
     public void testIsEmpty_5() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -294,6 +297,6 @@
     @Test
     public void testContainsSymbol_1() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         assertFalse(symbolMap.containsSymbol(createTaskInstance("symbol")));
@@ -302,6 +305,6 @@
     @Test
     public void testContainsSymbol_2() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         symbolMap.addSymbol(createTaskInstance("symbol1"), "value1");
@@ -312,6 +315,6 @@
     @Test
     public void testContainsSymbol_3() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -328,6 +331,6 @@
     @Test
     public void testContainsSymbol_4() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -349,6 +352,6 @@
     @Test
     public void testContainsSymbol_5() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -377,6 +380,6 @@
     @Test(expected = java.lang.IllegalArgumentException.class)
     public void testContainsSymbol_6() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         symbolMap.containsSymbol(null);
@@ -385,6 +388,6 @@
     @Test
     public void testGetValue_1() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         assertNull(symbolMap.getValue(createTaskInstance("symbol")));
@@ -393,6 +396,6 @@
     @Test
     public void testGetValue_2() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         symbolMap.addSymbol(createTaskInstance("symbol1"), "value1");
@@ -403,6 +406,6 @@
     @Test
     public void testGetValue_3() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         symbolMap.addSymbol(createTaskInstance("symbol1"), null);
@@ -413,6 +416,6 @@
     @Test
     public void testGetValue_4() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -429,6 +432,6 @@
     @Test
     public void testGetValue_5() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -455,6 +458,6 @@
     @Test
     public void testGetValue_6() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -483,6 +486,6 @@
     @Test(expected = java.lang.IllegalArgumentException.class)
     public void testGetValue_7() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         symbolMap.getValue(null);
@@ -491,6 +494,6 @@
     @Test
     public void testRemoveSymbol_1() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         assertNull(symbolMap.removeSymbol(createTaskInstance("symbol")));
@@ -499,6 +502,6 @@
     @Test
     public void testRemoveSymbol_2() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         symbolMap.addSymbol(createTaskInstance("symbol1"), "value1");
@@ -510,6 +513,6 @@
     @Test
     public void testRemoveSymbol_3() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         symbolMap.addSymbol(createTaskInstance("symbol1"), null);
@@ -521,6 +524,6 @@
     @Test
     public void testRemoveSymbol_4() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -539,6 +542,6 @@
     @Test
     public void testRemoveSymbol_5() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -567,6 +570,6 @@
     @Test
     public void testRemoveSymbol_6() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -597,6 +600,6 @@
     @Test(expected = java.lang.IllegalArgumentException.class)
     public void testRemoveSymbol_7() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         symbolMap.removeSymbol(null);
@@ -605,6 +608,6 @@
     @Test
     public void testGetSymbols_1() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         assertNotNull(symbolMap.getSymbols());
@@ -614,6 +617,6 @@
     @Test
     public void testGetSymbols_2() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
          
         ITaskInstance task = createTaskInstance("symbol1");
@@ -627,6 +630,6 @@
     @Test
     public void testGetSymbols_3() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         ITaskInstance task = createTaskInstance("symbol1");
@@ -640,6 +643,6 @@
     @Test
     public void testGetSymbols_4() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         Set<ITaskInstance> expectedSymbols = new HashSet<ITaskInstance>();
         
@@ -667,6 +670,6 @@
     @Test
     public void testGetSymbols_5() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         Set<ITaskInstance> expectedSymbols = new HashSet<ITaskInstance>();
         
@@ -701,6 +704,6 @@
     @Test
     public void testGetSymbols_6() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         List<ITaskInstance> expectedSymbols = new ArrayList<ITaskInstance>();
         
@@ -732,6 +735,6 @@
     @Test
     public void testGetValues_1() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         assertNotNull(symbolMap.getValues());
@@ -741,6 +744,6 @@
     @Test
     public void testGetValues_2() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         symbolMap.addSymbol(createTaskInstance("symbol1"), "value1");
@@ -753,6 +756,6 @@
     @Test
     public void testGetValues_3() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         symbolMap.addSymbol(createTaskInstance("symbol1"), null);
@@ -765,6 +768,6 @@
     @Test
     public void testGetValues_4() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         Set<String> expectedValues = new HashSet<String>();
         
@@ -791,6 +794,6 @@
     @Test
     public void testGetValues_5() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         Set<String> expectedValues = new HashSet<String>();
         
@@ -823,6 +826,6 @@
     @Test
     public void testGetValues_6() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         Set<String> expectedValues = new HashSet<String>();
         
@@ -854,6 +857,6 @@
     @Test
     public void testClear_1() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         symbolMap.clear();
@@ -863,6 +866,6 @@
     @Test
     public void testClear_2() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         symbolMap.addSymbol(createTaskInstance("symbol1"), "value1");
@@ -874,6 +877,6 @@
     @Test
     public void testClear_3() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         symbolMap.addSymbol(createTaskInstance("symbol1"), null);
@@ -885,6 +888,6 @@
     @Test
     public void testClear_4() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -900,6 +903,6 @@
     @Test
     public void testClear_5() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -920,6 +923,6 @@
     @Test
     public void testClear_6() {
-        SymbolMap<ITaskInstance, String> symbolMap =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 2000;
@@ -939,9 +942,9 @@
     @Test
     public void testEquals_1() {
-        SymbolMap<ITaskInstance, String> symbolMap1 =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
-        
-        SymbolMap<ITaskInstance, String> symbolMap2 =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap1 = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        
+        SymbolMap<ITaskInstance, String> symbolMap2 = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         assertTrue(symbolMap1.equals(symbolMap2));
@@ -950,9 +953,9 @@
     @Test
     public void testEquals_2() {
-        SymbolMap<ITaskInstance, String> symbolMap1 =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
-            
-        SymbolMap<ITaskInstance, String> symbolMap2 =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap1 = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
+            
+        SymbolMap<ITaskInstance, String> symbolMap2 = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
             
         symbolMap1.addSymbol(createTaskInstance("symbol1"), "value1");
@@ -963,9 +966,9 @@
     @Test
     public void testEquals_3() {
-        SymbolMap<ITaskInstance, String> symbolMap1 =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
-            
-        SymbolMap<ITaskInstance, String> symbolMap2 =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap1 = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
+            
+        SymbolMap<ITaskInstance, String> symbolMap2 = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         ITaskInstance task = createTaskInstance("symbol1");
@@ -978,9 +981,9 @@
     @Test
     public void testEquals_4() {
-        SymbolMap<ITaskInstance, String> symbolMap1 =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap1 = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
                 
-        SymbolMap<ITaskInstance, String> symbolMap2 =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap2 = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 1000;
@@ -997,9 +1000,9 @@
     @Test
     public void testEquals_5() {
-        SymbolMap<ITaskInstance, String> symbolMap1 =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap1 = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
                
-        SymbolMap<ITaskInstance, String> symbolMap2 =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap2 = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 1000;
@@ -1024,9 +1027,9 @@
     @Test
     public void testEquals_6() {
-        SymbolMap<ITaskInstance, String> symbolMap1 =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap1 = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
                 
-        SymbolMap<ITaskInstance, String> symbolMap2 =
-            new TaskSymbolBucketedMap<String>(new TaskComparator(TaskEquality.SEMANTICALLY_EQUAL));
+        SymbolMap<ITaskInstance, String> symbolMap2 = new TaskSymbolBucketedMap<String>
+            (new TaskInstanceComparator(TaskEquality.SEMANTICALLY_EQUAL));
         
         int entryCount = 1000;
@@ -1052,22 +1055,21 @@
     
     /**
-     * <p>
-     * TODO: comment
-     * </p>
      *
-     * @param string
-     * @return
      */
     private ITaskInstance createTaskInstance(String id) {
         ITask task = tasks.get(id);
-        
+        Event event = null;
+       
         if (task == null) {
-            task = taskFactory.createNewEventTask
-                (new DummyInteraction(id, 0), new DummyGUIElement("default"));
-            
+            event = new Event(new DummyInteraction(id, 0), new DummyGUIElement("default"));
+            task = taskFactory.createNewEventTask(event.toString());
+           
             tasks.put(id, task);
         }
-        
-        return taskFactory.createNewTaskInstance(task);
+        else {
+            event = ((IEventTaskInstance) task.getInstances().iterator().next()).getEvent();
+        }
+       
+        return taskFactory.createNewTaskInstance((IEventTask) task, event);
     }
 
