diff --git a/genomix/genomix-hyracks/pom.xml b/genomix/genomix-hyracks/pom.xml
index 87fa816..0dd2486 100644
--- a/genomix/genomix-hyracks/pom.xml
+++ b/genomix/genomix-hyracks/pom.xml
@@ -22,8 +22,9 @@
 				<artifactId>maven-compiler-plugin</artifactId>
 				<version>2.0.2</version>
 				<configuration>
-					<source>1.6</source>
-					<target>1.6</target>
+					<source>1.7</source>
+					<target>1.7</target>
+					<fork>true</fork>
 				</configuration>
 			</plugin>
 			<plugin>
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/data/partition/KmerHashPartitioncomputerFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/data/partition/KmerHashPartitioncomputerFactory.java
index 0f8b4a9..d56c7c2 100644
--- a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/data/partition/KmerHashPartitioncomputerFactory.java
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/data/partition/KmerHashPartitioncomputerFactory.java
@@ -35,11 +35,11 @@
 
 				ByteBuffer buf = accessor.getBuffer();
 
-				int part = hashBytes(buf.array(), startOffset + fieldOffset + slotLength, fieldLength) % nParts;
-				if (part < 0){
-					part = -part;
+				int hash = hashBytes(buf.array(), startOffset + fieldOffset + slotLength, fieldLength);
+				if (hash < 0){
+					hash = - (hash+1);
 				}
-				return part;
+				return hash % nParts;
 			}
 		};
 	}
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/dataflow/KMerSequenceWriterFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/dataflow/KMerSequenceWriterFactory.java
index 02be7d8..3cc4b8a 100644
--- a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/dataflow/KMerSequenceWriterFactory.java
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/dataflow/KMerSequenceWriterFactory.java
@@ -11,6 +11,7 @@
 import org.apache.hadoop.mapred.JobConf;
 
 import edu.uci.ics.genomix.type.KmerCountValue;
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
 import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
 import edu.uci.ics.hyracks.dataflow.common.data.accessors.ITupleReference;
 import edu.uci.ics.hyracks.hdfs.api.ITupleWriter;
@@ -44,11 +45,6 @@
 		public void write(DataOutput output, ITupleReference tuple)
 				throws HyracksDataException {
 			try {
-				if (writer == null) {
-					writer = SequenceFile.createWriter(cf.getConf(),
-							(FSDataOutputStream) output, BytesWritable.class,
-							KmerCountValue.class, CompressionType.NONE, null);
-				}
 				byte[] kmer = tuple.getFieldData(0);
 				int keyStart = tuple.getFieldStart(0);
 				int keyLength = tuple.getFieldLength(0);
@@ -64,10 +60,26 @@
 				throw new HyracksDataException(e);
 			}
 		}
+		@Override
+		public void open(DataOutput output) throws HyracksDataException {
+			try {
+				writer = SequenceFile.createWriter(cf.getConf(),
+						(FSDataOutputStream) output, BytesWritable.class,
+						KmerCountValue.class, CompressionType.NONE, null);
+			} catch (IOException e) {
+				throw new HyracksDataException(e);
+			}
+		}
+		@Override
+		public void close(DataOutput output) throws HyracksDataException {
+			// TODO Auto-generated method stub
+			
+		}
 	}
 
 	@Override
-	public ITupleWriter getTupleWriter() {
+	public ITupleWriter getTupleWriter(IHyracksTaskContext ctx)
+			throws HyracksDataException {
 		return new TupleWriter(confFactory);
 	}
 
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/dataflow/KMerTextWriterFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/dataflow/KMerTextWriterFactory.java
index 332b7d7..b93e723 100644
--- a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/dataflow/KMerTextWriterFactory.java
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/dataflow/KMerTextWriterFactory.java
@@ -4,6 +4,7 @@
 import java.io.IOException;
 
 import edu.uci.ics.genomix.type.Kmer;
+import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
 import edu.uci.ics.hyracks.api.exceptions.HyracksDataException;
 import edu.uci.ics.hyracks.dataflow.common.data.accessors.ITupleReference;
 import edu.uci.ics.hyracks.hdfs.api.ITupleWriter;
@@ -40,10 +41,24 @@
 				throw new HyracksDataException(e);
 			}
 		}
+
+		@Override
+		public void open(DataOutput output) throws HyracksDataException {
+			// TODO Auto-generated method stub
+			
+		}
+
+		@Override
+		public void close(DataOutput output) throws HyracksDataException {
+			// TODO Auto-generated method stub
+			
+		}
 	}
 
 	@Override
-	public ITupleWriter getTupleWriter() {
+	public ITupleWriter getTupleWriter(IHyracksTaskContext ctx)
+			throws HyracksDataException {
+		// TODO Auto-generated method stub
 		return new TupleWriter();
 	}
 
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/dataflow/ReadsKeyValueParserFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/dataflow/ReadsKeyValueParserFactory.java
index 1f0cd73..fe22251 100644
--- a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/dataflow/ReadsKeyValueParserFactory.java
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/dataflow/ReadsKeyValueParserFactory.java
@@ -54,11 +54,6 @@
 				}
 			}
 
-			@Override
-			public void flush(IFrameWriter writer) throws HyracksDataException {
-				FrameUtils.flushFrame(outputBuffer, writer);
-			}
-
 			private void SplitReads(byte[] array, IFrameWriter writer) {
 				/** first kmer */
 				byte[] kmer = Kmer.CompressKmer(k, array, 0);
@@ -106,6 +101,17 @@
 					throw new IllegalStateException(e);
 				}
 			}
