diff --git a/genomix/genomix-core/pom.xml b/genomix/genomix-core/pom.xml
index eb2a27d..84c6533 100644
--- a/genomix/genomix-core/pom.xml
+++ b/genomix/genomix-core/pom.xml
@@ -245,10 +245,5 @@
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
-		<dependency>
-			<groupId>edu.uci.ics.hyracks</groupId>
-			<artifactId>pregelix-core</artifactId>
-			<version>0.2.3-SNAPSHOT</version>
-		</dependency>
 	</dependencies>
 </project>
diff --git a/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/data/partition/KmerHashPartitioncomputerFactory.java b/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/data/partition/KmerHashPartitioncomputerFactory.java
index d099fc0..5d4c624 100644
--- a/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/data/partition/KmerHashPartitioncomputerFactory.java
+++ b/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/data/partition/KmerHashPartitioncomputerFactory.java
@@ -5,7 +5,6 @@
 import edu.uci.ics.hyracks.api.comm.IFrameTupleAccessor;
 import edu.uci.ics.hyracks.api.dataflow.value.ITuplePartitionComputer;
 import edu.uci.ics.hyracks.api.dataflow.value.ITuplePartitionComputerFactory;
-import edu.uci.ics.pregelix.core.util.BufferSerDeUtils;
 
 public class KmerHashPartitioncomputerFactory implements
 		ITuplePartitionComputerFactory {
@@ -15,6 +14,13 @@
 	public KmerHashPartitioncomputerFactory() {
 	}
 
+    public static long getLong(byte[] bytes, int offset) {
+        return (((long) (bytes[offset] & 0xff)) << 56) + (((long) (bytes[offset + 1] & 0xff)) << 48)
+                + (((long) (bytes[offset + 2] & 0xff)) << 40) + (((long) (bytes[offset + 3] & 0xff)) << 32)
+                + (((long) (bytes[offset + 4] & 0xff)) << 24) + (((long) (bytes[offset + 5] & 0xff)) << 16)
+                + (((long) (bytes[offset + 6] & 0xff)) << 8) + (((long) (bytes[offset + 7] & 0xff)) << 0);
+    }
+    
 	@Override
 	public ITuplePartitionComputer createPartitioner() {
 		return new ITuplePartitionComputer() {
@@ -29,7 +35,7 @@
 				int slotLength = accessor.getFieldSlotsLength();
 
 				ByteBuffer buf = accessor.getBuffer();
-				long l = BufferSerDeUtils.getLong(buf.array(), startOffset
+				long l = getLong(buf.array(), startOffset
 						+ fieldOffset + slotLength);
 				return (int) (l % nParts);
 			}
