Index: trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/AllTests.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/AllTests.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/AllTests.java	(revision 1218)
@@ -22,5 +22,5 @@
 import de.ugoe.cs.autoquest.usability.rules.metrics.TextInputEntryRepetitionsEvaluatorTest;
 import de.ugoe.cs.autoquest.usability.rules.metrics.TextInputRatioEvaluatorTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.LongFormUsageDefectTest;
+import de.ugoe.cs.autoquest.usability.rules.patterns.LongFormUsageProblemTest;
 import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.contains.ContainsAndEndsWithEventTest;
 import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.contains.ContainsEventTest;
@@ -75,5 +75,5 @@
       // P -> E
       // P -> P
-      LongFormUsageDefectTest.class
+      LongFormUsageProblemTest.class
     }
 )
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 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/NoLetterOrDigitTextInputsEvaluatorTest.java	(revision 1218)
@@ -28,5 +28,5 @@
 
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
-import de.ugoe.cs.autoquest.usability.result.UsabilityDefect;
+import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescription;
 import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskModelUtil;
 
@@ -50,5 +50,5 @@
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new NoLetterOrDigitRatioMetric(taskTree).calculate();
+        Optional<UsabilityProblemDescription> recommendation = new NoLetterOrDigitRatioMetric(taskTree).calculate();
         // Then
         assertThat(recommendation).is(absent());
@@ -66,5 +66,5 @@
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new NoLetterOrDigitRatioMetric(taskTree).calculate();
+        Optional<UsabilityProblemDescription> recommendation = new NoLetterOrDigitRatioMetric(taskTree).calculate();
         // Then
         assertThat(recommendation).is(present()).has(infoRecommendationSeverityLevel());
@@ -81,5 +81,5 @@
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new NoLetterOrDigitRatioMetric(taskTree).calculate();
+        Optional<UsabilityProblemDescription> recommendation = new NoLetterOrDigitRatioMetric(taskTree).calculate();
         // Then
         assertThat(recommendation).is(present()).has(lowRecommendationSeverityLevel());
@@ -96,5 +96,5 @@
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new NoLetterOrDigitRatioMetric(taskTree).calculate();
+        Optional<UsabilityProblemDescription> recommendation = new NoLetterOrDigitRatioMetric(taskTree).calculate();
         // Then
         assertThat(recommendation).is(present()).has(mediumRecommendationSeverityLevel());
@@ -111,5 +111,5 @@
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new NoLetterOrDigitRatioMetric(taskTree).calculate();
+        Optional<UsabilityProblemDescription> recommendation = new NoLetterOrDigitRatioMetric(taskTree).calculate();
         // Then
         assertThat(recommendation).is(present()).has(highRecommendationSeverityLevel());
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 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputEntryRepetitionsEvaluatorTest.java	(revision 1218)
@@ -28,5 +28,5 @@
 
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
-import de.ugoe.cs.autoquest.usability.result.UsabilityDefect;
+import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescription;
 import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskModelUtil;
 
@@ -50,5 +50,5 @@
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new TextInputEntryRepetitionsMetric(taskTree).calculate();
+        Optional<UsabilityProblemDescription> recommendation = new TextInputEntryRepetitionsMetric(taskTree).calculate();
         // Then
         assertThat(recommendation).is(absent());
@@ -70,5 +70,5 @@
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new TextInputEntryRepetitionsMetric(taskTree).calculate();
+        Optional<UsabilityProblemDescription> recommendation = new TextInputEntryRepetitionsMetric(taskTree).calculate();
         // Then
         assertThat(recommendation).is(present()).has(infoRecommendationSeverityLevel());
@@ -90,5 +90,5 @@
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new TextInputEntryRepetitionsMetric(taskTree).calculate();
+        Optional<UsabilityProblemDescription> recommendation = new TextInputEntryRepetitionsMetric(taskTree).calculate();
         // Then
         assertThat(recommendation).is(present()).has(lowRecommendationSeverityLevel());
@@ -137,5 +137,5 @@
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new TextInputEntryRepetitionsMetric(taskTree).calculate();
+        Optional<UsabilityProblemDescription> recommendation = new TextInputEntryRepetitionsMetric(taskTree).calculate();
         // Then
         assertThat(recommendation).is(present()).has(mediumRecommendationSeverityLevel());
@@ -184,5 +184,5 @@
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new TextInputEntryRepetitionsMetric(taskTree).calculate();
+        Optional<UsabilityProblemDescription> recommendation = new TextInputEntryRepetitionsMetric(taskTree).calculate();
         // Then
         assertThat(recommendation).is(present()).has(highRecommendationSeverityLevel());
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 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputRatioEvaluatorTest.java	(revision 1218)
@@ -28,5 +28,5 @@
 
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
-import de.ugoe.cs.autoquest.usability.result.UsabilityDefect;
+import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescription;
 import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskModelUtil;
 
@@ -57,5 +57,5 @@
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new TextInputRatioMetric(taskTree).calculate();
+        Optional<UsabilityProblemDescription> recommendation = new TextInputRatioMetric(taskTree).calculate();
         // Then
         assertThat(recommendation).is(absent());
