Index: trunk/autoquest-test-utils/src/main/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeChecker.java
===================================================================
--- trunk/autoquest-test-utils/src/main/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeChecker.java	(revision 1212)
+++ trunk/autoquest-test-utils/src/main/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeChecker.java	(revision 1294)
@@ -20,4 +20,5 @@
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -27,6 +28,9 @@
 import de.ugoe.cs.autoquest.eventcore.gui.TextInput;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTaskInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptionalInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelection;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelectionInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
@@ -70,7 +74,7 @@
      *
      */
-    public void assertTaskInstanceList(String userSessionSpec, ITaskInstanceList taskInstances) {
+    public void assertUserSession(String userSessionSpec, IUserSession session) {
         if (doTrace) {
-            new TaskTreeEncoder().encode(taskInstances, System.err);
+            new TaskTreeEncoder().encode(session, System.err);
         }
 
@@ -86,5 +90,29 @@
             
             if (taskInstanceSpec != null) {
-                assertTaskInstanceList(taskInstanceSpec, taskInstances, tasks);
+                assertUserSession(taskInstanceSpec, session, tasks);
+            }
+        }
+    }
+
+    /**
+     *
+     */
+    public void assertTaskInstance(String userSessionSpec, ITaskInstance taskInstance) {
+        if (doTrace) {
+            new TaskTreeEncoder().encode(taskInstance, System.err);
+        }
+
+        TaskSpec taskInstanceSpec = null;
+
+        Matcher taskMatcher = taskPattern.matcher(userSessionSpec);
+        
+        Map<String, ITask> tasks = new HashMap<String, ITask>();
+
+        while (taskMatcher.find()) {
+
+            taskInstanceSpec = parseTaskInstance(taskMatcher);
+            
+            if (taskInstanceSpec != null) {
+                assertTaskInstance(taskInstanceSpec, taskInstance, tasks);
             }
         }
@@ -154,6 +182,6 @@
             }
             
