Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/NoLetterOrDigitRatioMetric.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/NoLetterOrDigitRatioMetric.java	(revision 1291)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/NoLetterOrDigitRatioMetric.java	(revision 1292)
@@ -28,11 +28,10 @@
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller;
+import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescription;
 import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescriptionResolver;
-import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescription;
 import de.ugoe.cs.autoquest.usability.rules.UsabilityMetric;
 import de.ugoe.cs.autoquest.usability.rules.UsabilityRule;
 import de.ugoe.cs.autoquest.usability.taskmodel.filter.FilterResult;
-import de.ugoe.cs.autoquest.usability.taskmodel.filter.IterativeDFSFilterStrategy;
-import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskModelFilter;
+import de.ugoe.cs.autoquest.usability.taskmodel.filter.TaskModelFilter;
 
 /**
@@ -82,6 +81,5 @@
      */
     private FilterResult extractNodesFromTaskTree() {
-        return new TaskModelFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT)
-            .from(this.taskModel);
+        return new TaskModelFilter().filter(taskModel, TEXT_INPUT);
     }
 
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputEntryRepetitionsMetric.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputEntryRepetitionsMetric.java	(revision 1291)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputEntryRepetitionsMetric.java	(revision 1292)
@@ -28,11 +28,10 @@
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller;
+import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescription;
 import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescriptionResolver;
-import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescription;
 import de.ugoe.cs.autoquest.usability.rules.UsabilityMetric;
 import de.ugoe.cs.autoquest.usability.rules.UsabilityRule;
 import de.ugoe.cs.autoquest.usability.taskmodel.filter.FilterResult;
-import de.ugoe.cs.autoquest.usability.taskmodel.filter.IterativeDFSFilterStrategy;
-import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskModelFilter;
+import de.ugoe.cs.autoquest.usability.taskmodel.filter.TaskModelFilter;
 
 /**
@@ -82,6 +81,5 @@
      */
     private FilterResult extractNodesFromTaskTree() {
-        return new TaskModelFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT)
-            .from(this.taskModel);
+        return new TaskModelFilter().filter(taskModel, TEXT_INPUT);
     }
 
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputRatioMetric.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputRatioMetric.java	(revision 1291)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputRatioMetric.java	(revision 1292)
@@ -27,11 +27,10 @@
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller;
+import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescription;
 import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescriptionResolver;
-import de.ugoe.cs.autoquest.usability.result.UsabilityProblemDescription;
 import de.ugoe.cs.autoquest.usability.rules.UsabilityMetric;
 import de.ugoe.cs.autoquest.usability.rules.UsabilityRule;
 import de.ugoe.cs.autoquest.usability.taskmodel.filter.FilterResult;
-import de.ugoe.cs.autoquest.usability.taskmodel.filter.IterativeDFSFilterStrategy;
-import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskModelFilter;
+import de.ugoe.cs.autoquest.usability.taskmodel.filter.TaskModelFilter;
 
 /**
@@ -82,6 +81,5 @@
      */
     private FilterResult extractNodesFromTaskTree() {
-        return new TaskModelFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT)
-            .from(this.taskModel);
+        return new TaskModelFilter().filter(taskModel, TEXT_INPUT);
     }
 
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/InteractionPattern.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/InteractionPattern.java	(revision 1291)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/InteractionPattern.java	(revision 1292)
@@ -21,8 +21,9 @@
 import com.google.common.collect.Iterables;
 
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelection;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
-import de.ugoe.cs.autoquest.usability.taskmodel.filter.IterativeDFSFilterStrategy;
-import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskModelFilter;
+import de.ugoe.cs.autoquest.usability.taskmodel.filter.ITaskModelFilter;
+import de.ugoe.cs.autoquest.usability.taskmodel.filter.TaskModelFilter;
 import de.ugoe.cs.autoquest.usability.taskmodel.filter.types.TaskTypeFilter;
 
@@ -38,8 +39,8 @@
     /**
      * <p>
-     * {@link TaskModelFilter}, which is used to filter a task model after different {@link ITask}s
-     * </p>
-     */
-    private TaskModelFilter taskTreeFilter = new TaskModelFilter(new IterativeDFSFilterStrategy());
+     * {@link TaskModelFilterAccessor}, which is used to filter a task model after different {@link ITask}s
+     * </p>
+     */
+    private ITaskModelFilter taskTreeFilter = new TaskModelFilter();
 
     /**
@@ -188,6 +189,5 @@
      */
     private List<ITask> filterAllConcernedTasksFrom(ITaskModel taskModel) {
-        return this.taskTreeFilter.filterByNodeType(this.rootTask).from(taskModel)
-            .tasksMatchedFilter();
+        return this.taskTreeFilter.filter(taskModel, this.rootTask).tasksMatchedFilter();
     }
 