@@ -76,5 +76,5 @@
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new TextInputRatioMetric(taskTree).calculate();
+        Optional<UsabilityProblemDescription> recommendation = new TextInputRatioMetric(taskTree).calculate();
         // Then
         assertThat(recommendation).is(present()).has(infoRecommendationSeverityLevel());
@@ -95,5 +95,5 @@
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new TextInputRatioMetric(taskTree).calculate();
+        Optional<UsabilityProblemDescription> recommendation = new TextInputRatioMetric(taskTree).calculate();
         // Then
         assertThat(recommendation).is(present()).has(lowRecommendationSeverityLevel());
@@ -113,5 +113,5 @@
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new TextInputRatioMetric(taskTree).calculate();
+        Optional<UsabilityProblemDescription> recommendation = new TextInputRatioMetric(taskTree).calculate();
         // Then
         assertThat(recommendation).is(present()).has(mediumRecommendationSeverityLevel());
@@ -126,5 +126,5 @@
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
         // When
-        Optional<UsabilityDefect> recommendation = new TextInputRatioMetric(taskTree).calculate();
+        Optional<UsabilityProblemDescription> recommendation = new TextInputRatioMetric(taskTree).calculate();
         // Then
         assertThat(recommendation).is(present()).has(highRecommendationSeverityLevel());
