Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/LongFormUsageDefect.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/LongFormUsageDefect.java	(revision 1150)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/LongFormUsageDefect.java	(revision 1152)
@@ -18,10 +18,10 @@
 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.TaskTreeNodeTypeFilter.ITERATION;
-import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTreeNodeTypeFilter.SEQUENCE;
+import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.ITERATION;
+import static de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter.SEQUENCE;
 
 import com.google.common.base.Optional;
 
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.EvaluationMethodCaller;
 import de.ugoe.cs.autoquest.usability.result.DefectDescriptionResolver;
@@ -48,6 +48,6 @@
      * @param taskTree
      */
-    public LongFormUsageDefect(ITaskTree taskTree) {
-        super(taskTree);
+    public LongFormUsageDefect(ITaskModel taskModel) {
+        super(taskModel);
         this.name = "LongFormUsagePattern";
         this.defect = new DefectDescriptionResolver().descriptionFor(this.getClass().getSimpleName());
@@ -73,5 +73,5 @@
     public Optional<UsabilityDefect> check() {
         Optional<UsabilityDefect> present = Optional.absent();
-        if(this.longFormUsagePattern.containedIn(taskTree)) {
+        if(this.longFormUsagePattern.containedIn(taskModel)) {
             present = Optional.of(this.defect);
         }
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/UsagePattern.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/UsagePattern.java	(revision 1150)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/UsagePattern.java	(revision 1152)
@@ -22,9 +22,9 @@
 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.ITask;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 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.TaskTreeNodeTypeFilter;
+import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskModelFilter;
+import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter;
 
 /**
@@ -37,7 +37,7 @@
 public class UsagePattern {
     
-    private TaskTreeFilter taskTreeFilter = new TaskTreeFilter(new IterativeDFSFilterStrategy());
+    private TaskModelFilter taskTreeFilter = new TaskModelFilter(new IterativeDFSFilterStrategy());
     
-    private TaskTreeNodeTypeFilter concernedNode;
+    private TaskTypeFilter concernedTask;
 
     private List<UsagePatternVisitor> patternVisitors;
@@ -53,15 +53,15 @@
      * @param eventType
      */
-    public UsagePattern(TaskTreeNodeTypeFilter concernedNode,
+    public UsagePattern(TaskTypeFilter concernedNode,
                         UsagePatternVisitor... patternVisitor)
     {
         this.patternVisitors = Arrays.asList(patternVisitor);
-        this.concernedNode = concernedNode;
+        this.concernedTask = concernedNode;
     }
 
-    public boolean containedIn(ITaskTree taskTree) {
-        List<ITaskTreeNode> allConcernedNodes = filterAllConcernedNodeFrom(taskTree);
-        for(ITaskTreeNode concernedNode : allConcernedNodes) {
-            applyAllVisitors(concernedNode);
+    public boolean containedIn(ITaskModel taskModel) {
+        List<ITask> allConcernedTasks = filterAllConcernedTasksFrom(taskModel);
+        for(ITask concernedTask : allConcernedTasks) {
+            applyAllVisitors(concernedTask);
             if(allVisitorsArePresent()) {
                 this.present = true;
@@ -75,14 +75,14 @@
     }
 
-    private void applyAllVisitors(ITaskTreeNode concernedNode) {
+    private void applyAllVisitors(ITask concernedTask) {
         Optional<UsagePatternVisitor> previousVisitor = Optional.absent();
         for(UsagePatternVisitor visitor : patternVisitors) {
             if(appliedOnSelectionNode(previousVisitor)) {
-                for(ITaskTreeNode selectionNode : previousVisitor.get().getRetainedSelectionNodes()) {
-                    selectionNode.accept(visitor);
+                for(ITask selection : previousVisitor.get().getRetainedSelectionNodes()) {
+                    selection.accept(visitor);
                 }
             } else {
                 previousVisitor = Optional.of(visitor);
-                concernedNode.accept(visitor);
+                concernedTask.accept(visitor);
             }
         }
@@ -101,6 +101,6 @@
      * @return
      */
-    private List<ITaskTreeNode> filterAllConcernedNodeFrom(ITaskTree taskTree) {
-        return this.taskTreeFilter.filterByNodeType(this.concernedNode).from(taskTree).nodesMatchedFilter();
+    private List<ITask> filterAllConcernedTasksFrom(ITaskModel taskModel) {
+        return this.taskTreeFilter.filterByNodeType(this.concernedTask).from(taskModel).tasksMatchedFilter();
     }
     
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/UsagePatternBuilder.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/UsagePatternBuilder.java	(revision 1150)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/UsagePatternBuilder.java	(revision 1152)
@@ -22,5 +22,5 @@
 import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.StartsWithPatternVisitor;
 import de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter;
-import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTreeNodeTypeFilter;
+import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTypeFilter;
 
 /**
@@ -33,5 +33,5 @@
 public class UsagePatternBuilder {
 
-    protected TaskTreeNodeTypeFilter concernedNode;
+    protected TaskTypeFilter concernedNode;
     
     protected EventTypeFilter startsWithEvent;
@@ -55,5 +55,5 @@
      * @return
      */
-    public SpecifyPatternStep concernedNode(TaskTreeNodeTypeFilter concernedNode) {
+    public SpecifyPatternStep concernedNode(TaskTypeFilter concernedNode) {
         this.concernedNode = concernedNode;
         return new SpecifyPatternStep();
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/UsagePatternVisitor.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/UsagePatternVisitor.java	(revision 1150)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/UsagePatternVisitor.java	(revision 1152)
@@ -26,7 +26,6 @@
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelection;
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTreeNode;
-import de.ugoe.cs.autoquest.tasktrees.treeifc.NodeVisitor;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter;
 import de.ugoe.cs.autoquest.usability.util.PatternsVisitorUtil;
@@ -47,5 +46,5 @@
     protected boolean present = false;
     
-    protected List<ITaskTreeNode> retainedChildrenNodesFromSelectionNodes = Lists.newArrayList();
+    protected List<ITask> retainedChildrenTasksFromSelections = Lists.newArrayList();
     
     /* (non-Javadoc)
@@ -85,15 +84,15 @@
             this.present = patternIsPresent();
         } else {
-            ITaskTree taskTree = PatternsVisitorUtil.createTaskTreeFromNode(selection);
-            this.present = containedPattern.containedIn(taskTree);  
+            ITaskModel taskModel = PatternsVisitorUtil.createTaskModelFromNode(selection);
+            this.present = containedPattern.containedIn(taskModel);  
         }
     }
 
-    protected void retainNodesWherePatternIsPresent(List<ITaskTreeNode> children) {
-        for(ITaskTreeNode node : children) {
+    protected void retainNodesWherePatternIsPresent(List<ITask> children) {
+        for(ITask task : children) {
             this.present = false;
-            node.accept(this);
+            task.accept(this);
             if(this.present) {
-                this.retainedChildrenNodesFromSelectionNodes.add(node);
+                this.retainedChildrenTasksFromSelections.add(task);
             }
         }
@@ -101,5 +100,5 @@
     
     private boolean patternIsPresent() {
-        return !this.retainedChildrenNodesFromSelectionNodes.isEmpty();
+        return !this.retainedChildrenTasksFromSelections.isEmpty();
     }
     
@@ -122,5 +121,5 @@
      */
     public void reset() {
-        this.retainedChildrenNodesFromSelectionNodes.clear();
+        this.retainedChildrenTasksFromSelections.clear();
         this.present = false;
     }
@@ -144,6 +143,6 @@
      * @return
      */
-    public List<ITaskTreeNode> getRetainedSelectionNodes() {
-        return this.retainedChildrenNodesFromSelectionNodes;
+    public List<ITask> getRetainedSelectionNodes() {
+        return this.retainedChildrenTasksFromSelections;
     }
     
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/ContainsEventVisitor.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/ContainsEventVisitor.java	(revision 1150)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/ContainsEventVisitor.java	(revision 1152)
@@ -19,5 +19,5 @@
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence;
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTreeNode;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePatternVisitor;
 import de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter;
@@ -47,5 +47,5 @@
      */
     public void visit(IIteration iteration) {
-        checkAllChildrenAndReturnIfPatternIsPresent(iteration.getChildren());
+        checkTaskAndReturnIfPatternIsPresent(iteration.getMarkedTask());
     }
 
@@ -57,8 +57,7 @@
     }
     
-    private void checkAllChildrenAndReturnIfPatternIsPresent(List<ITaskTreeNode> children) {
-        for(ITaskTreeNode node : children) {
-            node.accept(this);
-            if(this.present) {
+    private void checkAllChildrenAndReturnIfPatternIsPresent(List<ITask> children) {
+        for (ITask task : children) {
+            if (checkTaskAndReturnIfPatternIsPresent(task)) {
                 break;
             }
@@ -66,3 +65,10 @@
     }
 
+    /**
+     *
+     */
+    private boolean checkTaskAndReturnIfPatternIsPresent(ITask task) {
+        task.accept(this);
+        return this.present;
+    }
 }
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/ContainsPatternVisitor.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/ContainsPatternVisitor.java	(revision 1150)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/ContainsPatternVisitor.java	(revision 1152)
@@ -15,8 +15,9 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors;
 
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence;
-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.rules.patterns.UsagePattern;
 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePatternVisitor;
@@ -47,5 +48,5 @@
      */
     public void visit(IIteration iteration) {
-        checkAllChildrenAndReturnIfPatternIsPresent(iteration);
+        checkTaskAndReturnIfPatternIsPresent(iteration.getMarkedTask());
 
     }
@@ -59,14 +60,7 @@
     }
     
-    private void checkAllChildrenAndReturnIfPatternIsPresent(ITaskTreeNode node) {
-        for(ITaskTreeNode child : node.getChildren()) {
-            ITaskTree taskTree;
-            if(isEvent(child)) {
-                taskTree = PatternsVisitorUtil.createTaskTreeFromNode(node);
-            } else {
-                taskTree = PatternsVisitorUtil.createTaskTreeFromNode(child);
-            }
-            this.present = containedPattern.containedIn(taskTree); 
-            if(this.present) {
+    private void checkAllChildrenAndReturnIfPatternIsPresent(ISequence sequence) {
+        for (ITask child : sequence.getChildren()) {
+            if(checkTaskAndReturnIfPatternIsPresent(child)) {
                 break;
             }
@@ -74,6 +68,11 @@
     }
     
-    private boolean isEvent(ITaskTreeNode firstNode) {
-        return firstNode.getChildren().isEmpty();
+    private boolean checkTaskAndReturnIfPatternIsPresent(ITask task) {
+        ITaskModel taskModel = PatternsVisitorUtil.createTaskModelFromNode(task);
+        this.present = containedPattern.containedIn(taskModel); 
+    }
+    
+    private boolean isEvent(ITask task) {
+        return task instanceof IEventTask;
     }
 
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/EndsWithEventVisitor.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/EndsWithEventVisitor.java	(revision 1150)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/EndsWithEventVisitor.java	(revision 1152)
@@ -45,5 +45,5 @@
      */
     public void visit(IIteration iteration) {
-        PatternsVisitorUtil.lastNodeOf(iteration.getChildren()).accept(this);
+        iteration.getMarkedTask().accept(this);
     }
 
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/EndsWithPatternVisitor.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/EndsWithPatternVisitor.java	(revision 1150)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/EndsWithPatternVisitor.java	(revision 1152)
@@ -15,8 +15,9 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors;
 
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence;
-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.rules.patterns.UsagePattern;
 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePatternVisitor;
@@ -47,6 +48,6 @@
      */
     public void visit(IIteration iteration) {
-        ITaskTree taskTree = PatternsVisitorUtil.createTaskTreeFromNode(iteration);
-        this.present = containedPattern.containedIn(taskTree); 
+        ITaskModel taskModel = PatternsVisitorUtil.createTaskModelFromNode(iteration);
+        this.present = containedPattern.containedIn(taskModel); 
 
     }
@@ -56,16 +57,16 @@
      */
     public void visit(ISequence sequence) {
-        ITaskTreeNode lastNode = PatternsVisitorUtil.lastNodeOf(sequence.getChildren());
-        ITaskTree taskTree;
-        if(isEvent(lastNode)) {
-            taskTree = PatternsVisitorUtil.createTaskTreeFromNode(sequence);
+        ITask lastTask = PatternsVisitorUtil.lastNodeOf(sequence.getChildren());
+        ITaskModel taskModel;
+        if(isEvent(lastTask)) {
+            taskModel = PatternsVisitorUtil.createTaskModelFromNode(sequence);
         } else {
-            taskTree = PatternsVisitorUtil.createTaskTreeFromNode(lastNode);
+            taskModel = PatternsVisitorUtil.createTaskModelFromNode(lastTask);
         }
-        this.present = containedPattern.containedIn(taskTree);      
+        this.present = containedPattern.containedIn(taskModel);      
     }
 
-    private boolean isEvent(ITaskTreeNode firstNode) {
-        return firstNode.getChildren().isEmpty();
+    private boolean isEvent(ITask lastTask) {
+        return lastTask instanceof IEventTask;
     }
 
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/StartsWithEventVisitor.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/StartsWithEventVisitor.java	(revision 1150)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/StartsWithEventVisitor.java	(revision 1152)
@@ -45,5 +45,5 @@
      */
     public void visit(IIteration iteration) {
-        PatternsVisitorUtil.firstNodeOf(iteration.getChildren()).accept(this);
+        iteration.getMarkedTask().accept(this);
     }
     
Index: trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/StartsWithPatternVisitor.java
===================================================================
--- trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/StartsWithPatternVisitor.java	(revision 1150)
+++ trunk/autoquest-core-usability-evaluation/src/main/java/de/ugoe/cs/autoquest/usability/rules/patterns/visitors/StartsWithPatternVisitor.java	(revision 1152)
@@ -15,8 +15,9 @@
 package de.ugoe.cs.autoquest.usability.rules.patterns.visitors;
 
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence;
-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.rules.patterns.UsagePattern;
 import de.ugoe.cs.autoquest.usability.rules.patterns.UsagePatternVisitor;
@@ -47,6 +48,6 @@
      */
     public void visit(IIteration iteration) {
-        ITaskTree taskTree = PatternsVisitorUtil.createTaskTreeFromNode(iteration);
-        this.present = containedPattern.containedIn(taskTree);  
+        ITaskModel taskModel = PatternsVisitorUtil.createTaskModelFromNode(iteration);
+        this.present = containedPattern.containedIn(taskModel);  
     }
 
@@ -55,16 +56,16 @@
      */
     public void visit(ISequence sequence) {
-        ITaskTreeNode firstNode = PatternsVisitorUtil.firstNodeOf(sequence.getChildren());
-        ITaskTree taskTree;
-        if(isEvent(firstNode)) {
-            taskTree = PatternsVisitorUtil.createTaskTreeFromNode(sequence);
+        ITask firstTask = PatternsVisitorUtil.firstNodeOf(sequence.getChildren());
+        ITaskModel taskModel;
+        if(isEvent(firstTask)) {
+            taskModel = PatternsVisitorUtil.createTaskModelFromNode(sequence);
         } else {
-            taskTree = PatternsVisitorUtil.createTaskTreeFromNode(firstNode);
+            taskModel = PatternsVisitorUtil.createTaskModelFromNode(firstTask);
         }
-        this.present = containedPattern.containedIn(taskTree);      
+        this.present = containedPattern.containedIn(taskModel);      
     }
 
-    private boolean isEvent(ITaskTreeNode firstNode) {
-        return firstNode.getChildren().isEmpty();
+    private boolean isEvent(ITask firstTask) {
+        return firstTask instanceof IEventTask;
     }
 