-            List<ITaskInstance> expectedChildren = expected.getChildren();
-            List<ITaskInstance> checkedChildren = checked.getChildren();
+            List<ITaskInstance> expectedChildren = getChildren(expected);
+            List<ITaskInstance> checkedChildren = getChildren(checked);
             
             if ((expectedChildren != null) && (expectedChildren.size() > 0)) {
@@ -241,28 +269,53 @@
      * @param taskMapCopy
      */
-    private void assertTaskInstanceList(TaskSpec           taskSpec,
-                                        ITaskInstanceList  taskInstances,
-                                        Map<String, ITask> tasks)
+    private void assertUserSession(TaskSpec           taskSpec,
+                                   IUserSession       session,
+                                   Map<String, ITask> tasks)
     {
         if (doTrace) {
-            System.err.println("\ncomparing " + taskSpec.type + " with " + taskInstances + "\n");
-        }
-
-        if ((taskInstances instanceof IUserSession) && (!"UserSession".equals(taskSpec.type))) {
+            System.err.println("\ncomparing " + taskSpec.type + " with " + session + "\n");
+        }
+
+        if (!"UserSession".equals(taskSpec.type)) {
             fail("can not compare a task instance with a user session");
         }
-        else if ((!(taskInstances instanceof IUserSession)) &&
-                 (!"TaskInstances".equals(taskSpec.type)))
-        {
+        
+        List<ITaskInstance> children = session.getExecutedTasks();
+        
+        if (taskSpec.children.length != children.size()) {
+            fail("number of task instances in task instance list does not match");
+        }
+        
+        for (int i = 0; i < children.size(); i++) {
+            TaskSpec childSpec = taskSpec.children[i];
+            assertTrue(taskSpecEqualsTaskInstance(childSpec, children.get(i), tasks));
+        }
+    }
+
+    /**
+     * @param task
+     * @param taskMapCopy
+     */
+    private void assertTaskInstance(TaskSpec           taskSpec,
+                                    ITaskInstance      taskInstance,
+                                    Map<String, ITask> tasks)
+    {
+        if (doTrace) {
+            System.err.println("\ncomparing " + taskSpec.type + " with " + taskInstance + "\n");
+        }
+
+        if (!"TaskInstances".equals(taskSpec.type)) {
             fail("can not compare a task instance with a task instance list");
         }
         
-        if (taskSpec.children.length != taskInstances.size()) {
+        List<ITaskInstance> children = getChildren(taskInstance);
+        
+        if (taskSpec.children.length != children.size()) {
             fail("number of task instances in task instance list does not match");
         }
         
-        for (int i = 0; i < taskInstances.size(); i++) {
+        for (int i = 0; i < children.size(); i++) {
             TaskSpec childSpec = taskSpec.children[i];
-            assertTrue(taskSpecEqualsTaskInstance(childSpec, taskInstances.get(i), tasks));
+            assertTrue(taskSpecEqualsTaskInstance(childSpec, children.get(i), tasks));
         }
     }
@@ -284,6 +337,6 @@
         if (("Event".equals(taskSpec.type) && (!(task instanceof IEventTask))) ||
             ("TextInputEvent".equals(taskSpec.type) &&
-             ((!(task instanceof IEventTask)) ||
-              (!(((IEventTask) task).getEventType() instanceof TextInput)))) ||
+             ((!(taskInstance instanceof IEventTaskInstance)) ||
+              (!(((IEventTaskInstance) taskInstance).getEvent().getType() instanceof TextInput)))) ||
             ("Sequence".equals(taskSpec.type) && (!(task instanceof ISequence))) ||
             ("Selection".equals(taskSpec.type) && (!(task instanceof ISelection))) ||
@@ -306,5 +359,7 @@
 
         if ("TextInputEvent".equals(taskSpec.type)) {
-            TextInput eventType = (TextInput) ((IEventTask) task).getEventType();
+            TextInput eventType = (TextInput)
+                ((IEventTaskInstance) taskInstance).getEvent().getType();
+            
             if ((taskSpec.additionalInfo != null) &&
                 !"".equals(taskSpec.additionalInfo) &&
@@ -319,6 +374,7 @@
             }
         }
-        else if ((task instanceof IEventTask) && (((IEventTask) task).getEventType() != null) &&
-                 (!taskSpec.name.equals(((IEventTask) task).getEventType().getName())))
+        else if ((task instanceof IEventTask) &&
+                 (((IEventTaskInstance) taskInstance).getEvent().getType() != null) &&
+                 (!taskSpec.name.equals(((IEventTaskInstance) taskInstance).getEvent().getType().getName())))
         {
             // simple event names do not match. But what about the event name in
@@ -328,8 +384,9 @@
                     (!"".equals(taskSpec.additionalInfo) ? " " + taskSpec.additionalInfo : "");
 
-            if (!complexName.equals(((IEventTask) task).getEventType().getName())) {
+            if (!complexName.equals(((IEventTaskInstance) taskInstance).getEvent().getType().getName())) {
                 if (doTrace) {
-                    System.err.println("event names do not match: " + taskSpec.name + " != " +
-                                       ((IEventTask) task).getEventType().getName() + "\n");
+                    System.err.println
+                        ("event names do not match: " + taskSpec.name + " != " +
+                         ((IEventTaskInstance) taskInstance).getEvent().getType().getName() + "\n");
                 }
                 return false;
@@ -358,7 +415,9 @@
         }
 
-        if (((taskSpec.children == null) && (taskInstance.getChildren().size() > 0)) ||
+        List<ITaskInstance> children = getChildren(taskInstance);
+        
+        if (((taskSpec.children == null) && (children.size() > 0)) ||
             ((taskSpec.children != null) &&
-             (taskSpec.children.length != taskInstance.getChildren().size())))
+             (taskSpec.children.length != children.size())))
         {
             if (doTrace) {
@@ -366,14 +425,13 @@
                     ("numbers of children do not match: " +
                      (taskSpec.children == null ? "0" : taskSpec.children.length) + " != " +
-                     (taskInstance.getChildren() == null ? "0" :
-                          taskInstance.getChildren().size()) + "\n");
+                     (children == null ? "0" : children.size()) + "\n");
             }
             return false;
         }
 
-        Iterator<ITaskInstance> children = taskInstance.getChildren().iterator();
+        Iterator<ITaskInstance> childrenIterator = children.iterator();
         if (taskSpec.children != null) {
             for (TaskSpec child : taskSpec.children) {
-                if (!taskSpecEqualsTaskInstance(child, children.next(), tasks)) {
+                if (!taskSpecEqualsTaskInstance(child, childrenIterator.next(), tasks)) {
                     if (doTrace) {
                         System.err.println("one of the children does not match\n");
@@ -384,5 +442,5 @@
         }
 
-        if (!children.hasNext()) {
+        if (!childrenIterator.hasNext()) {
             if (doTrace) {
                 System.err.println("nodes match\n");
@@ -398,4 +456,30 @@
     }
     
+    /**
+     * <p>
+     * TODO: comment
+     * </p>
+     *
+     * @param taskInstance
+     * @return
+     */
+    private List<ITaskInstance> getChildren(ITaskInstance taskInstance) {
+        List<ITaskInstance> result = new LinkedList<ITaskInstance>();
+        
+        if (taskInstance instanceof ITaskInstanceList) {
+            for (ITaskInstance child : (ITaskInstanceList) taskInstance) {
+                result.add(child);
+            }
+        }
+        else if (taskInstance instanceof ISelectionInstance) {
+            result.add(((ISelectionInstance) taskInstance).getChild());
+        }
+        else if (taskInstance instanceof IOptionalInstance) {
+            result.add(((IOptionalInstance) taskInstance).getChild());
+        }
+        
+        return result;
+    }
+
     /**
      *
Index: trunk/autoquest-test-utils/src/main/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeDecoder.java
===================================================================
--- trunk/autoquest-test-utils/src/main/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeDecoder.java	(revision 1212)
+++ trunk/autoquest-test-utils/src/main/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeDecoder.java	(revision 1294)
@@ -26,8 +26,14 @@
 import de.ugoe.cs.autoquest.eventcore.StringEventType;
 import de.ugoe.cs.autoquest.eventcore.gui.TextInput;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTaskInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IIterationInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptional;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptionalInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelection;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelectionInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequenceInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskBuilder;
@@ -173,14 +179,28 @@
             }
             else {
-            	task = createUserInteractionTask(matcher);
+            	task = createUserInteractionTaskInstance(matcher).getTask();
             }  
             tasks.put(id, task);
         }
         
-        if ((matcher.group(5) != null) && (!"".equals(matcher.group(5).trim()))) {
-            taskBuilder.setDescription(task, matcher.group(5).trim());
-        }
-
-        ITaskInstance instance = taskFactory.createNewTaskInstance(task);
+        ITaskInstance instance;
+        
+        if (task instanceof ISequence) {
+            instance = taskFactory.createNewTaskInstance((ISequence) task);
+        }
+        else if (task instanceof ISelection) {
+            instance = taskFactory.createNewTaskInstance((ISelection) task);
+        }
+        else if (task instanceof IIteration) {
+            instance = taskFactory.createNewTaskInstance((IIteration) task);
+        }
+        else if (task instanceof IOptional) {
+            instance = taskFactory.createNewTaskInstance((IOptional) task);
+        }
+        else {
+            instance = taskFactory.createNewTaskInstance
+                 ((IEventTask) task,
+                  ((IEventTaskInstance) task.getInstances().iterator().next()).getEvent());
+        }  
         
         while (taskMatcher.find() && !"}".equals(taskMatcher.group(0))) {
@@ -216,5 +236,16 @@
             }
             
-            taskBuilder.addChild(instance, childInstance);
+            if (instance instanceof ISequenceInstance) {
+                taskBuilder.addChild((ISequenceInstance) instance, childInstance);
+            }
+            else if (instance instanceof ISelectionInstance) {
+                taskBuilder.setChild((ISelectionInstance) instance, childInstance);
+            }
+            else if (instance instanceof IIterationInstance) {
+                taskBuilder.addChild((IIterationInstance) instance, childInstance);
+            }
+            else if (instance instanceof IOptionalInstance) {
+                taskBuilder.setChild((IOptionalInstance) instance, childInstance);
+            }
         }
 
@@ -229,14 +260,16 @@
      * @return
      */
-    private ITask createUserInteractionTask(Matcher matcher) {
+    private ITaskInstance createUserInteractionTaskInstance(Matcher matcher) {
         String evenType = matcher.group(1);
         String id = matcher.group(2);
-        IEventTarget evenTarget = targets.get(id);
-        if (evenTarget == null) {
-            evenTarget = determineTarget(evenType, id, matcher.group(4));
-            targets.put(id, evenTarget);
+        IEventTarget eventTarget = targets.get(id);
+        if (eventTarget == null) {
+            eventTarget = determineTarget(evenType, id, matcher.group(4));
+            targets.put(id, eventTarget);
         }
         IEventType eventType = determineType(evenType, matcher.group(4));
-        return taskFactory.createNewEventTask(eventType, evenTarget);
+        IEventTask task = taskFactory.createNewEventTask(eventType + " --> " + eventTarget);
+        
+        return taskFactory.createNewTaskInstance(task, new Event(eventType, eventTarget));
     }
 
Index: trunk/autoquest-test-utils/src/main/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeEncoder.java
===================================================================
--- trunk/autoquest-test-utils/src/main/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeEncoder.java	(revision 1212)
+++ trunk/autoquest-test-utils/src/main/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeEncoder.java	(revision 1294)
@@ -24,9 +24,13 @@
 import java.util.Map;
 
+import de.ugoe.cs.autoquest.eventcore.Event;
 import de.ugoe.cs.autoquest.eventcore.gui.TextInput;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTaskInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptional;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptionalInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelection;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelectionInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
@@ -141,11 +145,5 @@
         else if (task instanceof IEventTask) {
             out.print(indent);
-            out.print(((IEventTask) task).getEventType());
-            out.print(" ");
-            out.print(((IEventTask) task).getEventTarget().getStringIdentifier());
-//            if (((IEventTask) node).getEventTarget() instanceof IGUIElement) {
-//              out.print(" ");
-//              out.print(((IGUIElement) ((IEventTask) node).getEventTarget()).getSpecification());
-//            }
+            out.print(task);
         }
         else {
@@ -154,6 +152,15 @@
 
         int i = 0;
-        for (ITaskInstance child : taskInstance.getChildren()) {
-            encode(child, out, indent + "  ", i++);
+        
+        if (taskInstance instanceof ITaskInstanceList) {
+            for (ITaskInstance child : (ITaskInstanceList) taskInstance) {
+                encode(child, out, indent + "  ", i++);
+            }
+        }
+        else if (taskInstance instanceof ISelectionInstance) {
+            encode(((ISelectionInstance) taskInstance).getChild(), out, indent + "  ", i++);
+        }
+        else if (taskInstance instanceof IOptionalInstance) {
+            encode(((IOptionalInstance) taskInstance).getChild(), out, indent + "  ", i++);
         }
 
@@ -221,5 +228,6 @@
         }
         else if (task instanceof IEventTask) {
-            if (((IEventTask) task).getEventType() instanceof TextInput) {
+            Event event = ((IEventTaskInstance) taskInstance).getEvent();
+            if (event.getType() instanceof TextInput) {
                 if (id == null) {
                     id = "textInput" + typeCounters[3]++;
@@ -229,5 +237,5 @@
                 System.out.print(id);
                 System.out.print(" \"");
-                System.out.print(((TextInput) ((IEventTask) task).getEventType()).getEnteredText());
+                System.out.print(((TextInput) event.getType()).getEnteredText());
                 System.out.print("\"");
             }
@@ -240,5 +248,5 @@
                 System.out.print(id);
                 System.out.print(' ');
-                System.out.print(((IEventTask) task).getEventType().getName());
+                System.out.print(event.getType().getName());
             }
             System.out.print(" {}\" +");
@@ -250,6 +258,16 @@
         taskIds.put(task, id);
         
-        for (ITaskInstance child : taskInstance.getChildren()) {
-            dumpTaskInstanceAsCheckString(child, typeCounters, taskIds, indent + "  ");
+        if (taskInstance instanceof ITaskInstanceList) {
+            for (ITaskInstance child : (ITaskInstanceList) taskInstance) {
+                dumpTaskInstanceAsCheckString(child, typeCounters, taskIds, indent + "  ");
+            }
+        }
+        else if (taskInstance instanceof ISelectionInstance) {
+            dumpTaskInstanceAsCheckString
+                (((ISelectionInstance) taskInstance).getChild(), typeCounters, taskIds, indent + "  ");
+        }
+        else if (taskInstance instanceof IOptionalInstance) {
+            dumpTaskInstanceAsCheckString
+                (((IOptionalInstance) taskInstance).getChild(), typeCounters, taskIds, indent + "  ");
         }
 
Index: trunk/autoquest-test-utils/src/main/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeValidator.java
===================================================================
--- trunk/autoquest-test-utils/src/main/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeValidator.java	(revision 1212)
+++ trunk/autoquest-test-utils/src/main/java/de/ugoe/cs/autoquest/tasktrees/TaskTreeValidator.java	(revision 1294)
@@ -20,8 +20,13 @@
 
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTaskInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IIterationInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptional;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptionalInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelection;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ISelectionInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequence;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ISequenceInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInstance;
@@ -66,9 +71,10 @@
             
             assertEquals("number of children of sequence instance must match sequence model",
-                         taskInstance.size(), task.getChildren().size());
+                         ((ISequenceInstance) taskInstance).size(), task.getChildren().size());
             
-            for (int i = 0; i < taskInstance.size(); i++) {
-                assertNotNull("sequence instance child " + i + " was null", taskInstance.get(i));
-                ITask childTask = taskInstance.get(i).getTask();
+            for (int i = 0; i < ((ISequenceInstance) taskInstance).size(); i++) {
+                assertNotNull("sequence instance child " + i + " was null",
+                              ((ISequenceInstance) taskInstance).get(i));
+                ITask childTask = ((ISequenceInstance) taskInstance).get(i).getTask();
                 assertSame("task of sequence child " + i + " does not match sequence model",
                            childTask, task.getChildren().get(i));
@@ -78,6 +84,6 @@
             ISelection task = (ISelection) taskInstance.getTask();
             
-            assertEquals
-                ("number of children of selection instance must be 1", 1, taskInstance.size());
+            assertNotNull("number of children of selection instance must be 1",
+                          ((ISelectionInstance) taskInstance).getChild());
             assertTrue
                 ("number of children of selection must be larger 0", task.getChildren().size() > 0);
@@ -90,5 +96,5 @@
                 assertFalse("child of selection model must not be an optional",
                             childTask instanceof IOptional);
-                if (childTask.equals(taskInstance.get(0).getTask())) {
+                if (childTask.equals(((ISelectionInstance) taskInstance).getChild().getTask())) {
                     found = true;
                     break;
@@ -107,8 +113,9 @@
                         childTask instanceof IOptional);
             
-            for (int i = 0; i < taskInstance.size(); i++) {
-                assertNotNull("iteration instance child " + i + " was null", taskInstance.get(i));
+            for (int i = 0; i < ((IIterationInstance) taskInstance).size(); i++) {
+                assertNotNull("iteration instance child " + i + " was null",
+                              ((IIterationInstance) taskInstance).get(i));
                 assertSame("task of iteration child " + i + " does not match iteration model",
-                           childTask, taskInstance.get(i).getTask());
+                           childTask, ((IIterationInstance) taskInstance).get(i).getTask());
             }
         }
@@ -119,18 +126,15 @@
                         childTask instanceof IOptional);
             
-            assertEquals
-                ("number of children of optional instance must be 1", 1, taskInstance.size());
+            assertNotNull("number of children of optional instance must be 1",
+                          ((IOptionalInstance) taskInstance).getChild());
             
             assertEquals("task of optional child does not match optional model",
-                         childTask, taskInstance.get(0).getTask());
+                         childTask, ((IOptionalInstance) taskInstance).getChild().getTask());
         }
         else if (taskInstance.getTask() instanceof IEventTask) {
             IEventTask task = (IEventTask) taskInstance.getTask();
             assertNotNull("event task model must not be null", task);
-            assertNotNull("event type of event task model must not be null", task.getEventType());
-            assertNotNull
-                ("event target of event task model must not be null", task.getEventTarget());
-
-            assertEquals("event task instance must not have children", 0, taskInstance.size());
+            assertNotNull("event of event task instance must not be null",
+                          ((IEventTaskInstance) taskInstance).getEvent());
         }
         else {
@@ -138,6 +142,14 @@
         }
         
-        for (ITaskInstance child : taskInstance) {
-            validate(child);
+        if (taskInstance instanceof ITaskInstanceList) {
+            for (ITaskInstance child : (ITaskInstanceList) taskInstance) {
+                validate(child);
+            }
+        }
+        else if (taskInstance instanceof ISelectionInstance) {
+            validate(((ISelectionInstance) taskInstance).getChild());
+        }
+        else if (taskInstance instanceof IOptionalInstance) {
+            validate(((IOptionalInstance) taskInstance).getChild());
         }
     }