Index: trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/AllTests.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/AllTests.java	(revision 1205)
+++ 	(revision )
@@ -1,74 +1,0 @@
-//   Copyright 2012 Georg-August-Universität Göttingen, Germany
-//
-//   Licensed under the Apache License, Version 2.0 (the "License");
-//   you may not use this file except in compliance with the License.
-//   You may obtain a copy of the License at
-//
-//       http://www.apache.org/licenses/LICENSE-2.0
-//
-//   Unless required by applicable law or agreed to in writing, software
-//   distributed under the License is distributed on an "AS IS" BASIS,
-//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//   See the License for the specific language governing permissions and
-//   limitations under the License.
-
-package de.ugoe.cs.autoquest.usability.rules.patterns;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-import org.junit.runners.Suite.SuiteClasses;
-
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.contains.ContainsAndEndsWithEventTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.contains.ContainsEventTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.contains.ContainsPatternTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.endswith.EndsWithEventTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.endswith.EndsWithPatternTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsAndEndsWithEventAndContainsEventTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsAndEndsWithEventTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsAndEndsWithPatternAndContainsPatternTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsAndEndsWithPatternTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsWithEventAndContainsEventTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsWithEventAndContainsPatternTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsWithEventAndEndsWithPatternTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsWithEventContainsEventEndsWithPatternTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsWithEventContainsPatternAndEndsWithEventTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsWithEventContainsPatternAndEndsWithPatternTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsWithEventTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsWithPatternAndContainsEventTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsWithPatternAndContainsPatternTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsWithPatternAndEndsWithEventTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsWithPatternContainsEventAndEndsWithEventTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsWithPatternContainsEventAndEndsWithPatternTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsWithPatternContainsPatternAndEndsWithEventTest;
-import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith.StartsWithPatternTest;
-
-/**
- * <p>
- * TODO comment
- * </p>
- * 
- * @author Alexander Deicke
- */
-@RunWith(Suite.class)
-@SuiteClasses(
-    { 
-      StartsWithEventTest.class, StartsWithPatternTest.class,
-      StartsWithEventAndContainsEventTest.class, StartsWithPatternAndContainsPatternTest.class,
-      StartsWithEventAndContainsPatternTest.class, StartsWithPatternAndContainsEventTest.class, 
-      StartsAndEndsWithEventTest.class, StartsAndEndsWithPatternTest.class,
-      StartsWithEventAndEndsWithPatternTest.class, StartsWithPatternAndEndsWithEventTest.class,
-      StartsAndEndsWithEventAndContainsEventTest.class, StartsAndEndsWithPatternAndContainsPatternTest.class,
-      StartsWithEventContainsEventEndsWithPatternTest.class, StartsWithPatternContainsEventAndEndsWithPatternTest.class,
-      StartsWithEventContainsPatternAndEndsWithEventTest.class, StartsWithPatternContainsPatternAndEndsWithEventTest.class,
-      StartsWithEventContainsPatternAndEndsWithPatternTest.class, StartsWithPatternContainsEventAndEndsWithEventTest.class,
-      EndsWithEventTest.class, EndsWithPatternTest.class,
-      ContainsEventTest.class, ContainsPatternTest.class,
-      ContainsAndEndsWithEventTest.class
-      // E -> P
-      // P -> E
-      // P -> P
-    }
-)
-public class AllTests {
-
-}
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 1205)
+++ 	(revision )
@@ -1,78 +1,0 @@
-//   Copyright 2012 Georg-August-Universität Göttingen, Germany
-//
-//   Licensed under the Apache License, Version 2.0 (the "License");
-//   you may not use this file except in compliance with the License.
-//   You may obtain a copy of the License at
-//
-//       http://www.apache.org/licenses/LICENSE-2.0
-//
-//   Unless required by applicable law or agreed to in writing, software
-//   distributed under the License is distributed on an "AS IS" BASIS,
-//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//   See the License for the specific language governing permissions and
-//   limitations under the License.
-
-package de.ugoe.cs.autoquest.usability.rules.patterns;
-
-import static de.ugoe.cs.autoquest.usability.testutil.FestConditionUtil.absent;
-import static de.ugoe.cs.autoquest.usability.testutil.FestConditionUtil.present;
-import static org.fest.assertions.api.Assertions.assertThat;
-
-import org.junit.Test;
-
-import com.google.common.base.Optional;
-
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
-import de.ugoe.cs.autoquest.usability.result.UsabilityDefect;
-import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskModelUtil;
-
-/**
- * <p>
- * TODO comment
- * </p>
- * 
- * @author Alexander Deicke
- */
-public class LongFormUsageDefectTest {
-
-	@Test
-    public void should_be_present() {
-        // Given
-        String spec = "UserSession {" +
-        	      "  Sequence sequence1 {" +
-        	      "    MouseClick t1 {}" +
-        	      "    Iteration iteration1 {" +
-        	      "      Sequence sequence3 {" +
-        	      "        TextInput t {}" +
-        	      "        Scroll p {}" +
-        	      "      }" +
-        	      "    }" +
-        	      "    MouseClick b2 {}" +
-        	      "  }" +  
-                      "}";
-        ITaskModel taskModel = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        // When
-        Optional<UsabilityDefect> recommendation = new LongFormUsageDefect(taskModel).check();
-        // Then
-        assertThat(recommendation).is(present());
-    }
-    
-    @Test
-    public void should_be_absent() {
-        // Given
-        String spec = "UserSession {" +
-                      "  Sequence sequence1 {" +
-                      "    MouseClick t1 {}" +
-                      "    TextInput t {}" +
-                      "    Scroll p {}" +
-                      "    MouseClick b2 {}" +
-                      "  }" +  
-                      "}";
-        ITaskModel taskModel = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        // When
-        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/LongFormUsageProblemTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/LongFormUsageProblemTest.java	(revision 1218)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/LongFormUsageProblemTest.java	(revision 1218)
@@ -0,0 +1,78 @@
+//   Copyright 2012 Georg-August-Universität Göttingen, Germany
+//
+//   Licensed under the Apache License, Version 2.0 (the "License");
+//   you may not use this file except in compliance with the License.
+//   You may obtain a copy of the License at
+//
+//       http://www.apache.org/licenses/LICENSE-2.0
+//
+//   Unless required by applicable law or agreed to in writing, software
+//   distributed under the License is distributed on an "AS IS" BASIS,
+//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//   See the License for the specific language governing permissions and
+//   limitations under the License.
+
+package de.ugoe.cs.autoquest.usability.rules.patterns;
+
+import static de.ugoe.cs.autoquest.usability.testutil.FestConditionUtil.absent;
+import static de.ugoe.cs.autoquest.usability.testutil.FestConditionUtil.present;
+import static org.fest.assertions.api.Assertions.assertThat;
+
+import org.junit.Test;
+
+import com.google.common.base.Optional;
+
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
+import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescription;
+import de.ugoe.cs.autoquest.usability.testutil.GenerateTaskModelUtil;
+
+/**
+ * <p>
+ * TODO comment
+ * </p>
+ * 
+ * @author Alexander Deicke
+ */
+public class LongFormUsageProblemTest {
+
+	@Test
+    public void should_be_present() {
+        // Given
+        String spec = "UserSession {" +
+        	      "  Sequence sequence1 {" +
+        	      "    MouseClick t1 {}" +
+        	      "    Iteration iteration1 {" +
+        	      "      Sequence sequence3 {" +
+        	      "        TextInput t {}" +
+        	      "        Scroll p {}" +
+        	      "      }" +
+        	      "    }" +
+        	      "    MouseClick b2 {}" +
+        	      "  }" +  
+                      "}";
+        ITaskModel taskModel = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
+        // When
+        Optional<UsabilityProblemDescription> recommendation = new LongFormUsageProblem(taskModel).check();
+        // Then
+        assertThat(recommendation).is(present());
+    }
+    
+    @Test
+    public void should_be_absent() {
+        // Given
+        String spec = "UserSession {" +
+                      "  Sequence sequence1 {" +
+                      "    MouseClick t1 {}" +
+                      "    TextInput t {}" +
+                      "    Scroll p {}" +
+                      "    MouseClick b2 {}" +
+                      "  }" +  
+                      "}";
+        ITaskModel taskModel = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
+        // When
+        Optional<UsabilityProblemDescription> recommendation = new LongFormUsageProblem(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 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/contains/ContainsAndEndsWithEventTest.java	(revision 1218)
@@ -15,8 +15,8 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.contains;
 
-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.SELECTION;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SELECTION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -46,5 +46,5 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).endsWith(TEXT_INPUT).build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).containsEvent(TEXT_INPUT).endsWithEvent(TEXT_INPUT).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -66,5 +66,5 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).containsEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().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/contains/ContainsEventTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/contains/ContainsEventTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/contains/ContainsEventTest.java	(revision 1218)
@@ -15,7 +15,7 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.contains;
 
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter.TEXT_INPUT;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SELECTION;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SELECTION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -45,5 +45,5 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).contains(TEXT_INPUT).build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).containsEvent(TEXT_INPUT).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -64,5 +64,5 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).containsEvent(TEXT_INPUT).patternFinished().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/contains/ContainsPatternTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/contains/ContainsPatternTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/contains/ContainsPatternTest.java	(revision 1218)
@@ -15,7 +15,7 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.contains;
 
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter.TEXT_INPUT;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SELECTION;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SELECTION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -50,7 +50,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern containsPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(TEXT_INPUT).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).contains(containsPattern).build();
+        InteractionPattern containsPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(TEXT_INPUT).endsWithEvent(TEXT_INPUT).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).containsPattern(containsPattern).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -79,5 +78,5 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SELECTION).contains(TEXT_INPUT).build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).containsEvent(TEXT_INPUT).patternFinished().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/EndsWithEventTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/endswith/EndsWithEventTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/endswith/EndsWithEventTest.java	(revision 1218)
@@ -15,6 +15,6 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.endswith;
 
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter.TEXT_INPUT;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -52,5 +52,5 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).endsWith(TEXT_INPUT).build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).endsWithEvent(TEXT_INPUT).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -83,5 +83,5 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).endsWith(TEXT_INPUT).build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).endsWithEvent(TEXT_INPUT).patternFinished().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 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/endswith/EndsWithPatternTest.java	(revision 1218)
@@ -15,9 +15,9 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.endswith;
 
