make genomix compile
diff --git a/genomix/genomix-hyracks/pom.xml b/genomix/genomix-hyracks/pom.xml
index b8dc757..0d31998 100644
--- a/genomix/genomix-hyracks/pom.xml
+++ b/genomix/genomix-hyracks/pom.xml
@@ -241,13 +241,6 @@
 		</dependency>
 		<dependency>
 			<groupId>edu.uci.ics.hyracks</groupId>
-			<artifactId>hyracks-hdfs-core</artifactId>
-			<version>0.2.5-SNAPSHOT</version>
-			<type>test-jar</type>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>edu.uci.ics.hyracks</groupId>
 			<artifactId>genomix-data</artifactId>
 			<version>0.2.5-SNAPSHOT</version>
 			<type>jar</type>
diff --git a/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/example/jobrun/HyracksUtils.java b/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/example/jobrun/HyracksUtils.java
new file mode 100644
index 0000000..f1b2008
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/example/jobrun/HyracksUtils.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.example.jobrun;
+import java.util.EnumSet;
+
+import edu.uci.ics.hyracks.api.client.HyracksConnection;
+import edu.uci.ics.hyracks.api.client.IHyracksClientConnection;
+import edu.uci.ics.hyracks.api.job.JobFlag;
+import edu.uci.ics.hyracks.api.job.JobId;
+import edu.uci.ics.hyracks.api.job.JobSpecification;
+import edu.uci.ics.hyracks.control.cc.ClusterControllerService;
+import edu.uci.ics.hyracks.control.common.controllers.CCConfig;
+import edu.uci.ics.hyracks.control.common.controllers.NCConfig;
+import edu.uci.ics.hyracks.control.nc.NodeControllerService;
+
+public class HyracksUtils {
+
+	public static final String NC1_ID = "nc1";
+	public static final String NC2_ID = "nc2";
+
+	public static final int DEFAULT_HYRACKS_CC_PORT = 1099;
+	public static final int TEST_HYRACKS_CC_PORT = 1099;
+	public static final int TEST_HYRACKS_CC_CLIENT_PORT = 2099;
+	public static final String CC_HOST = "localhost";
+
+	public static final int FRAME_SIZE = 65536;
+
+	private static ClusterControllerService cc;
+	private static NodeControllerService nc1;
+	private static NodeControllerService nc2;
+	private static IHyracksClientConnection hcc;
+
+	public static void init() throws Exception {
+		CCConfig ccConfig = new CCConfig();
+		ccConfig.clientNetIpAddress = CC_HOST;
+		ccConfig.clusterNetIpAddress = CC_HOST;
+		ccConfig.clusterNetPort = TEST_HYRACKS_CC_PORT;
+		ccConfig.clientNetPort = TEST_HYRACKS_CC_CLIENT_PORT;
+		ccConfig.defaultMaxJobAttempts = 0;
+		ccConfig.jobHistorySize = 0;
+		ccConfig.profileDumpPeriod = -1;
+
+		// cluster controller
+		cc = new ClusterControllerService(ccConfig);
+		cc.start();
+
+		// two node controllers
+		NCConfig ncConfig1 = new NCConfig();
+		ncConfig1.ccHost = "localhost";
+		ncConfig1.clusterNetIPAddress = "localhost";
+		ncConfig1.ccPort = TEST_HYRACKS_CC_PORT;
+		ncConfig1.dataIPAddress = "127.0.0.1";
+		ncConfig1.datasetIPAddress = "127.0.0.1";
+		ncConfig1.nodeId = NC1_ID;
+		nc1 = new NodeControllerService(ncConfig1);
+		nc1.start();
+
+		NCConfig ncConfig2 = new NCConfig();
+		ncConfig2.ccHost = "localhost";
+		ncConfig2.clusterNetIPAddress = "localhost";
+		ncConfig2.ccPort = TEST_HYRACKS_CC_PORT;
+		ncConfig2.dataIPAddress = "127.0.0.1";
+		ncConfig2.datasetIPAddress = "127.0.0.1";
+		ncConfig2.nodeId = NC2_ID;
+		nc2 = new NodeControllerService(ncConfig2);
+		nc2.start();
+
+		// hyracks connection
+		hcc = new HyracksConnection(CC_HOST, TEST_HYRACKS_CC_CLIENT_PORT);
+	}
+
+	public static void deinit() throws Exception {
+		nc2.stop();
+		nc1.stop();
+		cc.stop();
+	}
+
+	public static void runJob(JobSpecification spec, String appName)
+			throws Exception {
+		spec.setFrameSize(FRAME_SIZE);
+		JobId jobId = hcc.startJob(spec, EnumSet.of(JobFlag.PROFILE_RUNTIME));
+		hcc.waitForCompletion(jobId);
+	}
+
+}
\ No newline at end of file
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 675de64..de68f39 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
@@ -30,8 +30,6 @@
 import edu.uci.ics.genomix.job.GenomixJob;
 import edu.uci.ics.genomix.type.Kmer;
 import edu.uci.ics.genomix.type.KmerCountValue;
