Simplify the main compute function of removetip and removelowcoverage
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleMergeVertex.java
index e94a359..6f228dd 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleMergeVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/bubblemerge/BubbleMergeVertex.java
@@ -281,30 +281,30 @@
         initVertex();
         if (getSuperstep() == 1) {
             if(VertexUtil.isBubbleVertex(getVertexValue())){
-                /** clean allDeleteSet **/
+                // clean allDeleteSet 
                 allDeletedSet.clear();
-                /** add a fake node **/
+                // add a fake node
                 addFakeVertex();
-                /** send bubble and major vertex msg to minor vertex **/
+                // send bubble and major vertex msg to minor vertex 
                 sendBubbleAndMajorVertexMsgToMinorVertex();
             }
         } else if (getSuperstep() == 2){
             if(!isFakeVertex()){
-                /** aggregate bubble nodes and grouped by major vertex **/
+                // aggregate bubble nodes and grouped by major vertex
                 aggregateBubbleNodesByMajorNode(msgIterator);
                 
                 for(VKmerBytesWritable prevId : receivedMsgMap.keySet()){
                     receivedMsgList.clear();
                     receivedMsgList.addAll(receivedMsgMap.get(prevId));
                     if(receivedMsgList.size() > 1){ // filter bubble
-                        /** for each majorVertex, sort the node by decreasing order of coverage **/
+                        // for each majorVertex, sort the node by decreasing order of coverage
                         receivedMsgList = receivedMsgMap.get(prevId);
                         Collections.sort(receivedMsgList, new BubbleMergeMessageWritable.SortByCoverage());
                         
-                        /** process similarSet, keep the unchanged set and deleted set & add coverage to unchange node **/
+                        // process similarSet, keep the unchanged set and deleted set & add coverage to unchange node 
                         processSimilarSetToUnchangeSetAndDeletedSet();
                         
-                        /** send message to the unchanged set for updating coverage & send kill message to the deleted set **/ 
+                        // send message to the unchanged set for updating coverage & send kill message to the deleted set
                         processUnchangedSet();
                         processDeletedSet();
                     }
@@ -318,7 +318,7 @@
                         broadcaseUpdateEdges();
                     } else 
                     if(incomingMsg.getFlag() == MessageFlag.UNCHANGE){
-                        /** update Node including average coverage **/
+                        // update Node including average coverage 
                         getVertexValue().setNode(incomingMsg.getNode());
                     }
                 }
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/removelowcoverage/RemoveLowCoverageVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/removelowcoverage/RemoveLowCoverageVertex.java
index a2dedbb..0696a53 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/removelowcoverage/RemoveLowCoverageVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/removelowcoverage/RemoveLowCoverageVertex.java
@@ -50,7 +50,7 @@
         getVertexValue().getCounters().clear();
     }
     
-    public void lowCoverageVertexBroadcaseKillself(){
+    public void detectLowCoverageVertex(){
         if(getVertexValue().getAvgCoverage() <= minAverageCoverage){
             //broadcase kill self
             broadcastKillself();
@@ -78,7 +78,7 @@
     public void compute(Iterator<MessageWritable> msgIterator) {
         initVertex(); 
         if(getSuperstep() == 1)
-            lowCoverageVertexBroadcaseKillself();
+            detectLowCoverageVertex();
         else if(getSuperstep() == 2){
             if(deadNodeSet.contains(getVertexId()))
                 cleanupDeadVertex();
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipRemoveVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipRemoveVertex.java
index 3da5d94..deff7db 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipRemoveVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/tipremove/TipRemoveVertex.java
@@ -56,31 +56,44 @@
             return null;
     }
     
+    /**
+     * step1
+     */
+    public void detectTip(){
+        EDGETYPE neighborToTipEdgetype = getTipEdgetype();
+        //I'm tip and my length is less than the minimum
+        if(neighborToTipEdgetype != null && getVertexValue().getKmerLength() <= length){ 
+            EDGETYPE tipToNeighborEdgetype = neighborToTipEdgetype.mirror();
+            outgoingMsg.setFlag(tipToNeighborEdgetype.get());
+            outgoingMsg.setSourceVertexId(getVertexId());
+            destVertexId = getDestVertexId(neighborToTipEdgetype.dir());
+            sendMsg(destVertexId, outgoingMsg);
+            deleteVertex(getVertexId());
+            
+            //set statistics counter: Num_RemovedTips
+            updateStatisticsCounter(StatisticsCounter.Num_RemovedTips);
+            getVertexValue().setCounters(counters);
+        }
+    }
+    
+    /**
+     * step2
+     */
+    public void responseToDeadTip(Iterator<MessageWritable> msgIterator){
+        while(msgIterator.hasNext()){
+            incomingMsg = msgIterator.next();
+            EDGETYPE tipToMeEdgetype = EDGETYPE.fromByte(incomingMsg.getFlag());
+            getVertexValue().getEdgeList(tipToMeEdgetype).remove(incomingMsg.getSourceVertexId());
+        }
+    }
+    
     @Override
     public void compute(Iterator<MessageWritable> msgIterator) {
         initVertex(); 
-        if(getSuperstep() == 1){
-            EDGETYPE neighborToTipEdgetype = getTipEdgetype();
-            //I'm tip and my length is less than the minimum
-            if(neighborToTipEdgetype != null && getVertexValue().getKmerLength() <= length){ 
-                EDGETYPE tipToNeighborEdgetype = neighborToTipEdgetype.mirror();
-                outgoingMsg.setFlag(tipToNeighborEdgetype.get());
-                outgoingMsg.setSourceVertexId(getVertexId());
-                destVertexId = getDestVertexId(neighborToTipEdgetype.dir());
-                sendMsg(destVertexId, outgoingMsg);
-                deleteVertex(getVertexId());
-                
-                //set statistics counter: Num_RemovedTips
-                updateStatisticsCounter(StatisticsCounter.Num_RemovedTips);
-                getVertexValue().setCounters(counters);
-            }
-        } else if(getSuperstep() == 2){
-            while(msgIterator.hasNext()){
-                incomingMsg = msgIterator.next();
-                EDGETYPE tipToMeEdgetype = EDGETYPE.fromByte(incomingMsg.getFlag());
-                getVertexValue().getEdgeList(tipToMeEdgetype).remove(incomingMsg.getSourceVertexId());
-            }
-        }
+        if(getSuperstep() == 1)
+            detectTip();
+        else if(getSuperstep() == 2)
+            responseToDeadTip(msgIterator);
         voteToHalt();
     }