-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;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.ITERATION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SELECTION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -60,7 +60,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern endsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).endsWith(endsWithPattern).build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).endsWithPattern(endsWithPattern).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -98,7 +97,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern endsWithPattern = patternBuilder.concernedNode(ITERATION).startsWith(MOUSE_CLICK).contains(TEXT_INPUT).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).endsWith(endsWithPattern).build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).startsWithEvent(MOUSE_CLICK).containsEvent(TEXT_INPUT).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).endsWithPattern(endsWithPattern).patternFinished().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/startswith/StartsAndEndsWithEventAndContainsEventTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsAndEndsWithEventAndContainsEventTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsAndEndsWithEventAndContainsEventTest.java	(revision 1218)
@@ -15,7 +15,7 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-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.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -52,5 +52,5 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(TEXT_INPUT).contains(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).containsEvent(MOUSE_CLICK).endsWithEvent(TEXT_INPUT).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -83,5 +83,5 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(TEXT_INPUT).contains(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).containsEvent(MOUSE_CLICK).endsWithEvent(TEXT_INPUT).patternFinished().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/startswith/StartsAndEndsWithEventTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsAndEndsWithEventTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsAndEndsWithEventTest.java	(revision 1218)
@@ -15,8 +15,8 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-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.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.ITERATION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -52,5 +52,5 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -76,5 +76,5 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(ITERATION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().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/startswith/StartsAndEndsWithPatternAndContainsPatternTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsAndEndsWithPatternAndContainsPatternTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsAndEndsWithPatternAndContainsPatternTest.java	(revision 1218)
@@ -15,8 +15,8 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-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.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.ITERATION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -55,9 +55,8 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder builder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = builder.concernedNode(ITERATION).contains(MOUSE_CLICK).build();
-        InteractionPattern containedPattern = builder.concernedNode(SEQUENCE).startsWith(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
-        InteractionPattern endsWithPattern = builder.concernedNode(ITERATION).contains(TEXT_INPUT).build();
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(startsWithPattern).contains(containedPattern).endsWith(endsWithPattern).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).containsEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern containedPattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(MOUSE_CLICK).endsWithEvent(TEXT_INPUT).patternFinished().build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).containsEvent(TEXT_INPUT).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithPattern(startsWithPattern).containsPattern(containedPattern).endsWithPattern(endsWithPattern).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -84,9 +83,8 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder builder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = builder.concernedNode(ITERATION).contains(MOUSE_CLICK).build();
-        InteractionPattern containedPattern = builder.concernedNode(SEQUENCE).startsWith(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
-        InteractionPattern endsWithPattern = builder.concernedNode(ITERATION).contains(TEXT_INPUT).build();
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(startsWithPattern).contains(containedPattern).endsWith(endsWithPattern).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).containsEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern containedPattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(MOUSE_CLICK).endsWithEvent(TEXT_INPUT).patternFinished().build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).containsEvent(TEXT_INPUT).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithPattern(startsWithPattern).containsPattern(containedPattern).endsWithPattern(endsWithPattern).patternFinished().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/startswith/StartsAndEndsWithPatternTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsAndEndsWithPatternTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsAndEndsWithPatternTest.java	(revision 1218)
@@ -15,9 +15,9 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-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;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.ITERATION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SELECTION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -59,8 +59,7 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = patternBuilder.concernedNode(ITERATION).contains(MOUSE_CLICK).build();
-        InteractionPattern endsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).startsWith(startsWithPattern).endsWith(endsWithPattern).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).containsEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithPattern(startsWithPattern).endsWithPattern(endsWithPattern).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -90,8 +89,7 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = patternBuilder.concernedNode(ITERATION).contains(MOUSE_CLICK).build();
-        InteractionPattern endsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(ITERATION).startsWith(endsWithPattern).endsWith(startsWithPattern).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).containsEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).startsWithPattern(endsWithPattern).endsWithPattern(startsWithPattern).patternFinished().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/startswith/StartsWithEventAndContainsEventTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithEventAndContainsEventTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithEventAndContainsEventTest.java	(revision 1218)
@@ -15,7 +15,7 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-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.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -51,5 +51,5 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(TEXT_INPUT).contains(MOUSE_CLICK).build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).containsEvent(MOUSE_CLICK).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -82,5 +82,5 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(TEXT_INPUT).contains(MOUSE_CLICK).build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).containsEvent(MOUSE_CLICK).patternFinished().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/startswith/StartsWithEventAndContainsPatternTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithEventAndContainsPatternTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithEventAndContainsPatternTest.java	(revision 1218)
@@ -15,8 +15,8 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-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.SELECTION;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SELECTION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -57,7 +57,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder builder = new InteractionPatternBuilder();
-        InteractionPattern endsWithPattern = builder.concernedNode(SELECTION).startsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = builder.concernedNode(SEQUENCE).startsWith(TEXT_INPUT).endsWith(endsWithPattern).build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).endsWithPattern(endsWithPattern).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -93,7 +92,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder builder = new InteractionPatternBuilder();
-        InteractionPattern endsWithPattern = builder.concernedNode(SEQUENCE).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = builder.concernedNode(SEQUENCE).startsWith(MOUSE_CLICK).endsWith(endsWithPattern).build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(MOUSE_CLICK).endsWithPattern(endsWithPattern).patternFinished().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/startswith/StartsWithEventAndEndsWithPatternTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithEventAndEndsWithPatternTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithEventAndEndsWithPatternTest.java	(revision 1218)
@@ -15,8 +15,8 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-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.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.ITERATION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -50,7 +50,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder builder = new InteractionPatternBuilder();
-        InteractionPattern endsWithPattern = builder.concernedNode(ITERATION).startsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(TEXT_INPUT).contains(MOUSE_CLICK).endsWith(endsWithPattern).build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).startsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).containsEvent(MOUSE_CLICK).endsWithPattern(endsWithPattern).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -72,7 +71,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder builder = new InteractionPatternBuilder();
-        InteractionPattern endsWithPattern = builder.concernedNode(ITERATION).startsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(TEXT_INPUT).contains(MOUSE_CLICK).endsWith(endsWithPattern).build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).startsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).containsEvent(MOUSE_CLICK).endsWithPattern(endsWithPattern).patternFinished().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/startswith/StartsWithEventContainsEventEndsWithPatternTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithEventContainsEventEndsWithPatternTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithEventContainsEventEndsWithPatternTest.java	(revision 1218)
@@ -15,8 +15,8 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-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.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.ITERATION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -50,7 +50,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder builder = new InteractionPatternBuilder();
-        InteractionPattern endsWithPattern = builder.concernedNode(ITERATION).startsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(TEXT_INPUT).endsWith(endsWithPattern).build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).startsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).endsWithPattern(endsWithPattern).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -72,7 +71,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder builder = new InteractionPatternBuilder();
-        InteractionPattern endsWithPattern = builder.concernedNode(ITERATION).startsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(TEXT_INPUT).endsWith(endsWithPattern).build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).startsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).endsWithPattern(endsWithPattern).patternFinished().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/startswith/StartsWithEventContainsPatternAndEndsWithEventTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithEventContainsPatternAndEndsWithEventTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithEventContainsPatternAndEndsWithEventTest.java	(revision 1218)
@@ -15,8 +15,8 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-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.SELECTION;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SELECTION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -60,7 +60,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder builder = new InteractionPatternBuilder();
-        InteractionPattern containedPattern = builder.concernedNode(SELECTION).startsWith(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(TEXT_INPUT).contains(containedPattern).endsWith(TEXT_INPUT).build();
+        InteractionPattern containedPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(MOUSE_CLICK).endsWithEvent(TEXT_INPUT).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).containsPattern(containedPattern).endsWithEvent(TEXT_INPUT).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -92,7 +91,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder builder = new InteractionPatternBuilder();
-        InteractionPattern containedPattern = builder.concernedNode(SELECTION).startsWith(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(TEXT_INPUT).contains(containedPattern).endsWith(TEXT_INPUT).build();
+        InteractionPattern containedPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(MOUSE_CLICK).endsWithEvent(TEXT_INPUT).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).containsPattern(containedPattern).endsWithEvent(TEXT_INPUT).patternFinished().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/startswith/StartsWithEventContainsPatternAndEndsWithPatternTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithEventContainsPatternAndEndsWithPatternTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithEventContainsPatternAndEndsWithPatternTest.java	(revision 1218)
@@ -15,9 +15,9 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-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;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.ITERATION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SELECTION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -61,8 +61,7 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder builder = new InteractionPatternBuilder();
-        InteractionPattern containedPattern = builder.concernedNode(SELECTION).startsWith(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
-        InteractionPattern endsWithPattern = builder.concernedNode(ITERATION).startsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(TEXT_INPUT).contains(containedPattern).endsWith(endsWithPattern).build();
+        InteractionPattern containedPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(MOUSE_CLICK).endsWithEvent(TEXT_INPUT).patternFinished().build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).startsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).containsPattern(containedPattern).endsWithPattern(endsWithPattern).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -91,7 +90,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder builder = new InteractionPatternBuilder();
-        InteractionPattern endsWithPattern = builder.concernedNode(ITERATION).startsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(TEXT_INPUT).contains(MOUSE_CLICK).endsWith(endsWithPattern).build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).startsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).containsEvent(MOUSE_CLICK).endsWithPattern(endsWithPattern).patternFinished().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/startswith/StartsWithEventTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithEventTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithEventTest.java	(revision 1218)
@@ -15,6 +15,6 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter.TEXT_INPUT;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -39,5 +39,5 @@
         // Given
         String spec = "UserSession {" +
