Index: trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeifc/ITaskBuilder.java
===================================================================
--- trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeifc/ITaskBuilder.java	(revision 1180)
+++ trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeifc/ITaskBuilder.java	(revision 1191)
@@ -16,14 +16,22 @@
 
 /**
- * TODO comment
- * 
- * @version $Revision: $ $Date: 21.02.2012$
- * @author 2012, last modified by $Author: patrick$
+ * <p>
+ * Builder for task models. Can be used to create and edit task models. May perform integrity
+ * checks, though they may be incomplete as the integrity of a task model can not be ensured during
+ * creation.
+ * </p>
  */
 public interface ITaskBuilder {
 
     /**
-     * @param taskInstance
-     * @param child
+     * <p>
+     * adds a child to a task instance. May ensure, that the child is a valid child considering
+     * the task model of the parent. In that case, an IllegalArgumentException is thrown.
+     * </p>
+     * 
+     * @param taskInstance the instance of add the child to
+     * @param child        the child to be added
+     * 
+     * @throws IllegalArgumentException as described
      */
     void addChild(ITaskInstance taskInstance, ITaskInstance child) throws IllegalArgumentException;
@@ -31,112 +39,187 @@
     /**
      * <p>
-     * TODO: comment
+     * adds a task instance to a user session
      * </p>
      *
-     * @param session
-     * @param taskInstance
+     * @param session      the session to add the task instance to
+     * @param taskInstance the task instance to add
      */
     void addExecutedTask(IUserSession session, ITaskInstance taskInstance);
 
     /**
-     * 
-     * @param parent
-     * @param i
+     * <p>
+     * adds a task instance to a task instance list
+     * </p>
+     * 
+     * @param taskInstanceList the list to add the task instance to
+     * @param taskInstance     the task instance to add
      */
     void addTaskInstance(ITaskInstanceList taskInstanceList, ITaskInstance taskInstance);
 
     /**
-     * 
-     * @param parent
-     * @param i
-     */
-    void addTaskInstance(ITaskInstanceList taskInstanceList, int index, ITaskInstance taskInstance);
-
-    /**
-     * 
-     * @param parent
-     * @param i
-     */
-    void setTaskInstance(ITaskInstanceList taskInstanceList, int index, ITaskInstance taskInstance);
-
-    /**
-     * <p>
-     * TODO: comment
-     * </p>
-     *
-     * @param instance2
-     * @param task
+     * <p>
+     * adds a task instance to a task instance list at a specific position. Subsequent task
+     * instances will be moved one index forward
+     * </p>
+     * 
+     * @param taskInstanceList the list to add the task instance to
+     * @param index            the index of the task instance to add
+     * @param taskInstance     the task instance to add
+     * 
+     * @throws IndexOutOfBoundsException if the index is invalid
+     */
+    void addTaskInstance(ITaskInstanceList taskInstanceList, int index, ITaskInstance taskInstance)
+        throws IndexOutOfBoundsException;
+
+    /**
+     * <p>
+     * sets a task instance in a task instance list at a specific position
+     * </p>
+     * 
+     * @param taskInstanceList the list to set the task instance in
+     * @param index            the index of the task instance to replace
+     * @param taskInstance     the replacement for the task instance at the index
+     * 
+     * @throws IndexOutOfBoundsException if the index is invalid
+     */
+    void setTaskInstance(ITaskInstanceList taskInstanceList, int index, ITaskInstance taskInstance)
+        throws IndexOutOfBoundsException;
+
+    /**
+     * <p>
+     * sets the task model of a task instance
+     * </p>
+     * 
+     * @param taskInstance the task instance to set the task model for
+     * @param task         the task model of the instance
      */
     void setTask(ITaskInstance taskInstance, ITask task);
 
     /**
-     *
+     * <p>
+     * adds a child task to the end of a sequence
+     * </p>
+     * 
+     * @param parent the sequence to add the child to
+     * @param child  the child to be added
      */
     void addChild(ISequence parent, ITask child);
 
     /**
-     *
-     */
-    void addChild(ISequence parent, int index, ITask child);
-
-    /**
-     * 
-     * @param parent
-     * @param i
-     */
-    void setChild(ISequence parent, int index, ITask child);
-
-    /**
-     * @param sequence
-     * @param task
+     * <p>
+     * adds a child task to a specific index of a sequence
+     * </p>
+     * 
+     * @param parent the sequence to add the child to
+     * @param index  the index to set the child at
+     * @param child  the child to be added
+     * 
+     * @throws IndexOutOfBoundsException if the index is invalid
+     */
+    void addChild(ISequence parent, int index, ITask child)
+        throws IndexOutOfBoundsException;
+
+    /**
+     * <p>
+     * replaces the child task of a sequence at a specific position
+     * </p>
+     * 
+     * @param parent the sequence to replace the child in
+     * @param index  the index to replace the child at
+     * @param child  the child to be added
+     * 
+     * @throws IndexOutOfBoundsException if the index is invalid
+     */
+    void setChild(ISequence parent, int index, ITask child)
+        throws IndexOutOfBoundsException;
+
+    /**
+     * <p>
+     * adds a child task to a selection
+     * </p>
+     * 
+     * @param parent the selection to add the child to
+     * @param child  the child to be added
      */
     void addChild(ISelection parent, ITask child);
 
     /**
-     * 
-     * @param iteration
-     * @param newChild
-     */
-    void setMarkedTask(IIteration iteration, ITask newChild);
-
-    /**
-     * 
-     * @param optional
-     * @param newChild
-     */
-    void setMarkedTask(IOptional optional, ITask newChild);
-
-    /**
-     * 
-     * @param parent
-     * @param i
-     */
-    void removeChild(ISequence parent, int index);
-
-    /**
-     *
-     * @param parent
-     * @param i
+     * <p>
+     * sets the child task of an iteration
+     * </p>
+     * 
+     * @param parent the iteration to set the child of
+     * @param child  the child to be set
+     */
+    void setMarkedTask(IIteration iteration, ITask child);
+
+    /**
+     * <p>
+     * sets the child task of an optional
+     * </p>
+     * 
+     * @param parent the optional to set the child of
+     * @param child  the child to be set
+     */
+    void setMarkedTask(IOptional optional, ITask child);
+
+    /**
+     * <p>
+     * removes the child of a sequence at a specific position
+     * </p>
+     * 
+     * @param parent the sequence of which the child must be removed
+     * @param index  the index of the child to be removed
+     * 
+     * @throws IndexOutOfBoundsException if the index is invalid
+     */
+    void removeChild(ISequence parent, int index)
+        throws IndexOutOfBoundsException;
+
+    /**
+     * <p>
+     * removes a child of a selection. Ignores the call, if the child is not found
+     * (comparison using equals).
+     * </p>
+     * 
+     * @param parent the selection of which the child must be removed
+     * @param child  the child to be removes
      */
     void removeChild(ISelection parent, ITask child);
 
     /**
-     * 
-     * @param parent
-     * @param i
-     */
-    void removeTaskInstance(ITaskInstanceList taskInstanceList, int index);
-
-    /**
-     *
-     * @param parent
-     * @param i
+     * <p>
+     * removes the entry of a task instance list at a specific position
+     * </p>
+     * 
+     * @param taskInstanceList the task instance list of which the entry must be removed
+     * @param index            the index of the entry to be removed
+     * 
+     * @throws IndexOutOfBoundsException if the index is invalid
+     */
+    void removeTaskInstance(ITaskInstanceList taskInstanceList, int index)
+        throws IndexOutOfBoundsException;
+
+    /**
+     * <p>
+     * replaces a child of a selection. Throws an IllegalArgumentException if the child is not
+     * found (comparison using equals).
+     * </p>
+     * 
+     * @param parent   the selection of which the child must be replace
+     * @param oldChild the child to replace
+     * @param newChild the replacement for the child
+     * 
+     * @throws as described
      */
     void replaceChild(ISelection parent, ITask oldChild, ITask newChild);
 
     /**
-     * 
-     * @param parent
-     * @param i
+     * <p>
+     * sets the description of a task
+     * </p>
+     * 
+     * @param task        the task to set the description of
+     * @param description the new description of the task
      */
     void setDescription(ITask task, String description);
Index: trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeifc/ITaskFactory.java
===================================================================
--- trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeifc/ITaskFactory.java	(revision 1180)
+++ trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeifc/ITaskFactory.java	(revision 1191)
@@ -21,65 +21,97 @@
 
 /**
- * TODO comment
+ * <p>
+ * factory for the different task types
+ * </p>
  * 
- * @version $Revision: $ $Date: 21.02.2012$
- * @author 2012, last modified by $Author: patrick$
+ * @author Patrick Harms
  */
 public interface ITaskFactory {
 
     /**
+     * <p>
+     * creates a new event task with the given type and target
+     * </p>
      * 
-     * @param eventType
-     * @param eventTarget
-     * @return
+     * @param eventType   the type of the event represented by the task
+     * @param eventTarget the target of the event represented by the task
+     * 
+     * @return the event task
      */
     IEventTask createNewEventTask(IEventType eventType, IEventTarget eventTarget);
 
     /**
+     * <p>
+     * creates a new empty sequence
+     * </p>
      * 
-     * @return
+     * @return the sequence
      */
     ISequence createNewSequence();
 
     /**
+     * <p>
+     * creates a new empty iteration
+     * </p>
      * 
-     * @return
+     * @return the iteration
      */
     IIteration createNewIteration();
 
     /**
+     * <p>
+     * creates a new empty optional
+     * </p>
      * 
-     * @return
+     * @return the optional
      */
     IOptional createNewOptional();
 
     /**
+     * <p>
+     * creates a new empty selection
+     * </p>
      * 
-     * @return
+     * @return the selection
      */
     ISelection createNewSelection();
 
     /**
+     * <p>
+     * creates a new task instance with the given task as its model
+     * </p>
      * 
-     * @return
+     * @param task the model of the task instance to be created
+     * 
+     * @return the task instance
      */
     ITaskInstance createNewTaskInstance(ITask task);
 
     /**
-     *
-     * @return
+     * <p>
+     * creates a new empty task instance list
+     * </p>
+     * 
+     * @return the task instance list
      */
     ITaskInstanceList createNewTaskInstanceList();
 
     /**
+     * <p>
+     * creates a new empty user session
+     * </p>
      * 
-     * @return
+     * @return the user session
      */
     IUserSession createUserSession();
 
     /**
+     * <p>
+     * creates a task model based on the provided user sessions
+     * </p>
      * 
-     * @param rootSequence
-     * @return
+     * @param userSessions the session based on which the task model shall be created
+     * 
+     * @return the task model
      */
     ITaskModel createTaskModel(List<IUserSession> userSessions);
Index: trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeifc/ITaskInfo.java
===================================================================
--- trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeifc/ITaskInfo.java	(revision 1180)
+++ trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeifc/ITaskInfo.java	(revision 1191)
@@ -18,13 +18,19 @@
 
 /**
- * TODO comment
+ * <p>
+ * yet more or less unused, this class will in the future provided extended information about a
+ * specific task, such as statistics about task occurrences, etc.
+ * </p>
  * 
- * @version $Revision: $ $Date: 21.02.2012$
- * @author 2012, last modified by $Author: patrick$
+ * @author Patrick Harms
  */
 public interface ITaskInfo extends Serializable {
 
     /**
+     * <p>
+     * returns the task to which these infos belong
+     * </p>
      * 
+     * @return as described
      */
     public ITask getTask();
Index: trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeifc/ITaskVisitor.java
===================================================================
--- trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeifc/ITaskVisitor.java	(revision 1180)
+++ trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeifc/ITaskVisitor.java	(revision 1191)
@@ -26,21 +26,21 @@
 
     /**
-    *
-    */
+     *
+     */
     public void visit(IEventTask event);
     
     /**
-    *
-    */
+     *
+     */
     public void visit(IIteration iteration);
     
     /**
-    *
-    */
+     *
+     */
     public void visit(ISelection selection);
     
     /**
-    *
-    */
+     *
+     */
     public void visit(ISequence sequence);
 
