Index: trunk/autoquest-ui-swt/src/main/java/de/ugoe/cs/autoquest/ui/swt/ModelsTabComposite.java
===================================================================
--- trunk/autoquest-ui-swt/src/main/java/de/ugoe/cs/autoquest/ui/swt/ModelsTabComposite.java	(revision 1122)
+++ trunk/autoquest-ui-swt/src/main/java/de/ugoe/cs/autoquest/ui/swt/ModelsTabComposite.java	(revision 1146)
@@ -23,5 +23,5 @@
 import org.eclipse.swt.layout.GridData;
 
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 import de.ugoe.cs.autoquest.usageprofiles.FirstOrderMarkovModel;
 import de.ugoe.cs.autoquest.usageprofiles.IDotCompatible;
@@ -130,7 +130,7 @@
                     CommandExecuter.getInstance().exec(command);
                 }
-                else if (obj instanceof ITaskTree) {
+                else if (obj instanceof ITaskModel) {
                     ShowTaskTreeDialog showTaskTreeDialog = new ShowTaskTreeDialog
-                        (getShell(), SWT.NONE, (ITaskTree) obj, selectedStrings[0]);
+                        (getShell(), SWT.NONE, (ITaskModel) obj, selectedStrings[0]);
                     showTaskTreeDialog.open();
                 }
@@ -291,5 +291,5 @@
         for (String key : GlobalDataContainer.getInstance().getAllKeys()) {
             if ((GlobalDataContainer.getInstance().getData(key) instanceof IStochasticProcess) ||
-                (GlobalDataContainer.getInstance().getData(key) instanceof ITaskTree))
+                (GlobalDataContainer.getInstance().getData(key) instanceof ITaskModel))
             {
                 modelList.add(key);
Index: trunk/autoquest-ui-swt/src/main/java/de/ugoe/cs/autoquest/ui/swt/ShowTaskTreeDialog.java
===================================================================
--- trunk/autoquest-ui-swt/src/main/java/de/ugoe/cs/autoquest/ui/swt/ShowTaskTreeDialog.java	(revision 1122)
+++ trunk/autoquest-ui-swt/src/main/java/de/ugoe/cs/autoquest/ui/swt/ShowTaskTreeDialog.java	(revision 1146)
@@ -15,5 +15,8 @@
 package de.ugoe.cs.autoquest.ui.swt;
 
+import java.util.List;
+
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
@@ -27,6 +30,11 @@
 import org.eclipse.swt.widgets.TreeItem;
 
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTree;
-import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskTreeNode;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IMarkingTemporalRelationship;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IStructuringTemporalRelationship;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInstance;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInstanceList;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IUserSession;
 
 import org.eclipse.swt.widgets.Label;
@@ -45,16 +53,19 @@
     
     /** */
-    private Tree tree;
-
-    /** */
-    protected ITaskTree taskTree;
-
-    /**
-     * 
-     */
-    public ShowTaskTreeDialog(Shell parent, int style, ITaskTree taskTree, String taskTreeName) {
+    private Tree instanceTree;
+    
+    /** */
+    private Tree modelTree;
+
+    /** */
+    protected ITaskModel taskModel;
+
+    /**
+     * 
+     */
+    public ShowTaskTreeDialog(Shell parent, int style, ITaskModel taskModel, String taskTreeName) {
         super(parent, style);
-        setText("Task Tree " + taskTreeName);
-        this.taskTree = taskTree;
+        setText("Task Model " + taskTreeName);
+        this.taskModel = taskModel;
     }
 
@@ -83,9 +94,25 @@
 
         shell.setLayout(new GridLayout(4, false));
-
-        tree = new Tree(shell, SWT.BORDER | SWT.MULTI);
-        tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1));
-
-        buildTree();
+        
+        SashForm sashForm = new SashForm(shell, SWT.VERTICAL);
+        sashForm.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1));
+        
+        instanceTree = new Tree(sashForm, SWT.BORDER | SWT.MULTI);
+        instanceTree.addSelectionListener(new SelectionAdapter() {
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                modelTree.removeAll();
+                TreeItem[] selectedItems = instanceTree.getSelection();
+                if ((selectedItems.length == 1) &&
+                    (selectedItems[0].getData() instanceof ITaskInstance))
+                {
+                    buildModelTree((ITaskInstance) selectedItems[0].getData());
+                }
+            }
+        });
+
+        buildInstanceTree();
+
+        modelTree = new Tree(sashForm, SWT.BORDER | SWT.MULTI);
 
         Button btnExpandAll = new Button(shell, SWT.NONE);
@@ -93,5 +120,5 @@
             @Override
             public void widgetSelected(SelectionEvent e) {
-                expandAll(tree, true);
+                expandAll(instanceTree, true);
             }
         });
@@ -102,5 +129,5 @@
             @Override
             public void widgetSelected(SelectionEvent e) {
-                expandAll(tree, false);
+                expandAll(instanceTree, false);
             }
         });
@@ -117,25 +144,57 @@
      * 
      */
-    private void buildTree() {
-        ITaskTreeNode root = taskTree.getRoot();
-        
-        TreeItem child = new TreeItem(tree, SWT.NULL);
-        child.setText(root.getName() + " (" + root.getDescription() + ")");
-        child.setData(root);
-        buildGuiTree(child, root);
-    }
-
-    /**
-     * 
-     */
-    private void buildGuiTree(TreeItem currentParent, ITaskTreeNode node) {
-        if (node.getChildren() != null) {
-            
-            for (ITaskTreeNode childTask : node.getChildren()) {
-                TreeItem child = new TreeItem(currentParent, SWT.NULL);
-                child.setText(childTask.getName() + " (" + childTask.getDescription() + ")");
-                child.setData(childTask);
-                buildGuiTree(child, childTask);
-            }
+    private void buildInstanceTree() {
+        List<IUserSession> sessions = taskModel.getUserSessions();
+        
+        TreeItem root = new TreeItem(instanceTree, SWT.NULL);
+        root.setText(sessions.size() + " sessions");
+        root.setData(sessions);
+        
+        for (IUserSession session : sessions) {
+            buildInstanceTree(root, session);
+        }
+    }
+
+    /**
+     * 
+     */
+    private void buildInstanceTree(TreeItem currentParent, ITaskInstanceList taskInstanceList) {
+        TreeItem child = new TreeItem(currentParent, SWT.NULL);
+        child.setText(taskInstanceList.toString());
+        child.setData(taskInstanceList);
+        
+        for (ITaskInstanceList childTask : taskInstanceList) {
+            buildInstanceTree(child, childTask);
+        }
+    }
+
+    /**
+     * 
+     */
+    private void buildModelTree(ITaskInstance taskInstance) {
+        modelTree.removeAll();
+        TreeItem root = new TreeItem(modelTree, SWT.NULL);
+        root.setText("model of instance " + taskInstance);
+        root.setData(taskInstance);
+
+        buildModelTree(taskInstance.getTask(), root);
+        expandAll(root, true);
+    }
+
+    /**
+     * 
+     */
+    private void buildModelTree(ITask task, TreeItem parent) {
+        TreeItem node = new TreeItem(parent, SWT.NULL);
+        node.setText(task.toString());
+        node.setData(task);
+        
+        if (task instanceof IStructuringTemporalRelationship) {
+            for (ITask subTask : ((IStructuringTemporalRelationship) task).getChildren()) {
+                buildModelTree(subTask, node);
+            }
+        }
+        else if (task instanceof IMarkingTemporalRelationship) {
+            buildModelTree(((IMarkingTemporalRelationship) task).getMarkedTask(), node);
         }
     }