-        		      "  Selection sel1 {" +
+                      "  Selection sel1 {" +
                       "    EventTask target1 {}" +
                       "  }" +
@@ -50,5 +50,5 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(TEXT_INPUT).build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -61,5 +61,5 @@
         // Given
         String spec = "UserSession {" +
-        		      "  Iteration iter1 {" +
+        	      "  Iteration iter1 {" +
                       "    Selection sel1 {" +
                       "      EventTask target2 {}" +
@@ -71,5 +71,5 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPattern pattern = new InteractionPatternBuilder().concernedNode(SEQUENCE).startsWith(TEXT_INPUT).build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(TEXT_INPUT).patternFinished().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/startswith/StartsWithPatternAndContainsEventTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithPatternAndContainsEventTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithPatternAndContainsEventTest.java	(revision 1218)
@@ -15,8 +15,8 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-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.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.ITERATION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -54,7 +54,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = patternBuilder.concernedNode(ITERATION).startsWith(TEXT_INPUT).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).startsWith(startsWithPattern).contains(MOUSE_CLICK).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).startsWithEvent(TEXT_INPUT).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithPattern(startsWithPattern).containsEvent(MOUSE_CLICK).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -79,7 +78,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = patternBuilder.concernedNode(ITERATION).contains(TEXT_INPUT).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).startsWith(startsWithPattern).contains(MOUSE_CLICK).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).containsEvent(TEXT_INPUT).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithPattern(startsWithPattern).containsEvent(MOUSE_CLICK).patternFinished().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/startswith/StartsWithPatternAndContainsPatternTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithPatternAndContainsPatternTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithPatternAndContainsPatternTest.java	(revision 1218)
@@ -15,9 +15,9 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-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;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.ITERATION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SELECTION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -62,8 +62,7 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = patternBuilder.concernedNode(ITERATION).contains(MOUSE_CLICK).build();
-        InteractionPattern containedPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).startsWith(startsWithPattern).contains(containedPattern).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).containsEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern containedPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithPattern(startsWithPattern).containsPattern(containedPattern).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -96,8 +95,7 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = patternBuilder.concernedNode(ITERATION).contains(MOUSE_CLICK).build();
-        InteractionPattern endsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(ITERATION).startsWith(endsWithPattern).endsWith(startsWithPattern).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).containsEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).startsWithPattern(endsWithPattern).endsWithPattern(startsWithPattern).patternFinished().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/startswith/StartsWithPatternAndEndsWithEventTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithPatternAndEndsWithEventTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithPatternAndEndsWithEventTest.java	(revision 1218)
@@ -15,8 +15,8 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-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.SELECTION;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SELECTION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -59,7 +59,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).startsWith(startsWithPattern).endsWith(TEXT_INPUT).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithPattern(startsWithPattern).endsWithEvent(TEXT_INPUT).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -90,7 +89,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).startsWith(startsWithPattern).endsWith(TEXT_INPUT).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithPattern(startsWithPattern).endsWithEvent(TEXT_INPUT).patternFinished().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/startswith/StartsWithPatternContainsEventAndEndsWithEventTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithPatternContainsEventAndEndsWithEventTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithPatternContainsEventAndEndsWithEventTest.java	(revision 1218)
@@ -15,8 +15,8 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-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.SELECTION;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SELECTION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -59,7 +59,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).startsWith(startsWithPattern).contains(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithPattern(startsWithPattern).containsEvent(MOUSE_CLICK).endsWithEvent(TEXT_INPUT).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -90,7 +89,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).startsWith(startsWithPattern).contains(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithPattern(startsWithPattern).containsEvent(MOUSE_CLICK).endsWithEvent(TEXT_INPUT).patternFinished().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/startswith/StartsWithPatternContainsEventAndEndsWithPatternTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithPatternContainsEventAndEndsWithPatternTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithPatternContainsEventAndEndsWithPatternTest.java	(revision 1218)
@@ -15,9 +15,9 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter.MOUSE_CLICK;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter.SCROLL;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter.TEXT_INPUT;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SELECTION;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.SCROLL;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SELECTION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -72,8 +72,7 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        InteractionPattern endsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).startsWith(startsWithPattern).contains(MOUSE_CLICK).endsWith(endsWithPattern).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithPattern(startsWithPattern).containsEvent(MOUSE_CLICK).endsWithPattern(endsWithPattern).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -116,8 +115,7 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        InteractionPattern endsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).startsWith(startsWithPattern).contains(SCROLL).endsWith(endsWithPattern).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern endsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithPattern(startsWithPattern).containsEvent(SCROLL).endsWithPattern(endsWithPattern).patternFinished().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/startswith/StartsWithPatternContainsPatternAndEndsWithEventTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithPatternContainsPatternAndEndsWithEventTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithPatternContainsPatternAndEndsWithEventTest.java	(revision 1218)
@@ -15,8 +15,8 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-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.SELECTION;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SELECTION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -62,8 +62,7 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        InteractionPattern containsPattern = patternBuilder.concernedNode(SEQUENCE).startsWith(MOUSE_CLICK).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).startsWith(startsWithPattern).contains(containsPattern).endsWith(TEXT_INPUT).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern containsPattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithPattern(startsWithPattern).containsPattern(containsPattern).endsWithEvent(TEXT_INPUT).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -97,8 +96,7 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = patternBuilder.concernedNode(SELECTION).startsWith(TEXT_INPUT).endsWith(MOUSE_CLICK).build();
-        InteractionPattern containsPattern = patternBuilder.concernedNode(SEQUENCE).startsWith(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).startsWith(startsWithPattern).contains(containsPattern).endsWith(TEXT_INPUT).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SELECTION).startsWithEvent(TEXT_INPUT).endsWithEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern containsPattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(MOUSE_CLICK).endsWithEvent(TEXT_INPUT).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithPattern(startsWithPattern).containsPattern(containsPattern).endsWithEvent(TEXT_INPUT).patternFinished().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/startswith/StartsWithPatternTest.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithPatternTest.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/startswith/StartsWithPatternTest.java	(revision 1218)
@@ -15,8 +15,8 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors.startswith;
 