-import edu.uci.ics.hyracks.hdfs.utils.HyracksUtils;
-import edu.uci.ics.hyracks.hdfs.utils.TestUtils;
 
 public class JobRunTest {
 	private static final String ACTUAL_RESULT_DIR = "actual";
diff --git a/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/example/jobrun/TestUtils.java b/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/example/jobrun/TestUtils.java
new file mode 100644
index 0000000..4c36eca
--- /dev/null
+++ b/genomix/genomix-hyracks/src/test/java/edu/uci/ics/genomix/example/jobrun/TestUtils.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright 2009-2012 by The Regents of the University of California
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * you may obtain a copy of the License from
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package edu.uci.ics.genomix.example.jobrun;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+
+public class TestUtils {
+
+    public static void compareWithResult(File expectedFile, File actualFile) throws Exception {
+        BufferedReader readerExpected = new BufferedReader(new FileReader(expectedFile));
+        BufferedReader readerActual = new BufferedReader(new FileReader(actualFile));
+        String lineExpected, lineActual;
+        int num = 1;
+        try {
+            while ((lineExpected = readerExpected.readLine()) != null) {
+                lineActual = readerActual.readLine();
+                // Assert.assertEquals(lineExpected, lineActual);
+                if (lineActual == null) {
+                    throw new Exception("Actual result changed at line " + num + ":\n< " + lineExpected + "\n> ");
+                }
+                if (!equalStrings(lineExpected, lineActual)) {
+                    throw new Exception("Result for changed at line " + num + ":\n< " + lineExpected + "\n> "
+                            + lineActual);
+                }
+                ++num;
+            }
+            lineActual = readerActual.readLine();
+            if (lineActual != null) {
+                throw new Exception("Actual result changed at line " + num + ":\n< \n> " + lineActual);
+            }
+        } finally {
+            readerExpected.close();
+            readerActual.close();
+        }
+    }
+
+    private static boolean equalStrings(String s1, String s2) {
+        String[] rowsOne = s1.split("\n");
+        String[] rowsTwo = s2.split("\n");
+
+        if (rowsOne.length != rowsTwo.length)
+            return false;
+
+        for (int i = 0; i < rowsOne.length; i++) {
+            String row1 = rowsOne[i];
+            String row2 = rowsTwo[i];
+
+            if (row1.equals(row2))
+                continue;
+
+            String[] fields1 = row1.split(",");
+            String[] fields2 = row2.split(",");
+
+            for (int j = 0; j < fields1.length; j++) {
+                if (fields1[j].equals(fields2[j])) {
+                    continue;
+                } else if (fields1[j].indexOf('.') < 0) {
+                    return false;
+                } else {
+                    fields1[j] = fields1[j].split("=")[1];
+                    fields2[j] = fields2[j].split("=")[1];
+                    Double double1 = Double.parseDouble(fields1[j]);
+                    Double double2 = Double.parseDouble(fields2[j]);
+                    float float1 = (float) double1.doubleValue();
+                    float float2 = (float) double2.doubleValue();
+
+                    if (Math.abs(float1 - float2) == 0)
+                        continue;
+                    else {
+                        return false;
+                    }
+                }
+            }
+        }
+        return true;
+    }
+
+}
diff --git a/pom.xml b/pom.xml
index eec955c..2933182 100644
--- a/pom.xml
+++ b/pom.xml
@@ -68,6 +68,6 @@
     <module>algebricks</module>
     <module>pregelix</module>
     <module>hivesterix</module>
-    <module>genomix<module>
+    <module>genomix</module>
   </modules>
 </project>