Index: branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/pal/tree/FengDoolittleNode.java
===================================================================
--- branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/pal/tree/FengDoolittleNode.java	(revision 1585)
+++ branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/pal/tree/FengDoolittleNode.java	(revision 1586)
@@ -11,9 +11,7 @@
 
 import java.util.ArrayList;
-import java.util.logging.Level;
-
 import de.ugoe.cs.autoquest.tasktrees.alignment.algorithms.NumberSequence;
 import de.ugoe.cs.autoquest.tasktrees.alignment.pal.misc.Identifier;
-import de.ugoe.cs.util.console.Console;
+
 
 
@@ -374,5 +372,4 @@
 		newNode.addChild(child2);
 		newNode.setIdentifier(new Identifier(child1.getIdentifier().getName() + " " + child2.getIdentifier().getName()));
-		//System.out.println("Merging " + child1.getIdentifier() + " with " + child2.getIdentifier());
 		
 		return newNode;
Index: branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/pal/tree/UPGMAAligningTree.java
===================================================================
--- branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/pal/tree/UPGMAAligningTree.java	(revision 1585)
+++ branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/pal/tree/UPGMAAligningTree.java	(revision 1586)
@@ -15,7 +15,8 @@
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.logging.Level;
 
+import de.ugoe.cs.autoquest.tasktrees.alignment.algorithms.AlignmentAlgorithm;
+import de.ugoe.cs.autoquest.tasktrees.alignment.algorithms.AlignmentAlgorithmFactory;
 import de.ugoe.cs.autoquest.tasktrees.alignment.algorithms.NumberSequence;
 import de.ugoe.cs.autoquest.tasktrees.alignment.algorithms.SmithWatermanRepeated;
@@ -228,5 +229,5 @@
 				int maxIndex = 0;
 				for(int i=0;i<seqCount1;i++) {
-					tempStorage.set(i, 1, new SmithWatermanRepeated(node1.getSequence(i).getSequence(), node2.getSequence(0).getSequence() , submat, 5));
+					tempStorage.set(i, 1, AlignmentAlgorithmFactory.create(node1.getSequence(i).getSequence(), node2.getSequence(0).getSequence() , submat, 5));
 					if(maxScore < tempStorage.get(i, 1).getAlignmentScore()) {
 						maxScore = tempStorage.get(i, 1).getAlignmentScore();
@@ -234,4 +235,5 @@
 					}
 				}
+				//if(maxScore > 0)
 				alignment.add(tempStorage.get(maxIndex, 1).getAlignment().get(1));
 			}
@@ -243,5 +245,5 @@
 				int maxIndex = 0;
 				for(int i=0;i<seqCount2;i++) {
-					tempStorage.set(1, i, new SmithWatermanRepeated(node2.getSequence(i).getSequence(), node1.getSequence(0).getSequence() , submat, 5));
+					tempStorage.set(1, i, AlignmentAlgorithmFactory.create(node2.getSequence(i).getSequence(), node1.getSequence(0).getSequence() , submat, 5));
 					if(maxScore < tempStorage.get(1, i).getAlignmentScore()) {
 						maxScore = tempStorage.get(1, i).getAlignmentScore();
@@ -249,4 +251,5 @@
 					}
 				}
+				//if(maxScore > 0)
 				alignment.add(tempStorage.get(1,maxIndex).getAlignment().get(1));
 			}
@@ -261,5 +264,5 @@
 					for(int i=0;i<seqCount1;i++) {
 						for(int j=0;j<seqCount2;j++) {
-							tempStorage1.set(j, 0, new SmithWatermanRepeated(node1.getSequence(i).getSequence(), node2.getSequence(j).getSequence() , submat, 5));
+							tempStorage1.set(j, 0, AlignmentAlgorithmFactory.create(node1.getSequence(i).getSequence(), node2.getSequence(j).getSequence() , submat, 5));
 							if(maxScore1 < tempStorage1.get(j, 0).getAlignmentScore()) {
 								maxScore1 = tempStorage1.get(j, 0).getAlignmentScore();
@@ -267,9 +270,10 @@
 							}
 						}
+						//if(maxScore1 > 0)
 						alignment.add(tempStorage1.get(maxIndex1,0).getAlignment().get(0));
 					}
 					for(int i=0; i<seqCount2;i++) {
 						for (int j=0;j<seqCount1;j++) {
-							tempStorage2.set(j, 0, new SmithWatermanRepeated(node2.getSequence(i).getSequence(),node1.getSequence(j).getSequence(),submat,5));
+							tempStorage2.set(j, 0, AlignmentAlgorithmFactory.create(node2.getSequence(i).getSequence(),node1.getSequence(j).getSequence(),submat,5));
 							if(maxScore2 < tempStorage2.get(j, 0).getAlignmentScore()) {
 								maxScore2 = tempStorage2.get(j, 0).getAlignmentScore();
@@ -277,4 +281,5 @@
 							}
 						}
+						//if(maxScore2 > 0)
 						alignment.add(tempStorage2.get(maxIndex2,0).getAlignment().get(0));
 					}