-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.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.MOUSE_CLICK;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.EventTypeFilter.TEXT_INPUT;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.ITERATION;
+import static de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter.SEQUENCE;
 import static org.fest.assertions.api.Assertions.assertThat;
 
@@ -57,7 +57,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = patternBuilder.concernedNode(ITERATION).startsWith(TEXT_INPUT).contains(MOUSE_CLICK).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).startsWith(startsWithPattern).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(ITERATION).startsWithEvent(TEXT_INPUT).containsEvent(MOUSE_CLICK).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithPattern(startsWithPattern).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
@@ -86,7 +85,6 @@
                       "}";
         ITaskModel taskTree = GenerateTaskModelUtil.getTaskModelFromSpec(spec);
-        InteractionPatternBuilder patternBuilder = new InteractionPatternBuilder();
-        InteractionPattern startsWithPattern = patternBuilder.concernedNode(SEQUENCE).startsWith(MOUSE_CLICK).endsWith(TEXT_INPUT).build();
-        InteractionPattern pattern = patternBuilder.concernedNode(SEQUENCE).startsWith(startsWithPattern).build();
+        InteractionPattern startsWithPattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithEvent(MOUSE_CLICK).endsWithEvent(TEXT_INPUT).patternFinished().build();
+        InteractionPattern pattern = InteractionPatternBuilder.newPattern().rootTask(SEQUENCE).startsWithPattern(startsWithPattern).patternFinished().build();
         // When
         boolean patternContained = pattern.containedIn(taskTree);
