Index: /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/matrix/ObjectDistanceSubstitionMatrix.java
===================================================================
--- /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/matrix/ObjectDistanceSubstitionMatrix.java	(revision 1695)
+++ /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/matrix/ObjectDistanceSubstitionMatrix.java	(revision 1696)
@@ -74,5 +74,5 @@
 		int index1 = -1;
 		int index2 = -1;
-		double distance = 0;
+		float distance = 0;
 		int count = 0;
 		for (Iterator<ITask> it = uniqueTasks.iterator(); it.hasNext();) {
@@ -131,5 +131,5 @@
 	}
 
-	private double distanceBetweenTaskAndInstance(ITask task1,
+	private float distanceBetweenTaskAndInstance(ITask task1,
 			IEventTaskInstance eti1) {
 		if (this.calculateNonTaskInstances) {
@@ -145,5 +145,5 @@
 					tmpDistance += getScore(taskId1, taskId2);
 				} else {
-					double dist = distanceBetweenInstances(eti1, eti2);
+					float dist = distanceBetweenInstances(eti1, eti2);
 					matrix.set(getIndex(eti1), getIndex(eti2), dist);
 					tmpDistance += dist;
@@ -160,5 +160,5 @@
 	}
 
-	private double distanceBetweenTasks(ITask task1, ITask task2) {
+	private float distanceBetweenTasks(ITask task1, ITask task2) {
 		if (this.calculateNonTaskInstances) {
 			LinkedList<IEventTaskInstance> eventTaskInstances = etisOfTasks
@@ -203,5 +203,5 @@
 	};
 
-	private double distanceBetweenInstances(IEventTaskInstance eti1,
+	private float distanceBetweenInstances(IEventTaskInstance eti1,
 			IEventTaskInstance eti2) {
 		IGUIElement first = (IGUIElement) eti1.getEvent().getTarget();
Index: /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/matrix/PairwiseAlignmentStorage.java
===================================================================
--- /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/matrix/PairwiseAlignmentStorage.java	(revision 1695)
+++ /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/matrix/PairwiseAlignmentStorage.java	(revision 1696)
@@ -15,5 +15,5 @@
     	alignments = new AlignmentAlgorithm[sizex+1][sizey+1];
     	sequenceDistances = new UPGMAMatrix(Math.max(sizex,sizey));
-    	sequenceDistances.initialize(Double.POSITIVE_INFINITY);
+    	sequenceDistances.initialize(Float.POSITIVE_INFINITY);
     }
  
@@ -28,5 +28,5 @@
     }
     
-    public void setDistance(int i,int j,double distance) {
+    public void setDistance(int i,int j,float distance) {
     	sequenceDistances.set(i, j, distance);
     }
Index: /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/matrix/TriangleMatrix.java
===================================================================
--- /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/matrix/TriangleMatrix.java	(revision 1695)
+++ /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/matrix/TriangleMatrix.java	(revision 1696)
@@ -3,5 +3,5 @@
 public class TriangleMatrix {
 	
-	private double[] matrix;
+	private float[] matrix;
 	protected int size;
 	
@@ -10,8 +10,8 @@
 	public TriangleMatrix(int size) {
 		this.size = size;
-		matrix = new double [size*(size+1)/2];
+		matrix = new float [size*(size+1)/2];
 	}
 	
-	public double get(int first, int second) {
+	public float get(int first, int second) {
 		int row = Math.min(first, second);
 		int col = Math.max(first, second);
@@ -20,5 +20,5 @@
 	}
 	
-	public void set(int first, int second, double value) {
+	public void set(int first, int second, float value) {
 		int row = Math.min(first, second);
 		int col = Math.max(first, second);
@@ -26,5 +26,5 @@
 	}
 
-	public void initialize(double value) {
+	public void initialize(float value) {
 		for (int i=0; i < matrix.length; i++) {
 			matrix[i] = value;
@@ -39,5 +39,5 @@
 			for(int j = 0; j< size; j++) {
 				if(i<j) {
-					if(Double.isInfinite(this.get(i,j))) {
+					if(Float.isInfinite(this.get(i,j))) {
 						result = result + " -------";
 					}
Index: /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/RuleUtils.java
===================================================================
--- /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/RuleUtils.java	(revision 1695)
+++ /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/RuleUtils.java	(revision 1696)
@@ -111,33 +111,4 @@
 				.createNewTaskInstance(model);
 		
-		// TODO: Debug output
-				System.out.println("PRINTING MODEL: ");
-				for (int i = 0; i < subsequence.getSequence().getChildren().size(); i++) {
-					System.out.println(subsequence.getSequence().getChildren().get(i));
-
-					if (subsequence.getSequence().getChildren().get(i).getType() == "selection") {
-						for (int j = 0; j < ((ISelection) subsequence.getSequence().getChildren().get(i))
-								.getChildren().size(); j++) {
-							if(((IStructuringTemporalRelationship) subsequence.getSequence().getChildren().get(i)).getChildren().get(j).getType() =="sequence")
-							{
-								ISequence foo =  (ISequence) ((ISelection) (subsequence.getSequence().getChildren().get(i))).getChildren().get(j);
-								System.out.println("\t" + foo);
-								for(int k=0; k< foo.getChildren().size();k++) {
-									System.out.println("\t\t" +foo.getChildren().get(k));
-								}
-								System.out.println();
-							}
-							else{
-								System.out.println("\t"
-										+ ((ISelection) subsequence.getSequence().getChildren().get(i))
-												.getChildren().get(j));
-							}
-						
-						}
-					}
-				
-				}
-				System.out.println();
-		
 		//TODO: This is dirty!
 		missedOptionals=0;
@@ -154,5 +125,5 @@
 						
 					if(((IMarkingTemporalRelationship) tempTask).getMarkedTask() == parent.get(startIndex).getTask()) {
-						System.out.println("Adding OptionalInstance " + parent.get(startIndex) + " to " + tempTask.getType());
+						//System.out.println("Adding OptionalInstance " + parent.get(startIndex) + " to " + tempTask.getType());
 						IOptionalInstance optional = taskFactory.createNewTaskInstance((IOptional) tempTask);
 						taskBuilder.setChild(optional, parent.get(startIndex));
@@ -171,8 +142,6 @@
 				ISelection tmpSel = (ISelection)tempTask;
 				if(tmpSel.getChildren().get(0).getType() == "sequence" && tmpSel.getChildren().get(1).getType()=="sequence") {
-					System.out.println("Adding SequenceInstance " + parent.get(startIndex) + " to " + tempTask);
 					ISequenceInstance selseq = null;
-					//System.out.println("IDS: " + parent.get(startIndex).getTask().getId() + " " +((ISequence)tmpSel.getChildren().get(0)).getChildren().get(0).getId());
-					//System.out.println("IDS: " + parent.get(startIndex).getTask().getId() + " " +((ISequence)tmpSel.getChildren().get(1)).getChildren().get(0).getId());
+					//The selection i create can just have 2 children
 					if(parent.get(startIndex).getTask().getId() == ((ISequence)tmpSel.getChildren().get(0)).getChildren().get(0).getId()) {
 						selseq = taskFactory.createNewTaskInstance((ISequence) tmpSel.getChildren().get(0));
@@ -182,6 +151,4 @@
 					}
 					else if(parent.get(startIndex).getTask().getId() == tmpSel.getChildren().get(0).getId() || parent.get(startIndex).getTask().getId() == tmpSel.getChildren().get(1).getId() ) {
-						selseq = (ISequenceInstance) parent.get(startIndex);
-						taskBuilder.setChild(selection, selseq);
 						continue;
 					}
@@ -196,5 +163,5 @@
 				else
 				{
-					System.out.println("Adding SelectionInstance " + parent.get(startIndex) + " to " + tempTask);
+					//System.out.println("Adding SelectionInstance " + parent.get(startIndex) + " to " + tempTask);
 					taskBuilder.setChild(selection, parent.get(startIndex));
 				}
@@ -202,14 +169,11 @@
 
 			} else if (tempTask.getType() == "sequence") {
-				System.out.println("Adding SequenceInstance " + parent.get(startIndex) + " to " + tempTask);
-				//ISequenceInstance sequence = taskFactory.createNewTaskInstance((ISequence) tempTask);
-				//taskBuilder.addChild(sequence, parent.get(i));
-				//taskBuilder.addChild(subsequence,sequence);
+				//System.out.println("Adding SequenceInstance " + parent.get(startIndex) + " to " + tempTask);
 				taskBuilder.addChild(subsequence, parent.get(startIndex));
 			} else if (tempTask.getType() == "iteration") {
-				System.out.println("Adding IterationInstance " + parent.get(startIndex) + " to " + tempTask);
+				//System.out.println("Adding IterationInstance " + parent.get(startIndex) + " to " + tempTask);
 				taskBuilder.addChild(subsequence, parent.get(startIndex));
 			} else {
-				System.out.println("Adding EventInstance " + parent.get(startIndex) + " to " + tempTask);
+				//System.out.println("Adding EventInstance " + parent.get(startIndex) + " to " + tempTask);
 				taskBuilder.addChild(subsequence, parent.get(startIndex));
 			}
Index: /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleAlignment.java
===================================================================
--- /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleAlignment.java	(revision 1695)
+++ /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleAlignment.java	(revision 1696)
@@ -443,9 +443,5 @@
 	 * @return
 	 */
-	public ISequence matchAsSequence(RuleApplicationData appData, Match m) {
-		
-		System.out.println("DEBUGGING MODEL GENERATION");
-		System.out.println();
-		
+	public ISequence matchAsSequence(RuleApplicationData appData, Match m) {	
 		ISequence sequence = taskFactory.createNewSequence();
 		appData.uniqueTasks.add(sequence);
@@ -506,5 +502,4 @@
 					taskBuilder.addChild(sequence, selection);
 				} else {
-					System.out.println("SELECTION OF SEQUENCES FOUND!");
 					boolean selectionfound = true;
 					ISelection selection = taskFactory.createNewSelection();
@@ -543,5 +538,4 @@
 				}
 			}
-
 			else {
 				if ((first[i] != second[i])) {
@@ -578,5 +572,5 @@
 		Console.traceln(Level.INFO, "generating substitution matrix");
 		ObjectDistanceSubstitionMatrix submat = new ObjectDistanceSubstitionMatrix(
-				appData.getUniqueTasks(), 6, -3);
+				appData.getUniqueTasks(), 6, -3,false);
 		submat.generate();
 
@@ -661,4 +655,5 @@
 					MatchOccurence oc = it.next();
 					
+					/*
 					if (iteration > 0) {
 					 
@@ -680,4 +675,5 @@
 					}
 					}
+					*/
 					// Check if nothing has been replaced in the sequence we
 					// want to replace
@@ -740,4 +736,5 @@
 		alignments = null;
 		matchseqs = null;
+		submat = null;
 		appData.getStopWatch().stop("replacing tasks");
 	}
@@ -788,5 +785,5 @@
 
 		/**
-		 * @return the tree
+		 * @return the UserSessions as List.
 		 */
 		private List<IUserSession> getSessions() {
