diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/ProcessFinalResult.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/ProcessFinalResult.java
new file mode 100644
index 0000000..a07cff2
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/sequencefile/ProcessFinalResult.java
@@ -0,0 +1,38 @@
+package edu.uci.ics.genomix.pregelix.sequencefile;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.text.DecimalFormat;
+
+public class ProcessFinalResult {
+
+	/**
+	 * @param args
+	 * @throws Exception 
+	 */
+	public static void main(String[] args) throws Exception {
+		DecimalFormat df = new DecimalFormat("0.00");
+		BufferedReader br = new BufferedReader(new FileReader("log2_unfinite"));
+		BufferedWriter bw = new BufferedWriter(new FileWriter("report3"));
+		String line;
+		int i = 0;
+		double totalTime = 0;
+		while((line = br.readLine()) != null){
+			String[] tokens = line.split(" ");
+			for(i = 0; i < tokens.length - 1; i++){
+				bw.write(tokens[i] + " ");
+			}
+			String subString = tokens[i].substring(0, tokens[i].length() - 2);
+			double ms = Double.parseDouble(subString)/60000;
+			totalTime += ms;
+			bw.write(df.format(ms) + "m");
+			bw.newLine();
+		}
+		bw.write("The total time is " + df.format(totalTime) + "m");
+		bw.close();
+		br.close();
+	}
+
+}
diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/CheckMessage.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/CheckMessage.java
new file mode 100644
index 0000000..9cb798e
--- /dev/null
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/type/CheckMessage.java
@@ -0,0 +1,35 @@
+package edu.uci.ics.genomix.pregelix.type;
+
+public class CheckMessage {
+	
+	public static final byte SOURCE = 1 << 0;
+	public static final byte CHAIN = 1 << 1;
+	public static final byte ADJMAP = 1 << 2;
+	public static final byte MESSAGE = 1 << 3;
+	public static final byte STATE = 1 << 4;
+	
+	public final static class CheckMessage_CONTENT{
+		
+		public static String getContentFromCode(byte code){
+			String r = "";
+			switch(code){
+			case SOURCE:
+				r = "SOURCE";
+				break;
+			case CHAIN:
+				r = "CHAIN";
+				break;
+			case ADJMAP:
+				r = "ADJMAP";
+				break;
+			case MESSAGE:
+				r = "MESSAGE";
+				break;
+			case STATE:
+				r = "STATE";
+				break;
+			}
+			return r;
+		}
+	}
+}
