add one condition
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/TwoStepLogAlgorithmForPathMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/TwoStepLogAlgorithmForPathMergeVertex.java
index 11a2447..7564d49 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/TwoStepLogAlgorithmForPathMergeVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/TwoStepLogAlgorithmForPathMergeVertex.java
@@ -98,14 +98,6 @@
 			if((adjMap & (1 << x)) != 0){
 				destVertexId.set(getNextDestVertexId(vertexId, x));
 				sendMsg(destVertexId, msg);
-				/*String log = "Iterator:" + getSuperstep() + "\t";
-				log += getVertexId().toString() + "\t";
-				log += getVertexValue().getMergeChain().toString() + "\t";
-				log += GeneCode.getSymbolFromBitMap(getVertexValue().getAdjMap()) + "\t";
-				log += getVertexValue().getState() + "\t";
-				log += "Dest: " + destVertexId.toString();
-				logger.info(log);
-				System.out.println(log);*/
 			}
 		}
 	}
@@ -145,16 +137,6 @@
 		msg.reset();
 		msg.setMessage(Message.START);
 		msg.setSourceVertexId(getVertexId());
-		/*if(getVertexId().toString().equals("GGAACGATGGGCAGGCAGAGTGTTCTACCTTTTCTCTGTATTTTACGATGAAGGC")){
-			String log = "Iterator:" + getSuperstep();
-			log += getVertexId().toString() + "\t";
-			log += getVertexValue().getMergeChain().toString() + "\t";
-			log += GeneCode.getSymbolFromBitMap(getVertexValue().getAdjMap()) + "\t";
-			log += getVertexValue().getState() + "\t";
-			log += "Dest: " + destVertexId.toString();
-			logger.info(log);
-			System.out.println(log);
-		}*/
 		sendMsg(destVertexId, msg);
 		voteToHalt();
 	}
@@ -165,16 +147,6 @@
 		msg.reset();
 		msg.setMessage(Message.END);
 		msg.setSourceVertexId(getVertexId());
-		/*if(getVertexId().toString().equals("GGAACGATGGGCAGGCAGAGTGTTCTACCTTTTCTCTGTATTTTACGATGAAGGC")){
-			String log = "Iterator:" + getSuperstep();
-			log += getVertexId().toString() + "\t";
-			log += getVertexValue().getMergeChain().toString() + "\t";
-			log += GeneCode.getSymbolFromBitMap(getVertexValue().getAdjMap()) + "\t";
-			log += getVertexValue().getState() + "\t";
-			log += "Dest: " + destVertexId.toString();
-			logger.info(log);
-			System.out.println(log);
-		}*/
 		sendMsg(destVertexId, msg);
 		voteToHalt();
 	}
@@ -282,8 +254,6 @@
 		if(GraphVertexOperation.isHeadVertex(getVertexValue().getAdjMap())){
 			msg.set(null, null, (byte)0, Message.START);
 			sendMsgToAllNextNodes(getVertexId(), getVertexValue().getAdjMap());
-			//if(getVertexId().toString().equals("CGGAACGATGGGCAGGCAGAGTGTTCTACCTTTTCTCTGTATTTTACGATGAAGG")){
-			//}
 			voteToHalt();
 		}
 		if(GraphVertexOperation.isRearVertex(getVertexValue().getAdjMap())){
@@ -301,15 +271,6 @@
 	 */
 	public void initState(Iterator<LogAlgorithmMessageWritable> msgIterator){
 		while(msgIterator.hasNext()){
-			/*if(getVertexId().toString().equals("GGAACGATGGGCAGGCAGAGTGTTCTACCTTTTCTCTGTATTTTACGATGAAGGC")){
-			String log = "Iterator:" + getSuperstep();
-			log += getVertexId().toString() + "\t";
-			log += getVertexValue().getMergeChain().toString() + "\t";
-			log += GeneCode.getSymbolFromBitMap(getVertexValue().getAdjMap()) + "\t";
-			log += getVertexValue().getState();
-			logger.info(log);
-			System.out.println(log);
-			}*/
 			if(!GraphVertexOperation.isPathVertex(getVertexValue().getAdjMap())){
 				msgIterator.next();
 				voteToHalt();
@@ -368,22 +329,22 @@
 	@Override
 	public void compute(Iterator<LogAlgorithmMessageWritable> msgIterator) {
 		initVertex();
-		/*if(getVertexId().toString().equals("GGAACGATGGGCAGGCAGAGTGTTCTACCTTTTCTCTGTATTTTACGATGAAGGC")){
-			System.out.println("found");
-			//sendMsgToAllNextNodes(getVertexId(), getVertexValue().getAdjMap());
-		}*/
-		if (getSuperstep() == 1) 
-			startSendMsg();
-		else if(getSuperstep() == 2)
-			initState(msgIterator);
-		else if(getSuperstep()%2 == 1 && getSuperstep() <= maxIteration){
-			sendMsgToPathVertex(msgIterator);
-		}
-		else if(getSuperstep()%2 == 0 && getSuperstep() <= maxIteration){
-			responseMsgToHeadVertex(msgIterator);
-		}
-		else
+		if(getVertexValue().getState() == State.FINAL_VERTEX)
 			voteToHalt();
+		else{
+			if (getSuperstep() == 1) 
+				startSendMsg();
+			else if(getSuperstep() == 2)
+				initState(msgIterator);
+			else if(getSuperstep()%2 == 1 && getSuperstep() <= maxIteration){
+				sendMsgToPathVertex(msgIterator);
+			}
+			else if(getSuperstep()%2 == 0 && getSuperstep() <= maxIteration){
+				responseMsgToHeadVertex(msgIterator);
+			}
+			else
+				voteToHalt();
+		}
 	}
 	/**
 	 * @param args