Index: /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/Match.java
===================================================================
--- /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/Match.java	(revision 1759)
+++ /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/Match.java	(revision 1760)
@@ -4,6 +4,4 @@
 package de.ugoe.cs.autoquest.tasktrees.alignment.algorithms;
 
-import java.io.Serializable;
-import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -13,11 +11,8 @@
  * The Class Match.
  */
-public class Match implements Cloneable,Comparable<Match>,Serializable {
-	
-	/** The Constant serialVersionUID. */
-	private static final long serialVersionUID = -3206992723755714741L;
+public class Match {
 
 	/** The matchseqs. */
-	private final ArrayList<NumberSequence> matchseqs;
+	private final NumberSequence[] matchseqs;
 
 	/** The occurences. */
@@ -28,14 +23,13 @@
 	 */
 	public Match() {
-		matchseqs = new ArrayList<NumberSequence>(2);
+		matchseqs = new NumberSequence[2];
 		occurrences = new LinkedList<MatchOccurrence>();
-		matchseqs.add(null);
-		matchseqs.add(null);
-	}		// TODO Auto-generated method stub
+		
+	}		
 
 	/**
-	 * Adds the occurence.
+	 * Adds the occurrence.
 	 *
-	 * @param occurence the occurence
+	 * @param occurence the occurrence
 	 */
 	public void addOccurence(MatchOccurrence occurence) {
@@ -74,5 +68,5 @@
 	 */
 	public NumberSequence getFirstSequence() {
-		return matchseqs.get(0);
+		return matchseqs[0];
 	}
 
@@ -92,5 +86,5 @@
 	 */
 	public NumberSequence getSecondSequence() {
-		return matchseqs.get(1);
+		return matchseqs[1];
 	}
 
@@ -110,5 +104,5 @@
 	 */
 	public void setFirstSequence(NumberSequence seq) {
-		matchseqs.set(0, seq);
+		matchseqs[0] = seq;
 	}
 
@@ -128,5 +122,5 @@
 	 */
 	public void setSecondSequence(NumberSequence seq) {
-		matchseqs.set(1, seq);
+		matchseqs[1] = seq;
 	}
 
@@ -169,4 +163,5 @@
 	 * @throws CloneNotSupportedException the clone not supported exception
 	 */
+	/*
 	public Match cloneWithoutOccurrences()   {
 		Match result = new Match();
@@ -174,8 +169,7 @@
 		result.setSecondSequence(this.getSecondSequence());
 		return result;
-	}
+	}*/
 	
-	
-	
+
 	/**
 	 * Size.
@@ -185,15 +179,5 @@
 	public int size() {
 		// Both sequences should be equally long
-		return matchseqs.get(0).size();
+		return matchseqs[0].size();
 	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Comparable#compareTo(java.lang.Object)
-	 */
-	@Override
-	public int compareTo(Match arg0) {
-		
-		return 0;
-	}
-
 }
Index: /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/SmithWatermanRepeated.java
===================================================================
--- /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/SmithWatermanRepeated.java	(revision 1759)
+++ /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/SmithWatermanRepeated.java	(revision 1760)
@@ -126,5 +126,5 @@
 
 				for (int j = 2; j <= length2; j++) {
-					if (matrix[i - 1][j].getScore() > tempMax) {
+					if (matrix[i - 1][j].getScore()-scoreThreshold > tempMax) {
 						tempMax = matrix[i - 1][j].getScore();
 						maxRowIndex = j;
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 1759)
+++ /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/RuleUtils.java	(revision 1760)
@@ -17,5 +17,4 @@
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IIteration;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IMarkingTemporalRelationship;
-import de.ugoe.cs.autoquest.tasktrees.treeifc.IStructuringTemporalRelationship;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptional;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IOptionalInstance;
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 1759)
+++ /branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleAlignment.java	(revision 1760)
@@ -16,4 +16,5 @@
 
 import java.io.Serializable;
+import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -167,10 +168,9 @@
             appData.getStopWatch().stop("task replacement");
             appData.getStopWatch().stop("whole loop");
-            // appData.getStopWatch().dumpStatistics(System.out);
+            appData.getStopWatch().dumpStatistics(System.out);
             appData.getStopWatch().reset();
 
-            // } while (appData.detectedAndReplacedTasks()||iteration < maxIterations);
-        }
-        while (iteration < maxIterations);
+        } while (appData.detectedAndReplacedTasks());
+        //} while (iteration < maxIterations);
         Console.println("created " + appData.getResult().getNewlyCreatedTasks().size() +
             " new tasks and " + appData.getResult().getNewlyCreatedTaskInstances().size() +
@@ -666,4 +666,5 @@
             }
         }
+        appData.matchseqs =null;
     }
 
@@ -1123,5 +1124,5 @@
         private final ObjectDistanceSubstitionMatrix submat;
 
-        private LinkedList<PlannedReplacement>[] plannedReplacements;
+        private ArrayDeque<PlannedReplacement>[] plannedReplacements;
 
         /** The list of all found matches */
@@ -1173,11 +1174,11 @@
 
         private void initializeQueues(int size) {
-            plannedReplacements = new LinkedList[size];
+            plannedReplacements = new ArrayDeque[size];
             for (int i = 0; i < size; i++) {
-                plannedReplacements[i] = new LinkedList<PlannedReplacement>();
-            }
-        }
-
-        public Queue<PlannedReplacement>[] getPlannedReplacements() {
+                plannedReplacements[i] = new ArrayDeque<PlannedReplacement>(30);
+            }
+        }
+
+        public ArrayDeque<PlannedReplacement>[] getPlannedReplacements() {
             return plannedReplacements;
         }