+
+			@Override
+			public void open(IFrameWriter writer) throws HyracksDataException {
+				// TODO Auto-generated method stub
+				
+			}
+
+			@Override
+			public void close(IFrameWriter writer) throws HyracksDataException {
+				FrameUtils.flushFrame(outputBuffer, writer);
+			}
 		};
 	}
 
diff --git a/genomix/genomix-hyracks/src/main/resources/conf/cluster.properties b/genomix/genomix-hyracks/src/main/resources/conf/cluster.properties
index 2d0eb26..66251be 100644
--- a/genomix/genomix-hyracks/src/main/resources/conf/cluster.properties
+++ b/genomix/genomix-hyracks/src/main/resources/conf/cluster.properties
@@ -7,7 +7,7 @@
 #The directory of hyracks binaries
 HYRACKS_HOME="../../../../hyracks"
 
-WORKPATH="/mnt/data/sda/space/jjia/hyracks"
+WORKPATH=""
 #The tmp directory for cc to install jars
 CCTMP_DIR=${WORKPATH}/tmp/t1
 
@@ -21,7 +21,7 @@
 NCLOGS_DIR=$NCTMP_DIR/logs
 
 #Comma separated I/O directories for the spilling of external sort
-IO_DIRS="/mnt/data/sda/space/jjia/hyracks/tmp/t3,/mnt/data/sdb/space/jjia/hyracks/tmp/t3,/mnt/data/sdc/space/jjia/hyracks/tmp/t3,/mnt/data/sdd/space/jjia/hyracks/tmp/t3"
+IO_DIRS="${WORKPATH}/tmp/t3"
 
 #The JAVA_HOME
 JAVA_HOME=$JAVA_HOME
@@ -33,9 +33,9 @@
 FRAME_SIZE=65536
 
 #CC JAVA_OPTS
-CCJAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=7001,server=y,suspend=n -Xmx1g -Djava.util.logging.config.file=logging.properties"
+CCJAVA_OPTS="-Xrunjdwp:transport=dt_socket,address=7001,server=y,suspend=n -Xmx1g -Djava.util.logging.config.file=logging.properties"
 # Yourkit option: -agentpath:/grid/0/dev/vborkar/tools/yjp-10.0.4/bin/linux-x86-64/libyjpagent.so=port=20001"
 
 #NC JAVA_OPTS
-NCJAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=7002,server=y,suspend=n -Xmx10g -Djava.util.logging.config.file=logging.properties"
+NCJAVA_OPTS="-Xrunjdwp:transport=dt_socket,address=7002,server=y,suspend=n -Xmx10g -Djava.util.logging.config.file=logging.properties"
 
diff --git a/genomix/genomix-hyracks/src/main/resources/conf/master b/genomix/genomix-hyracks/src/main/resources/conf/master
index d71f20c..2fbb50c 100644
--- a/genomix/genomix-hyracks/src/main/resources/conf/master
+++ b/genomix/genomix-hyracks/src/main/resources/conf/master
@@ -1 +1 @@
-asterix-master
+localhost
diff --git a/genomix/genomix-hyracks/src/main/resources/conf/slaves b/genomix/genomix-hyracks/src/main/resources/conf/slaves
index d5272bc..2fbb50c 100644
--- a/genomix/genomix-hyracks/src/main/resources/conf/slaves
+++ b/genomix/genomix-hyracks/src/main/resources/conf/slaves
@@ -1,4 +1 @@
-asterix-001
-asterix-003
-asterix-002
-asterix-004
+localhost
diff --git a/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/example/jobrun/JobRunTest.java b/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/example/jobrun/JobRunTest.java
index 8464684..f872ff9 100644
--- a/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/example/jobrun/JobRunTest.java
+++ b/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/example/jobrun/JobRunTest.java
@@ -40,7 +40,6 @@
 	private static final String DATA_PATH = "src/test/resources/data/webmap/text.txt";
 	private static final String HDFS_INPUT_PATH = "/webmap";
 	private static final String HDFS_OUTPUT_PATH = "/webmap_result";
-	private static final String HDFS_OUTPUT_FILE = HDFS_OUTPUT_PATH + "/part-0";
 
 	private static final String DUMPED_RESULT = ACTUAL_RESULT_DIR
 			+ HDFS_OUTPUT_PATH + "/merged.txt";
@@ -120,8 +119,9 @@
 
 	@Test
 	public void TestExternalGroupby() throws Exception {
+		cleanUpReEntry();
 		conf.set(GenomixJob.GROUPBY_TYPE, "external");
-		conf.set(GenomixJob.OUTPUT_FORMAT, "binary");
+		conf.set(GenomixJob.OUTPUT_FORMAT, "text");
 		System.err.println("Testing ExternalGroupBy");
 		driver.runJob(new GenomixJob(conf), Plan.BUILD_DEBRUJIN_GRAPH, true);
 		Assert.assertEquals(true, checkResults());
@@ -129,6 +129,7 @@
 
 	@Test
 	public void TestPreClusterGroupby() throws Exception {
+		cleanUpReEntry();
 		conf.set(GenomixJob.GROUPBY_TYPE, "precluster");
 		conf.set(GenomixJob.OUTPUT_FORMAT, "text");
 		System.err.println("Testing PreClusterGroupBy");
@@ -138,6 +139,7 @@
 
 	@Test
 	public void TestHybridGroupby() throws Exception {
+		cleanUpReEntry();
 		conf.set(GenomixJob.GROUPBY_TYPE, "hybrid");
 		conf.set(GenomixJob.OUTPUT_FORMAT, "text");
 		System.err.println("Testing HybridGroupBy");