Index: trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/testutil/FestConditionUtil.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/testutil/FestConditionUtil.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/testutil/FestConditionUtil.java	(revision 1218)
@@ -19,6 +19,6 @@
 import com.google.common.base.Optional;
 
-import de.ugoe.cs.autoquest.usability.result.UsabilityDefect;
-import de.ugoe.cs.autoquest.usability.result.UsabilityDefectSeverityLevel;
+import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescription;
+import de.ugoe.cs.autoquest.usability.result.UsabilityProblemSeverityLevel;
 import de.ugoe.cs.autoquest.usability.rules.UsabilityResult;
 
@@ -41,5 +41,5 @@
             @Override
             public boolean matches(UsabilityResult usabilityResult) {
-                return !usabilityResult.hasDefects();
+                return !usabilityResult.hasDetectedProblems();
             }
         };
@@ -51,14 +51,14 @@
             @Override
             public boolean matches(UsabilityResult usabilityResult) {
-                return usabilityResult.hasDefects();
+                return usabilityResult.hasDetectedProblems();
             }
         };
     }
 
-    public static Condition<Optional<UsabilityDefect>> present() {
-        return new Condition<Optional<UsabilityDefect>>() {
+    public static Condition<Optional<UsabilityProblemDescription>> present() {
+        return new Condition<Optional<UsabilityProblemDescription>>() {
 
             @Override
-            public boolean matches(Optional<UsabilityDefect> usabilityGuidlineRecommendation) {
+            public boolean matches(Optional<UsabilityProblemDescription> usabilityGuidlineRecommendation) {
                 return usabilityGuidlineRecommendation.isPresent();
             }
@@ -67,9 +67,9 @@
     }
 
-    public static Condition<Optional<UsabilityDefect>> absent() {
-        return new Condition<Optional<UsabilityDefect>>() {
+    public static Condition<Optional<UsabilityProblemDescription>> absent() {
+        return new Condition<Optional<UsabilityProblemDescription>>() {
 
             @Override
-            public boolean matches(Optional<UsabilityDefect> usabilityGuidlineRecommendation) {
+            public boolean matches(Optional<UsabilityProblemDescription> usabilityGuidlineRecommendation) {
                 return !usabilityGuidlineRecommendation.isPresent();
             }
@@ -78,11 +78,11 @@
     }
 
-    public static Condition<Optional<UsabilityDefect>> infoRecommendationSeverityLevel() {
-        return new Condition<Optional<UsabilityDefect>>() {
+    public static Condition<Optional<UsabilityProblemDescription>> infoRecommendationSeverityLevel() {
+        return new Condition<Optional<UsabilityProblemDescription>>() {
 
             @Override
-            public boolean matches(Optional<UsabilityDefect> usabilityGuidlineRecommendation) {
+            public boolean matches(Optional<UsabilityProblemDescription> usabilityGuidlineRecommendation) {
                 return usabilityGuidlineRecommendation.get().getSeverityLevel()
-                    .equals(UsabilityDefectSeverityLevel.INFO);
+                    .equals(UsabilityProblemSeverityLevel.INFO);
             }
 
@@ -90,11 +90,11 @@
     }
 
-    public static Condition<Optional<UsabilityDefect>> lowRecommendationSeverityLevel() {
-        return new Condition<Optional<UsabilityDefect>>() {
+    public static Condition<Optional<UsabilityProblemDescription>> lowRecommendationSeverityLevel() {
+        return new Condition<Optional<UsabilityProblemDescription>>() {
 
             @Override
-            public boolean matches(Optional<UsabilityDefect> usabilityGuidlineRecommendation) {
+            public boolean matches(Optional<UsabilityProblemDescription> usabilityGuidlineRecommendation) {
                 return usabilityGuidlineRecommendation.get().getSeverityLevel()
-                    .equals(UsabilityDefectSeverityLevel.LOW);
+                    .equals(UsabilityProblemSeverityLevel.LOW);
             }
 
@@ -102,11 +102,11 @@
     }
 
-    public static Condition<Optional<UsabilityDefect>> mediumRecommendationSeverityLevel() {
-        return new Condition<Optional<UsabilityDefect>>() {
+    public static Condition<Optional<UsabilityProblemDescription>> mediumRecommendationSeverityLevel() {
+        return new Condition<Optional<UsabilityProblemDescription>>() {
 
             @Override
-            public boolean matches(Optional<UsabilityDefect> usabilityGuidlineRecommendation) {
+            public boolean matches(Optional<UsabilityProblemDescription> usabilityGuidlineRecommendation) {
                 return usabilityGuidlineRecommendation.get().getSeverityLevel()
-                    .equals(UsabilityDefectSeverityLevel.MEDIUM);
+                    .equals(UsabilityProblemSeverityLevel.MEDIUM);
             }
 
@@ -114,11 +114,11 @@
     }
 
-    public static Condition<Optional<UsabilityDefect>> highRecommendationSeverityLevel() {
-        return new Condition<Optional<UsabilityDefect>>() {
+    public static Condition<Optional<UsabilityProblemDescription>> highRecommendationSeverityLevel() {
+        return new Condition<Optional<UsabilityProblemDescription>>() {
 
             @Override
-            public boolean matches(Optional<UsabilityDefect> usabilityGuidlineRecommendation) {
+            public boolean matches(Optional<UsabilityProblemDescription> usabilityGuidlineRecommendation) {
                 return usabilityGuidlineRecommendation.get().getSeverityLevel()
-                    .equals(UsabilityDefectSeverityLevel.HIGH);
+                    .equals(UsabilityProblemSeverityLevel.HIGH);
             }
 
Index: trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/testutil/GenerateTaskModelUtil.java
===================================================================
--- trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/testutil/GenerateTaskModelUtil.java	(revision 1205)
+++ trunk/autoquest-core-usability-evaluation-test/src/main/java/de/ugoe/cs/autoquest/usability/testutil/GenerateTaskModelUtil.java	(revision 1218)
@@ -15,4 +15,5 @@
 package de.ugoe.cs.autoquest.usability.testutil;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.logging.Level;
@@ -51,14 +52,17 @@
     private static final String taskTreeName = "taskTree";
     
-    public static ITaskModel getTaskModelFromSpec(String spec) {
+    public static ITaskModel getTaskModelFromSpec(String... userSessions) {
         ITaskFactory factory = new TaskFactory();
-        ITaskInstanceList taskInstances = new TaskTreeDecoder(factory, new TaskBuilder()).decode(spec);
-        List<IUserSession> userSessions = Lists.newArrayList();
-        userSessions.add((IUserSession) taskInstances);
-        return factory.createTaskModel(userSessions);
+        TaskTreeDecoder taskTreeDecoder = new TaskTreeDecoder(factory, new TaskBuilder());
+        List<IUserSession> userSessionsList = Lists.newArrayList();
+        for(String userSession: Arrays.asList(userSessions)) {
+        	ITaskInstanceList taskInstances = taskTreeDecoder.decode(userSession);
+        	userSessionsList.add((IUserSession) taskInstances);
+        }
+        return factory.createTaskModel(userSessionsList);
     }
     
     public static ITaskModel getTaskTreeFromFile(String filename) {
-        new TextConsole(Level.OFF);
+        new TextConsole(Level.ALL);
         parseTraceFile(filename);
         condenseGuiModel();
