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 1150)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/NoLetterOrDigitRatioMetric.java	(revision 1152)
@@ -25,6 +25,6 @@
 import com.google.common.collect.Multiset;
 
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTreeNode;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller;
 import de.ugoe.cs.autoquest.usability.result.DefectDescriptionResolver;
@@ -34,5 +34,5 @@
 import de.ugoe.cs.autoquest.usability.tasktree.FilterResult;
 import de.ugoe.cs.autoquest.usability.tasktree.IterativeDFSFilterStrategy;
-import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTreeFilter;
+import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskModelFilter;
 
 /**
@@ -52,6 +52,6 @@
      * @param taskTree
      */
-    public NoLetterOrDigitRatioMetric(ITaskTree taskTree) {
-        super(taskTree);
+    public NoLetterOrDigitRatioMetric(ITaskModel taskModel) {
+        super(taskModel);
         this.name = "NoLetterOrDigitRatio";
         this.defect = new DefectDescriptionResolver().descriptionFor(this.getClass().getSimpleName());
@@ -64,14 +64,14 @@
     public Optional<UsabilityDefect> calculate() {
         FilterResult textInputEvents = extractNodesFromTaskTree();
-        float evaluationMetric = calculateEvaluationMetric(textInputEvents.nodesMatchedFilter());
+        float evaluationMetric = calculateEvaluationMetric(textInputEvents.tasksMatchedFilter());
         return this.defect.isPresent(evaluationMetric);
     }
     
     private FilterResult extractNodesFromTaskTree() {
-        return new TaskTreeFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT)
-            .from(this.taskTree);
+        return new TaskModelFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT)
+            .from(this.taskModel);
     }
     
-    private float calculateEvaluationMetric(List<ITaskTreeNode> textInputEvents) {
+    private float calculateEvaluationMetric(List<ITask> textInputEvents) {
         Multiset<String> enteredTextFragments =
             aggregateEnteredTextFromTextInputs(textInputEvents);
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 1150)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputEntryRepetitionsMetric.java	(revision 1152)
@@ -25,6 +25,6 @@
 import com.google.common.collect.Multisets;
 
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTreeNode;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller;
 import de.ugoe.cs.autoquest.usability.result.DefectDescriptionResolver;
@@ -34,5 +34,5 @@
 import de.ugoe.cs.autoquest.usability.tasktree.FilterResult;
 import de.ugoe.cs.autoquest.usability.tasktree.IterativeDFSFilterStrategy;
-import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTreeFilter;
+import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskModelFilter;
 
 /**
@@ -52,6 +52,6 @@
      * @param taskTree
      */
-    public TextInputEntryRepetitionsMetric(ITaskTree taskTree) {
-        super(taskTree);
+    public TextInputEntryRepetitionsMetric(ITaskModel taskModel) {
+        super(taskModel);
         this.name = "TextInputEntryRepetitions";
         this.defect = new DefectDescriptionResolver().descriptionFor(this.getClass().getSimpleName());
@@ -64,14 +64,14 @@
     public Optional<UsabilityDefect> calculate() {
         FilterResult textInputEvents = extractNodesFromTaskTree();
-        float evaluationMetric = calculateEvaluationMetric(textInputEvents.nodesMatchedFilter());
+        float evaluationMetric = calculateEvaluationMetric(textInputEvents.tasksMatchedFilter());
         return this.defect.isPresent(evaluationMetric);
     }
     
     private FilterResult extractNodesFromTaskTree() {
-        return new TaskTreeFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT)
-            .from(this.taskTree);
+        return new TaskModelFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT)
+            .from(this.taskModel);
     }
     
-    private float calculateEvaluationMetric(List<ITaskTreeNode> textInputEvents) {
+    private float calculateEvaluationMetric(List<ITask> textInputEvents) {
         Multiset<String> enteredTextFragments =
             aggregateEnteredTextFromTextInputs(textInputEvents);
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 1150)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/metrics/TextInputRatioMetric.java	(revision 1152)
@@ -23,6 +23,7 @@
 import com.google.common.collect.Iterables;
 
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTreeNode;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller;
 import de.ugoe.cs.autoquest.usability.result.DefectDescriptionResolver;
@@ -32,5 +33,5 @@
 import de.ugoe.cs.autoquest.usability.tasktree.FilterResult;
 import de.ugoe.cs.autoquest.usability.tasktree.IterativeDFSFilterStrategy;
-import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTreeFilter;
+import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskModelFilter;
 
 /**
@@ -50,6 +51,6 @@
      * @param taskTree
      */
-    public TextInputRatioMetric(ITaskTree taskTree) {
-        super(taskTree);
+    public TextInputRatioMetric(ITaskModel taskModel) {
+        super(taskModel);
         this.name = "TextInputRatio";
         this.defect = new DefectDescriptionResolver().descriptionFor(this.getClass().getSimpleName());
@@ -62,27 +63,26 @@
     public Optional<UsabilityDefect> calculate() {
         FilterResult textInputEvents = extractNodesFromTaskTree();
-        float evaluationMetric = calculateEvaluationMetric(textInputEvents.nodesMatchedFilter(), textInputEvents.nodesNotMatchedFilter());
+        float evaluationMetric = calculateEvaluationMetric(textInputEvents.tasksMatchedFilter(), textInputEvents.tasksNotMatchedFilter());
         return this.defect.isPresent(evaluationMetric);
     }
     
     private FilterResult extractNodesFromTaskTree() {
-        return new TaskTreeFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT)
-            .from(this.taskTree);
+        return new TaskModelFilter(new IterativeDFSFilterStrategy()).filterByEventType(TEXT_INPUT)
+            .from(this.taskModel);
     }
     
-    private float calculateEvaluationMetric(List<ITaskTreeNode> textInputEvents, List<ITaskTreeNode> nonTextInputEvents) {
+    private float calculateEvaluationMetric(List<ITask> textInputEvents, List<ITask> nonTextInputEvents) {
         float numberOfTextInputEvents = textInputEvents.size();
-        float numberOfNonTextInputEvents = nrOfEventNodesNotMatchedFilter(nonTextInputEvents);
+        float numberOfNonTextInputEvents = nrOfEventTasksNotMatchedFilter(nonTextInputEvents);
         return numberOfTextInputEvents / (numberOfTextInputEvents + numberOfNonTextInputEvents);
     }
 
-    private int nrOfEventNodesNotMatchedFilter(List<ITaskTreeNode> nonTextInputEvents) {
+    private int nrOfEventTasksNotMatchedFilter(List<ITask> nonTextInputEvents) {
         return Iterables.size(Iterables.filter(nonTextInputEvents,
-                                               new Predicate<ITaskTreeNode>() {
+                                               new Predicate<ITask>() {
 
                                                    @Override
-                                                   public boolean apply(ITaskTreeNode node) {
-                                                       return (node.getChildren() == null) ||
-                                                           (node.getChildren().size() == 0);
+                                                   public boolean apply(ITask task) {
+                                                       return task instanceof IEventTask;
                                                    }
                                                }));
