Index: /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/NoLetterOrDigitTextInputsEvaluatorTest.java
===================================================================
--- /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/NoLetterOrDigitTextInputsEvaluatorTest.java	(revision 1170)
+++ /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/NoLetterOrDigitTextInputsEvaluatorTest.java	(revision 1171)
@@ -27,7 +27,7 @@
 import com.google.common.base.Optional;
 
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.result.UsabilityDefect;
-import de.ugoe.cs.autoquest.usability.rules.metrics.NoLetterOrDigitRatioMetric;
+import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskModelUtil;
 
 /**
@@ -38,5 +38,5 @@
  * @author Alexander Deicke
  */
-public class NoLetterOrDigitTextInputsEvaluatorTest extends AbstractUsabilityEvaluationTC {
+public class NoLetterOrDigitTextInputsEvaluatorTest {
 
     @Test
@@ -46,5 +46,5 @@
                       "  TextInput () {}" + 
                       "}";
-        ITaskTree taskTree = createTaskTree(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
         Optional<UsabilityDefect> recommendation = new NoLetterOrDigitRatioMetric(taskTree).calculate();
@@ -61,5 +61,5 @@
                          "12345678901234567890123456789012345) {}" + 
             "}";
-        ITaskTree taskTree = createTaskTree(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
         Optional<UsabilityDefect> recommendation = new NoLetterOrDigitRatioMetric(taskTree).calculate();
@@ -75,5 +75,5 @@
             "  TextInput (123456789012345678901234567890_123456789012345) {}" + 
             "}";
-        ITaskTree taskTree = createTaskTree(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
         Optional<UsabilityDefect> recommendation = new NoLetterOrDigitRatioMetric(taskTree).calculate();
@@ -88,5 +88,5 @@
                       "  TextInput (12345_6789012345) {}" + 
                       "}";
-        ITaskTree taskTree = createTaskTree(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
         Optional<UsabilityDefect> recommendation = new NoLetterOrDigitRatioMetric(taskTree).calculate();
@@ -101,5 +101,5 @@
                       "  TextInput (_a_b_c_) {}" +
                       "}";
-        ITaskTree taskTree = createTaskTree(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
         Optional<UsabilityDefect> recommendation = new NoLetterOrDigitRatioMetric(taskTree).calculate();
Index: /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputEntryRepetitionsEvaluatorTest.java
===================================================================
--- /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputEntryRepetitionsEvaluatorTest.java	(revision 1170)
+++ /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputEntryRepetitionsEvaluatorTest.java	(revision 1171)
@@ -27,7 +27,7 @@
 import com.google.common.base.Optional;
 
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.result.UsabilityDefect;
-import de.ugoe.cs.autoquest.usability.rules.metrics.TextInputEntryRepetitionsMetric;
+import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskModelUtil;
 
 /**
@@ -38,5 +38,5 @@
  * @author Alexander Deicke
  */
-public class TextInputEntryRepetitionsEvaluatorTest extends AbstractUsabilityEvaluationTC {
+public class TextInputEntryRepetitionsEvaluatorTest {
 
     @Test
@@ -44,5 +44,5 @@
         // Given
         String spec = "Sequence {" + "  TextInput () {}" + "}";
-        ITaskTree taskTree = createTaskTree(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
         Optional<UsabilityDefect> recommendation = new TextInputEntryRepetitionsMetric(taskTree).calculate();
@@ -57,5 +57,5 @@
             "Sequence {" + "  TextInput (a b c) {}" + "  Sequence {" + "    TextInput (a) {}"
                 + "    TextInput (d) {}" + "    TextInput (e) {}" + "  }" + "}";
-        ITaskTree taskTree = createTaskTree(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
         Optional<UsabilityDefect> recommendation = new TextInputEntryRepetitionsMetric(taskTree).calculate();
@@ -70,5 +70,5 @@
             "Sequence {" + "  TextInput (a b c) {}" + "  Sequence {" + "    TextInput (a) {}"
                 + "    TextInput (b) {}" + "    TextInput (c) {}" + "  }" + "}";
-        ITaskTree taskTree = createTaskTree(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
         Optional<UsabilityDefect> recommendation = new TextInputEntryRepetitionsMetric(taskTree).calculate();
@@ -89,5 +89,5 @@
                 + "      TextInput (b) {}" + "      TextInput (c) {}" + "      TextInput (d) {}"
                 + "      TextInput (e) {}" + "    }" + "  }" + "  TextInput (f) {}" + "}";
-        ITaskTree taskTree = createTaskTree(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
         Optional<UsabilityDefect> recommendation = new TextInputEntryRepetitionsMetric(taskTree).calculate();
@@ -108,5 +108,5 @@
                 + "      TextInput (b b b a) {}" + "      TextInput (a a c c) {}"
                 + "      TextInput (b b a) {}" + "    }" + "  }" + "  TextInput (d) {}" + "}";
-        ITaskTree taskTree = createTaskTree(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
         Optional<UsabilityDefect> recommendation = new TextInputEntryRepetitionsMetric(taskTree).calculate();
Index: /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputRatioEvaluatorTest.java
===================================================================
--- /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputRatioEvaluatorTest.java	(revision 1170)
+++ /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputRatioEvaluatorTest.java	(revision 1171)
@@ -27,7 +27,7 @@
 import com.google.common.base.Optional;
 
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.result.UsabilityDefect;
-import de.ugoe.cs.autoquest.usability.rules.metrics.TextInputRatioMetric;
+import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskModelUtil;
 
 /**
@@ -38,5 +38,5 @@
  * @author Alexander Deicke
  */
-public class TextInputRatioEvaluatorTest extends AbstractUsabilityEvaluationTC {
+public class TextInputRatioEvaluatorTest {
 
     @Test
@@ -47,5 +47,5 @@
                 + "  Interaction {}" + "  TextInput (c) {}" + "  Interaction {}"
                 + "  Interaction {}" + "  Interaction {}" + "}";
-        ITaskTree taskTree = createTaskTree(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
         Optional<UsabilityDefect> recommendation = new TextInputRatioMetric(taskTree).calculate();
@@ -60,5 +60,5 @@
             "Sequence {" + "  Interaction {}" + "  TextInput (a) {}" + "  Interaction {}"
                 + "  Interaction {}" + "  TextInput (c) {}" + "}";
-        ITaskTree taskTree = createTaskTree(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
         Optional<UsabilityDefect> recommendation = new TextInputRatioMetric(taskTree).calculate();
@@ -73,5 +73,5 @@
             "Sequence {" + "  Interaction {}" + "  TextInput (a) {}" + "  TextInput (b) {}"
                 + "  Interaction {}" + "  TextInput (c) {}" + "}";
-        ITaskTree taskTree = createTaskTree(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
         Optional<UsabilityDefect> recommendation = new TextInputRatioMetric(taskTree).calculate();
@@ -86,5 +86,5 @@
             "Sequence {" + "  TextInput (a) {}" + "  TextInput (b) {}" + "  Interaction {}"
                 + "  TextInput (c) {}" + "}";
-        ITaskTree taskTree = createTaskTree(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
         Optional<UsabilityDefect> recommendation = new TextInputRatioMetric(taskTree).calculate();
@@ -97,5 +97,5 @@
         // Given
         String spec = "TextInput (bla) {}";
-        ITaskTree taskTree = createTaskTree(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
         Optional<UsabilityDefect> recommendation = new TextInputRatioMetric(taskTree).calculate();
Index: /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/LongFormUsageDefectTest.java
===================================================================
--- /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/LongFormUsageDefectTest.java	(revision 1170)
+++ /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/LongFormUsageDefectTest.java	(revision 1171)
@@ -23,7 +23,7 @@
 import com.google.common.base.Optional;
 
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.result.UsabilityDefect;
-import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskTreeUtil;
+import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskModelUtil;
 
 /**
@@ -36,25 +36,22 @@
 public class LongFormUsageDefectTest {
 
-    @Test
+	@Test
     public void should_be_present() {
         // Given
-        String spec = "Sequence {" +
-        	      "  Selection {" +
-        	      "     MouseClick() {}" +
-        	      "     Sequence() {" +
-        	      "       MouseClick() {}" +
-        	      "       Iteration {" +
-        	      "         Sequence {" +
-        	      "           TextInput() {}" +
-        	      "           Scroll () {}" +
-        	      "         }" +
-        	      "       }" +
-        	      "       MouseClick() {}" +
-        	      "     }" + 
-                      "  }" + 
+        String spec = "UserSession {" +
+        	      "  Sequence sequence1 {" +
+        	      "    MouseClick t1 {}" +
+        	      "    Iteration iteration1 {" +
+        	      "      Sequence sequence3 {" +
+        	      "        TextInput t {}" +
+        	      "        Scroll p {}" +
+        	      "      }" +
+        	      "    }" +
+        	      "    MouseClick b2 {}" +
+        	      "  }" +  
                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
+        ITaskModel taskModel = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new LongFormUsageDefect(taskTree).check();
+        Optional<UsabilityDefect> recommendation = new LongFormUsageDefect(taskModel).check();
         // Then
         assertThat(recommendation).is(present());
@@ -64,20 +61,15 @@
     public void should_be_absent() {
         // Given
-        String spec = "Sequence {" +
-                      "  Selection {" +
-                      "     MouseClick() {}" +
-                      "     Sequence() {" +
-                      "       MouseClick() {}" +
-                      "       TextInput() {}" +
-                      "       Iteration {" +
-                      "         Scroll () {}" +
-                      "       }" +
-                      "       MouseClick() {}" +
-                      "     }" + 
-                      "  }" + 
+        String spec = "UserSession {" +
+                      "  Sequence sequence1 {" +
+                      "    MouseClick t1 {}" +
+                      "    TextInput t {}" +
+                      "    Scroll p {}" +
+                      "    MouseClick b2 {}" +
+                      "  }" +  
                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
+        ITaskModel taskModel = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new LongFormUsageDefect(taskTree).check();
+        Optional<UsabilityDefect> recommendation = new LongFormUsageDefect(taskModel).check();
         // Then
         assertThat(recommendation).is(absent());
Index: /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/contains/ContainsAndEndsWithEventTest.java
===================================================================
--- /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/contains/ContainsAndEndsWithEventTest.java	(revision 1170)
+++ /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/contains/ContainsAndEndsWithEventTest.java	(revision 1171)
@@ -17,5 +17,4 @@
 import static de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter.MOUSE_CLICK;
 import static de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter.TEXT_INPUT;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.ITERATION;
 import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SELECTION;
 import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE;
@@ -24,8 +23,8 @@
 import org.junit.Test;
 
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePattern;
 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePatternBuilder;
-import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskTreeUtil;
+import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskModelUtil;
 
 /**
@@ -38,11 +37,13 @@
 public class ContainsAndEndsWithEventTest {
 
-    @Test
-    public void sequence_ends_with_positive_1() {
+	 @Test
+    public void contains_and_ends_with_event_positive() {
         // Given
-        String spec = "Sequence {" + 
-                      "  TextInput () {}" + 
+        String spec = "UserSession {" +
+                      "  Sequence seq1 {" + 
+                      "    TextInput t1 {}" +
+                      "  }" + 
                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
         // When
@@ -52,318 +53,17 @@
     }
     
-    @Test
-    public void sequence_ends_with_positive_2() {
-        // Given
-        String spec = "Selection {" +
-                      "  EventTask target1 {}" +
-                      "  Sequence {" +
-                      "    MouseClick target2 {}" +
-                      "    TextInput target3 {}" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
     
     @Test
-    public void sequence_ends_with_positive_3() {
+    public void contains_and_ends_with_event_negative() {
         // Given
-        String spec =  "Sequence {" +
-                       "  Optional {" +
-                       "    Sequence {" +
-                       "      EventTask target4 {}" +
-                       "      EventTask target3 {}" +
-                       "    }" +
-                       "  }" +
-                       "  EventTask target1 {}" +
-                       "  MouseClick target2 {}" +
-                       "  EventTask target3 {}" +
-                       "  EventTask target4 {}" +
-                       "  Selection {" +
-                       "    EventTask target5 {}" +
-                       "    Sequence {" +
-                       "      EventTask target4 {}" +
-                       "      EventTask target2 {}" +
-                       "    }" +
-                       "  }" +
-                       "  EventTask target6 {}" +
-                       "  TextInput target7 {}" +
-                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-   
-    @Test
-    public void sequence_ends_with_negative_1() {
-        // Given
-        String spec = "Sequence {" + 
-                      "  MouseClick () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void sequence_ends_with_negative_2() {
-        // Given
-        String spec = "Selection {" +
-                      "  Sequence {" +
-                      "    EventTask target1 {}" +
-                      "    EventTask target2 {}" +
-                      "  }" +
-                      "  Sequence {" +
-                      "    EventTask target3 {}" +
-                      "    EventTask target4 {}" +
-                      "  }" +
-                      "  Sequence {" +
-                      "    EventTask target5 {}" +
-                      "    EventTask target6 {}" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void sequence_ends_with_negative_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    EventTask target2 {}" +
-                      "    EventTask target3 {}" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void iteration_ends_with_positive_1() {
-        // Given
-        String spec = "Iteration {" + 
-                      "  TextInput () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void iteration_ends_with_positive_2() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Sequence {" +
-                      "    MouseClick target1 {}" +
-                      "    Selection {" +
-                      "      EventTask target2 {}" +
-                      "      TextInput target2 {}" +
+        String spec = "UserSession {" +
+                      "  Iteration it1 {" +
+                      "    Sequence seq1 {" +
+                      "      EventTask t1 {}" +
+                      "      EventTask t2 {}" +
                       "    }" +
                       "  }" +
                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void iteration_ends_with_positive_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    TextInput target1 {}" +
-                      "    Sequence {" +
-                      "      EventTask target2 {}" +
-                      "      EventTask target3 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void iteration_ends_with_negative_1() {
-        // Given
-        String spec = "Iteration {" + 
-                      "  MouseClick () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void iteration_ends_with_negative_2() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Sequence {" +
-                      "    EventTask target1 {}" +
-                      "    Optional {" +
-                      "      EventTask target2 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void iteration_ends_with_negative_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    EventTask target1 {}" +
-                      "    Sequence {" +
-                      "      TextInput target2 {}" +
-                      "      EventTask target3 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void selection_ends_with_positive_1() {
-        // Given
-        String spec = "Selection {" + 
-                      "  MouseClick () {}" + 
-                      "  TextInput () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void selection_ends_with_positive_2() {
-        // Given
-        String spec = "Sequence {" +
-                      "  Optional {" +
-                      "    Sequence {" +
-                      "      EventTask target4 {}" +
-                      "      EventTask target3 {}" +
-                      "    }" +
-                      "  }" +
-                      "  EventTask target1 {}" +
-                      "  EventTask target2 {}" +
-                      "  EventTask target3 {}" +
-                      "  EventTask target4 {}" +
-                      "  Selection {" +
-                      "    EventTask target5 {}" +
-                      "    Sequence {" +
-                      "      TextInput target4 {}" +
-                      "      TextInput target2 {}" +
-                      "    }" +
-                      "  }" +
-                      "  EventTask target6 {}" +
-                      "  EventTask target7 {}" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void selection_ends_with_positive_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    Sequence {" +
-                      "      EventTask target3 {}" +
-                      "      TextInput target4 {}" +
-                      "    }" +
-                      "    Sequence {" +
-                      "      TextInput target5 {}" +
-                      "      EventTask target6 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void selection_ends_with_negative_1() {
-        // Given
-        String spec = "Selection {" + 
-                      "  DragAndDrop () {}" + 
-                      "  MouseClick () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void selection_ends_with_negative_2() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    Sequence {" +
-                      "      EventTask target3 {}" +
-                      "      EventTask target4 {}" +
-                      "    }" +
-                      "    Sequence {" +
-                      "      EventTask target5 {}" +
-                      "      EventTask target6 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
         // When
Index: /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/contains/ContainsEventTest.java
===================================================================
--- /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/contains/ContainsEventTest.java	(revision 1170)
+++ /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/contains/ContainsEventTest.java	(revision 1171)
@@ -16,5 +16,4 @@
 
 import static de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter.TEXT_INPUT;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.ITERATION;
 import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SELECTION;
 import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE;
@@ -23,8 +22,8 @@
 import org.junit.Test;
 
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePattern;
 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePatternBuilder;
-import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskTreeUtil;
+import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskModelUtil;
 
 /**
@@ -37,11 +36,13 @@
 public class ContainsEventTest {
 
-    @Test
-    public void sequence_ends_with_positive_1() {
+	 @Test
+    public void contains_event_positive() {
         // Given
-        String spec = "Sequence {" + 
-                      "  TextInput () {}" + 
+        String spec = "UserSession {" +
+                      "  Sequence seq1 {" + 
+                      "    TextInput t1 {}" +
+                      "  }" + 
                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).build();
         // When
@@ -52,317 +53,15 @@
     
     @Test
-    public void sequence_ends_with_positive_2() {
+    public void contains_event_negative() {
         // Given
-        String spec = "Selection {" +
-                      "  EventTask target1 {}" +
-                      "  Sequence {" +
-                      "    EventTask target2 {}" +
-                      "    TextInput target3 {}" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void sequence_ends_with_positive_3() {
-        // Given
-        String spec =  "Sequence {" +
-                       "  Optional {" +
-                       "    Sequence {" +
-                       "      EventTask target4 {}" +
-                       "      EventTask target3 {}" +
-                       "    }" +
-                       "  }" +
-                       "  EventTask target1 {}" +
-                       "  EventTask target2 {}" +
-                       "  EventTask target3 {}" +
-                       "  EventTask target4 {}" +
-                       "  Selection {" +
-                       "    EventTask target5 {}" +
-                       "    Sequence {" +
-                       "      EventTask target4 {}" +
-                       "      EventTask target2 {}" +
-                       "    }" +
-                       "  }" +
-                       "  EventTask target6 {}" +
-                       "  TextInput target7 {}" +
-                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-   
-    @Test
-    public void sequence_ends_with_negative_1() {
-        // Given
-        String spec = "Sequence {" + 
-                      "  MouseClick () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void sequence_ends_with_negative_2() {
-        // Given
-        String spec = "Selection {" +
-                      "  Sequence {" +
-                      "    EventTask target1 {}" +
-                      "    EventTask target2 {}" +
-                      "  }" +
-                      "  Sequence {" +
-                      "    EventTask target3 {}" +
-                      "    EventTask target4 {}" +
-                      "  }" +
-                      "  Sequence {" +
-                      "    EventTask target5 {}" +
-                      "    EventTask target6 {}" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void sequence_ends_with_negative_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    EventTask target2 {}" +
-                      "    EventTask target3 {}" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void iteration_ends_with_positive_1() {
-        // Given
-        String spec = "Iteration {" + 
-                      "  TextInput () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void iteration_ends_with_positive_2() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Sequence {" +
-                      "    EventTask target1 {}" +
-                      "    Selection {" +
-                      "      EventTask target2 {}" +
-                      "      TextInput target2 {}" +
+        String spec = "UserSession {" +
+                      "  Iteration it1 {" +
+                      "    Sequence seq1 {" +
+                      "      MouseClick t1 {}" +
+                      "      MouseClick t2 {}" +
                       "    }" +
                       "  }" +
                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void iteration_ends_with_positive_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    TextInput target1 {}" +
-                      "    Sequence {" +
-                      "      EventTask target2 {}" +
-                      "      EventTask target3 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void iteration_ends_with_negative_1() {
-        // Given
-        String spec = "Iteration {" + 
-                      "  MouseClick () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void iteration_ends_with_negative_2() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Sequence {" +
-                      "    EventTask target1 {}" +
-                      "    Optional {" +
-                      "      EventTask target2 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void iteration_ends_with_negative_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    EventTask target1 {}" +
-                      "    Sequence {" +
-                      "      EventTask target2 {}" +
-                      "      EventTask target3 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void selection_ends_with_positive_1() {
-        // Given
-        String spec = "Selection {" + 
-                      "  MouseClick () {}" + 
-                      "  TextInput () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void selection_ends_with_positive_2() {
-        // Given
-        String spec = "Sequence {" +
-                      "  Optional {" +
-                      "    Sequence {" +
-                      "      EventTask target4 {}" +
-                      "      EventTask target3 {}" +
-                      "    }" +
-                      "  }" +
-                      "  EventTask target1 {}" +
-                      "  EventTask target2 {}" +
-                      "  EventTask target3 {}" +
-                      "  EventTask target4 {}" +
-                      "  Selection {" +
-                      "    EventTask target5 {}" +
-                      "    Sequence {" +
-                      "      EventTask target4 {}" +
-                      "      TextInput target2 {}" +
-                      "    }" +
-                      "  }" +
-                      "  EventTask target6 {}" +
-                      "  EventTask target7 {}" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void selection_ends_with_positive_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    Sequence {" +
-                      "      EventTask target3 {}" +
-                      "      TextInput target4 {}" +
-                      "    }" +
-                      "    Sequence {" +
-                      "      TextInput target5 {}" +
-                      "      EventTask target6 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void selection_ends_with_negative_1() {
-        // Given
-        String spec = "Selection {" + 
-                      "  DragAndDrop () {}" + 
-                      "  MouseClick () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void selection_ends_with_negative_2() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    Sequence {" +
-                      "      EventTask target3 {}" +
-                      "      EventTask target4 {}" +
-                      "    }" +
-                      "    Sequence {" +
-                      "      EventTask target5 {}" +
-                      "      EventTask target6 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).build();
         // When
Index: /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/contains/ContainsPatternTest.java
===================================================================
--- /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/contains/ContainsPatternTest.java	(revision 1170)
+++ /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/contains/ContainsPatternTest.java	(revision 1171)
@@ -16,5 +16,4 @@
 
 import static de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter.TEXT_INPUT;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.ITERATION;
 import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SELECTION;
 import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE;
@@ -23,8 +22,8 @@
 import org.junit.Test;
 
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePattern;
 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePatternBuilder;
-import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskTreeUtil;
+import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskModelUtil;
 
 /**
@@ -37,14 +36,18 @@
 public class ContainsPatternTest {
 
-    @Test
-    public void sequence_ends_with_positive_1() {
+	@Test
+    public void contains_pattern_positive() {
         // Given
-        String spec = "Sequence {" +
-        	      "  Selection {" + 
-                      "    TextInput () {}" +
-                      "    MouseClick () {}" +
+        String spec = "UserSession {" +
+                      "  Sequence seq1 {" +
+        	          "    Selection sel1 {" + 
+                      "      TextInput t1 {}" +
+                      "    }" +
+                      "    Selection sel1 {" +
+                      "      MouseClick t2 {}" +
+                      "    }" +
                       "  }" + 
                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
         UsagePattern containsPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(TEXT_INPUT).build();
@@ -57,317 +60,23 @@
     
     @Test
-    public void sequence_ends_with_positive_2() {
+    public void contains_pattern_negative() {
         // Given
-        String spec = "Selection {" +
-                      "  EventTask target1 {}" +
-                      "  Sequence {" +
-                      "    EventTask target2 {}" +
-                      "    TextInput target3 {}" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void sequence_ends_with_positive_3() {
-        // Given
-        String spec =  "Sequence {" +
-                       "  Optional {" +
-                       "    Sequence {" +
-                       "      EventTask target4 {}" +
-                       "      EventTask target3 {}" +
-                       "    }" +
-                       "  }" +
-                       "  EventTask target1 {}" +
-                       "  EventTask target2 {}" +
-                       "  EventTask target3 {}" +
-                       "  EventTask target4 {}" +
-                       "  Selection {" +
-                       "    EventTask target5 {}" +
-                       "    Sequence {" +
-                       "      EventTask target4 {}" +
-                       "      EventTask target2 {}" +
-                       "    }" +
-                       "  }" +
-                       "  EventTask target6 {}" +
-                       "  TextInput target7 {}" +
-                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-   
-    @Test
-    public void sequence_ends_with_negative_1() {
-        // Given
-        String spec = "Sequence {" + 
-                      "  MouseClick () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void sequence_ends_with_negative_2() {
-        // Given
-        String spec = "Selection {" +
-                      "  Sequence {" +
-                      "    EventTask target1 {}" +
-                      "    EventTask target2 {}" +
-                      "  }" +
-                      "  Sequence {" +
-                      "    EventTask target3 {}" +
-                      "    EventTask target4 {}" +
-                      "  }" +
-                      "  Sequence {" +
-                      "    EventTask target5 {}" +
-                      "    EventTask target6 {}" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void sequence_ends_with_negative_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    EventTask target2 {}" +
-                      "    EventTask target3 {}" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void iteration_ends_with_positive_1() {
-        // Given
-        String spec = "Iteration {" + 
-                      "  TextInput () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void iteration_ends_with_positive_2() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Sequence {" +
-                      "    EventTask target1 {}" +
-                      "    Selection {" +
-                      "      EventTask target2 {}" +
-                      "      TextInput target2 {}" +
+        String spec = "UserSession {" +
+                      "  Iteration it1 {" +
+                      "    Selection sel1 {" +
+                      "      Sequence seq1 {" +
+                      "        EventTask t1 {}" +
+                      "        EventTask t2 {}" +
+                      "      }" +
+                      "    }" +
+                      "    Selection sel1 {" +
+                      "      Sequence seq2 {" +
+                      "        EventTask t2 {}" +
+                      "        EventTask t1 {}" +
+                      "      }" +
                       "    }" +
                       "  }" +
                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void iteration_ends_with_positive_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    TextInput target1 {}" +
-                      "    Sequence {" +
-                      "      EventTask target2 {}" +
-                      "      EventTask target3 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void iteration_ends_with_negative_1() {
-        // Given
-        String spec = "Iteration {" + 
-                      "  MouseClick () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void iteration_ends_with_negative_2() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Sequence {" +
-                      "    EventTask target1 {}" +
-                      "    Optional {" +
-                      "      EventTask target2 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void iteration_ends_with_negative_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    EventTask target1 {}" +
-                      "    Sequence {" +
-                      "      EventTask target2 {}" +
-                      "      EventTask target3 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void selection_ends_with_positive_1() {
-        // Given
-        String spec = "Selection {" + 
-                      "  MouseClick () {}" + 
-                      "  TextInput () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void selection_ends_with_positive_2() {
-        // Given
-        String spec = "Sequence {" +
-                      "  Optional {" +
-                      "    Sequence {" +
-                      "      EventTask target4 {}" +
-                      "      EventTask target3 {}" +
-                      "    }" +
-                      "  }" +
-                      "  EventTask target1 {}" +
-                      "  EventTask target2 {}" +
-                      "  EventTask target3 {}" +
-                      "  EventTask target4 {}" +
-                      "  Selection {" +
-                      "    EventTask target5 {}" +
-                      "    Sequence {" +
-                      "      EventTask target4 {}" +
-                      "      TextInput target2 {}" +
-                      "    }" +
-                      "  }" +
-                      "  EventTask target6 {}" +
-                      "  EventTask target7 {}" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void selection_ends_with_positive_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    Sequence {" +
-                      "      EventTask target3 {}" +
-                      "      TextInput target4 {}" +
-                      "    }" +
-                      "    Sequence {" +
-                      "      TextInput target5 {}" +
-                      "      EventTask target6 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void selection_ends_with_negative_1() {
-        // Given
-        String spec = "Selection {" + 
-                      "  DragAndDrop () {}" + 
-                      "  MouseClick () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void selection_ends_with_negative_2() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    Sequence {" +
-                      "      EventTask target3 {}" +
-                      "      EventTask target4 {}" +
-                      "    }" +
-                      "    Sequence {" +
-                      "      EventTask target5 {}" +
-                      "      EventTask target6 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).build();
         // When
Index: /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/endswith/EndsWithEventTest.java
===================================================================
--- /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/endswith/EndsWithEventTest.java	(revision 1170)
+++ /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/endswith/EndsWithEventTest.java	(revision 1171)
@@ -16,6 +16,4 @@
 
 import static de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter.TEXT_INPUT;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.ITERATION;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SELECTION;
 import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
@@ -23,8 +21,8 @@
 import org.junit.Test;
 
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePattern;
 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePatternBuilder;
-import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskTreeUtil;
+import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskModelUtil;
 
 /**
@@ -36,12 +34,22 @@
  */
 public class EndsWithEventTest {
-
+    
     @Test
-    public void sequence_ends_with_positive_1() {
+    public void ends_with_event_positive() {
         // Given
-        String spec = "Sequence {" + 
-                      "  TextInput () {}" + 
+        String spec = "UserSession {" +
+        		      "  Selection sel1 {" +
+        		      "    Sequence seq1 {" +
+                      "      EventTask target1 {}" +
+                      "    }" +
+                      "  }" +
+                      "  Selection sel1 {" +
+                      "    Sequence seq2 {" +
+                      "      EventTask target2 {}" +
+                      "      TextInput target3 {}" +
+                      "    }" +
+                      "  }" +
                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).endsWith(TEXT_INPUT).build();
         // When
@@ -52,318 +60,28 @@
     
     @Test
-    public void sequence_ends_with_positive_2() {
+    public void ends_with_event_negative() {
         // Given
-        String spec = "Selection {" +
-                      "  EventTask target1 {}" +
-                      "  Sequence {" +
-                      "    EventTask target2 {}" +
-                      "    TextInput target3 {}" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void sequence_ends_with_positive_3() {
-        // Given
-        String spec =  "Sequence {" +
-                       "  Optional {" +
-                       "    Sequence {" +
-                       "      EventTask target4 {}" +
-                       "      EventTask target3 {}" +
-                       "    }" +
-                       "  }" +
-                       "  EventTask target1 {}" +
-                       "  EventTask target2 {}" +
-                       "  EventTask target3 {}" +
-                       "  EventTask target4 {}" +
-                       "  Selection {" +
-                       "    EventTask target5 {}" +
-                       "    Sequence {" +
-                       "      EventTask target4 {}" +
-                       "      EventTask target2 {}" +
-                       "    }" +
-                       "  }" +
-                       "  EventTask target6 {}" +
-                       "  TextInput target7 {}" +
-                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-   
-    @Test
-    public void sequence_ends_with_negative_1() {
-        // Given
-        String spec = "Sequence {" + 
-                      "  MouseClick () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void sequence_ends_with_negative_2() {
-        // Given
-        String spec = "Selection {" +
-                      "  Sequence {" +
-                      "    EventTask target1 {}" +
-                      "    EventTask target2 {}" +
-                      "  }" +
-                      "  Sequence {" +
-                      "    EventTask target3 {}" +
-                      "    EventTask target4 {}" +
-                      "  }" +
-                      "  Sequence {" +
-                      "    EventTask target5 {}" +
-                      "    EventTask target6 {}" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void sequence_ends_with_negative_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    EventTask target2 {}" +
-                      "    EventTask target3 {}" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void iteration_ends_with_positive_1() {
-        // Given
-        String spec = "Iteration {" + 
-                      "  TextInput () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void iteration_ends_with_positive_2() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Sequence {" +
-                      "    EventTask target1 {}" +
-                      "    Selection {" +
-                      "      EventTask target2 {}" +
-                      "      TextInput target2 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void iteration_ends_with_positive_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    TextInput target1 {}" +
-                      "    Sequence {" +
-                      "      EventTask target2 {}" +
-                      "      EventTask target3 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void iteration_ends_with_negative_1() {
-        // Given
-        String spec = "Iteration {" + 
-                      "  MouseClick () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void iteration_ends_with_negative_2() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Sequence {" +
-                      "    EventTask target1 {}" +
-                      "    Optional {" +
+        String spec = "UserSession {" +
+        		      "  Selection sel1 {" +
+                      "    Sequence seq1 {" +
+                      "      EventTask target1 {}" +
                       "      EventTask target2 {}" +
                       "    }" +
                       "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void iteration_ends_with_negative_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    EventTask target1 {}" +
-                      "    Sequence {" +
-                      "      EventTask target2 {}" +
+                      "  Selection sel1 {" +
+                      "    Sequence seq2 {" +
                       "      EventTask target3 {}" +
+                      "      EventTask target4 {}" +
                       "    }" +
                       "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(ITERATION).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void selection_ends_with_positive_1() {
-        // Given
-        String spec = "Selection {" + 
-                      "  MouseClick () {}" + 
-                      "  TextInput () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void selection_ends_with_positive_2() {
-        // Given
-        String spec = "Sequence {" +
-                      "  Optional {" +
-                      "    Sequence {" +
-                      "      EventTask target4 {}" +
-                      "      EventTask target3 {}" +
-                      "    }" +
-                      "  }" +
-                      "  EventTask target1 {}" +
-                      "  EventTask target2 {}" +
-                      "  EventTask target3 {}" +
-                      "  EventTask target4 {}" +
-                      "  Selection {" +
-                      "    EventTask target5 {}" +
-                      "    Sequence {" +
-                      "      EventTask target4 {}" +
-                      "      TextInput target2 {}" +
-                      "    }" +
-                      "  }" +
-                      "  EventTask target6 {}" +
-                      "  EventTask target7 {}" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void selection_ends_with_positive_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    Sequence {" +
-                      "      EventTask target3 {}" +
-                      "      TextInput target4 {}" +
-                      "    }" +
-                      "    Sequence {" +
-                      "      TextInput target5 {}" +
+                      "  Selection sel1 {" +
+                      "    Sequence seq3 {" +
+                      "      EventTask target5 {}" +
                       "      EventTask target6 {}" +
                       "    }" +
                       "  }" +
                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void selection_ends_with_negative_1() {
-        // Given
-        String spec = "Selection {" + 
-                      "  DragAndDrop () {}" + 
-                      "  MouseClick () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).endsWith(TEXT_INPUT).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void selection_ends_with_negative_2() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    Sequence {" +
-                      "      TextInput target3 {}" +
-                      "      EventTask target4 {}" +
-                      "    }" +
-                      "    Sequence {" +
-                      "      TextInput target5 {}" +
-                      "      EventTask target6 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SELECTION).endsWith(TEXT_INPUT).build();
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
+        UsagePattern pattern = new UsagePatternBuilder().concernedNode(SEQUENCE).endsWith(TEXT_INPUT).build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
Index: /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/endswith/EndsWithPatternTest.java
===================================================================
--- /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/endswith/EndsWithPatternTest.java	(revision 1170)
+++ /trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/endswith/EndsWithPatternTest.java	(revision 1171)
@@ -24,8 +24,8 @@
 import org.junit.Test;
 
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePattern;
 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePatternBuilder;
-import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskTreeUtil;
+import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskModelUtil;
 
 /**
@@ -39,21 +39,25 @@
 
     @Test
-    public void sequence_starts_with_positive_1() {
+    public void starts_with_pattern_positive() {
         // Given
-        String spec = "Sequence {" +
-                      "  EventTask target2 {}" +
-                      "  EventTask target3 {}" +
-                      "  Selection {" +
-                      "    Sequence {" +
-                      "      TextInput target4 {}" +
-                      "      MouseClick target2 {}" +
+        String spec = "UserSession {" +
+        		      "  Sequence seq1 {" +
+                      "    EventTask target2 {}" +
+                      "    EventTask target3 {}" +
+                      "    Selection sel1 {" +
+                      "      Sequence seq2 {" +
+                      "        TextInput target4 {}" +
+                      "        MouseClick target2 {}" +
+                      "      }" +
                       "    }" +
-                      "    Sequence {" +
-                      "      TextInput target4 {}" +
-                      "      EventTask target2 {}" +
+                      "    Selection sel1 {" +
+                      "      Sequence seq3 {" +
+                      "        TextInput target4 {}" +
+                      "        EventTask target2 {}" +
+                      "      }" +
                       "    }" +
                       "  }" +
                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
         UsagePattern endsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
@@ -66,97 +70,30 @@
     
     @Test
-    public void sequence_starts_with_positive_2() {
+    public void starts_with_pattern_negative() {
         // Given
-        String spec = "Selection {" +
-                      "  EventTask target1 {}" +
-                      "  Sequence {" +
-                      "    Iteration {" +
-                      "      Sequence {" +
-                      "        TextInput target4 {}" +
-                      "        MouseClick target2 {}" +
-                      "        TextInput target4 {}" +
+        String spec = "UserSession {" +
+        		      "  Selection sel1 {" +
+                      "    Sequence seq1 {" +
+                      "      EventTask target1 {}" +
+                      "      EventTask target2 {}" +
+                      "    }" +
+                      "  }" +
+                      "  Selection sel1 {" +
+                      "    Iteration it1 {" +
+                      "      Sequence seq2 {" +
+                      "        MouseClick target5 {}" +
+                      "        EventTask target4 {}" +
+                      "        EventTask target2 {}" +
                       "      }" +
                       "    }" +
                       "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
-        UsagePattern endsWithPattern = patternBuilder.concernedNode(ITERATION).startsWith(TEXT_INPUT).contains(MOUSE_CLICK).build();
-        UsagePattern pattern = patternBuilder.concernedNode(SEQUENCE).endsWith(endsWithPattern).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void sequence_starts_with_positive_3() {
-        // Given
-        String spec =  "Sequence {" +
-                       "  Optional {" +
-                       "    Sequence {" +
-                       "      EventTask target4 {}" +
-                       "      EventTask target3 {}" +
-                       "    }" +
-                       "  }" +
-                       "  EventTask target1 {}" +
-                       "  EventTask target2 {}" +
-                       "  EventTask target3 {}" +
-                       "  EventTask target4 {}" +
-                       "  EventTask target6 {}" +
-                       "  EventTask target7 {}" +
-                       "  Sequence {" +
-                       "    MouseClick target5 {}" +
-                       "    TextInput target4 {}" +
-                       "    MouseClick target2 {}" +
-                       "  }" +
-                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec); 
-        UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
-        UsagePattern startsWithPattern = patternBuilder.concernedNode(SEQUENCE).startsWith(MOUSE_CLICK).endsWith(MOUSE_CLICK).build();
-        UsagePattern pattern = patternBuilder.concernedNode(SEQUENCE).startsWith(startsWithPattern).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-   
-    @Test
-    public void sequence_starts_with_negative_1() {
-        // Given
-        String spec = "Sequence {" + 
-                      "  MouseClick () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
-        UsagePattern endsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(MOUSE_CLICK).endsWith(MOUSE_CLICK).build();
-        UsagePattern pattern = patternBuilder.concernedNode(SEQUENCE).endsWith(endsWithPattern).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void sequence_starts_with_negative_2() {
-        // Given
-        String spec = "Selection {" +
-                      "  Sequence {" +
-                      "    EventTask target1 {}" +
-                      "    EventTask target2 {}" +
-                      "  }" +
-                      "  Iteration {" +
-                      "    Sequence {" +
-                      "      MouseClick target5 {}" +
-                      "      EventTask target4 {}" +
-                      "      EventTask target2 {}" +
+                      "  Selection sel1 {" +
+                      "    Sequence seq3 {" +
+                      "      EventTask target5 {}" +
+                      "      EventTask target6 {}" +
                       "    }" +
                       "  }" +
-                      "  Sequence {" +
-                      "    EventTask target5 {}" +
-                      "    EventTask target6 {}" +
-                      "  }" +
                       "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
+        ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
         UsagePattern endsWithPattern = patternBuilder.concernedNode(ITERATION).startsWith(MOUSE_CLICK).contains(TEXT_INPUT).build();
@@ -168,285 +105,3 @@
     }
     
-    @Test
-    public void sequence_starts_with_negative_3() {
-        // Given
-        String spec = "Sequence {" +
-                      "  Selection {" +
-                      "    Sequence {" +
-                      "      MouseClick target4 {}" +
-                      "      EventTask target2 {}" +
-                      "    }" +
-                      "    Sequence {" +
-                      "      TextInput target4 {}" +
-                      "      TextInput target2 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
-        UsagePattern endsWithPattern = patternBuilder.concernedNode(SEQUENCE).startsWith(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
-        UsagePattern pattern = patternBuilder.concernedNode(SEQUENCE).endsWith(endsWithPattern).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void iteration_starts_with_positive_1() {
-        // Given
-        String spec = "Iteration {" +
-        	      "  Sequence {" + 
-                      "    MouseClick () {}" +
-                      "    TextInput () {}" +
-                      "  }" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
-        UsagePattern endsWithPattern = patternBuilder.concernedNode(SEQUENCE).startsWith(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
-        UsagePattern pattern = patternBuilder.concernedNode(ITERATION).endsWith(endsWithPattern).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void iteration_starts_with_positive_2() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    Sequence {" +
-                      "      MouseClick target4 {}" +
-                      "      TextInput target2 {}" +
-                      "      MouseClick target 4 {}" +
-                      "    }" +
-                      "    Sequence {" +
-                      "      TextInput target4 {}" +
-                      "      TextInput target2 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
-        UsagePattern endsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(MOUSE_CLICK).contains(TEXT_INPUT).build();
-        UsagePattern pattern = patternBuilder.concernedNode(ITERATION).endsWith(endsWithPattern).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void iteration_starts_with_positive_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    EventTask target1 {}" +
-                      "    Sequence {" +
-                      "      MouseClick target2 {}" +
-                      "      MouseClick target3 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
-        UsagePattern endsWithPattern = patternBuilder.concernedNode(SEQUENCE).startsWith(MOUSE_CLICK).endsWith(MOUSE_CLICK).build();
-        UsagePattern pattern = patternBuilder.concernedNode(ITERATION).endsWith(endsWithPattern).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void iteration_starts_with_negative_1() {
-        // Given
-        String spec = "Iteration {" + 
-                      "  MouseClick () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
-        UsagePattern endsWithPattern = patternBuilder.concernedNode(SEQUENCE).startsWith(MOUSE_CLICK).endsWith(MOUSE_CLICK).build();
-        UsagePattern pattern = patternBuilder.concernedNode(ITERATION).endsWith(endsWithPattern).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void iteration_starts_with_negative_2() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    Sequence {" +
-                      "      MouseClick target2 {}" +
-                      "      MouseClick target3 {}" +
-                      "      TextInput target4 {}" + 
-                      "    }" +
-                      "    Optional {" +
-                      "      EventTask target2 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
-        UsagePattern endsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(MOUSE_CLICK).endsWith(MOUSE_CLICK).build();
-        UsagePattern pattern = patternBuilder.concernedNode(ITERATION).endsWith(endsWithPattern).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void iteration_starts_with_negative_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    EventTask target1 {}" +
-                      "    Sequence {" +
-                      "      EventTask target2 {}" +
-                      "      EventTask target3 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
-        UsagePattern endsWithPattern = patternBuilder.concernedNode(SEQUENCE).startsWith(MOUSE_CLICK).endsWith(MOUSE_CLICK).build();
-        UsagePattern pattern = patternBuilder.concernedNode(ITERATION).endsWith(endsWithPattern).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void selection_starts_with_positive_1() {
-        // Given
-        String spec = "Selection {" + 
-                      "  Sequence {" +
-                      "    MouseClick target2 {}" +
-                      "    MouseClick target3 {}" +
-                      "  }" +
-                      "  MouseClick () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
-        UsagePattern endsWithPattern = patternBuilder.concernedNode(SEQUENCE).startsWith(MOUSE_CLICK).endsWith(MOUSE_CLICK).build();
-        UsagePattern pattern = patternBuilder.concernedNode(SELECTION).endsWith(endsWithPattern).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void selection_starts_with_positive_2() {
-        // Given
-        String spec = "Sequence {" +
-                      "  Optional {" +
-                      "    Sequence {" +
-                      "      EventTask target4 {}" +
-                      "      EventTask target3 {}" +
-                      "    }" +
-                      "  }" +
-                      "  EventTask target1 {}" +
-                      "  EventTask target2 {}" +
-                      "  EventTask target3 {}" +
-                      "  EventTask target4 {}" +
-                      "  Selection {" +
-                      "    TextInput target5 {}" +
-                      "    Selection {" +
-                      "      MouseClick target4 {}" +
-                      "      MouseClick target2 {}" +
-                      "    }" +
-                      "  }" +
-                      "  EventTask target6 {}" +
-                      "  EventTask target7 {}" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
-        UsagePattern endsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(MOUSE_CLICK).endsWith(MOUSE_CLICK).build();
-        UsagePattern pattern = patternBuilder.concernedNode(SELECTION).endsWith(endsWithPattern).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void selection_starts_with_positive_3() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    Iteration {" +
-                      "      Sequence {" +
-                      "        TextInput target3 {}" +
-                      "        MouseClick target4 {}" +
-                      "      }" +
-                      "    }" +
-                      "    Sequence {" +
-                      "      TextInput target5 {}" +
-                      "      EventTask target6 {}" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
-        UsagePattern endsWithPattern = patternBuilder.concernedNode(ITERATION).startsWith(TEXT_INPUT).contains(MOUSE_CLICK).build();
-        UsagePattern pattern = patternBuilder.concernedNode(SELECTION).endsWith(endsWithPattern).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isTrue();
-    }
-    
-    @Test
-    public void selection_starts_with_negative_1() {
-        // Given
-        String spec = "Selection {" + 
-                      "  DragAndDrop () {}" + 
-                      "  MouseClick () {}" + 
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
-        UsagePattern endsWithPattern = patternBuilder.concernedNode(SEQUENCE).startsWith(TEXT_INPUT).contains(MOUSE_CLICK).build();
-        UsagePattern pattern = patternBuilder.concernedNode(SELECTION).endsWith(endsWithPattern).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-    
-    @Test
-    public void selection_starts_with_negative_2() {
-        // Given
-        String spec = "Iteration {" +
-                      "  Selection {" +
-                      "    Iteration {" +
-                      "      Sequence {"+
-                      "        TextInput target3 {}" +
-                      "        TextInput target4 {}" +
-                      "      }" +
-                      "    }" +
-                      "    Iteration {" +
-                      "      Sequence {"+
-                      "        MouseClick target5 {}" +
-                      "        TextInput target6 {}" +
-                      "      }" +
-                      "    }" +
-                      "  }" +
-                      "}";
-        ITaskTree taskTree = GenerateTaskTreeUtil.getTaskTreeFromSpec(spec);
-        UsagePatternBuilder patternBuilder = new UsagePatternBuilder();
-        UsagePattern endsWithPattern = patternBuilder.concernedNode(ITERATION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        UsagePattern pattern = patternBuilder.concernedNode(SELECTION).endsWith(endsWithPattern).build();
-        // When
-        boolean patternContained = pattern.containedIn(taskTree);
-        // Then
-        assertThat(patternContained).isFalse();
-    }
-
 }
