diff --git a/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/data/normalizers/VLongNormalizedKeyComputerFactory.java b/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/data/normalizers/VLongNormalizedKeyComputerFactory.java
index f8134dc..969431c 100644
--- a/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/data/normalizers/VLongNormalizedKeyComputerFactory.java
+++ b/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/data/normalizers/VLongNormalizedKeyComputerFactory.java
@@ -21,7 +21,7 @@
 				long r = 0;
 				for (int i = 0; i < n; i++) {
 					r <<= 8;
-					r += (long) (bytes[offset + 1] & 0xff);
+					r += (long) (bytes[offset + i + 1] & 0xff);
 				}
 
 				return r;
diff --git a/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/data/std/primitive/VLongPointable.java b/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/data/std/primitive/VLongPointable.java
index b7f9c25..ffa6fc6 100644
--- a/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/data/std/primitive/VLongPointable.java
+++ b/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/data/std/primitive/VLongPointable.java
@@ -85,13 +85,12 @@
 		
 		int n = this.bytes[be];
 		int l = (int) Math.ceil(n / 4);
-		for (int i = 0; i <= l; i++) {
+		for (int i = l; i > 0; i--) {
 			if (this.bytes[be + i] < bytes[start + i]) {
 				return -1;
 			} else if (this.bytes[be + i] > bytes[start + i]) {
 				return 1;
 			}
-
 		}
 		return 0;
 	}
diff --git a/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/dataflow/aggregators/DistributedMergeLmerAggregateFactory.java b/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/dataflow/aggregators/DistributedMergeLmerAggregateFactory.java
index a16dcea..d7ab7f7 100644
--- a/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/dataflow/aggregators/DistributedMergeLmerAggregateFactory.java
+++ b/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/dataflow/aggregators/DistributedMergeLmerAggregateFactory.java
@@ -21,7 +21,7 @@
 public class DistributedMergeLmerAggregateFactory implements
 		IAggregatorDescriptorFactory {
 	private static final long serialVersionUID = 1L;
-	private static final int max = 255;
+	private static final int max = 127;
 
 	public DistributedMergeLmerAggregateFactory() {
 	}
diff --git a/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/dataflow/aggregators/MergeKmerAggregateFactory.java b/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/dataflow/aggregators/MergeKmerAggregateFactory.java
index b2f94dc..76b04d1 100644
--- a/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/dataflow/aggregators/MergeKmerAggregateFactory.java
+++ b/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/dataflow/aggregators/MergeKmerAggregateFactory.java
@@ -20,7 +20,7 @@
  */
 public class MergeKmerAggregateFactory implements IAggregatorDescriptorFactory {
 	private static final long serialVersionUID = 1L;
-	private static final int max = 255;
+	private static final int max = 127;
 
 	public MergeKmerAggregateFactory() {
 	}
@@ -100,6 +100,9 @@
 						+ stateAccessor.getFieldSlotsLength() + statefieldStart;
 
 				count += 1;
+				if(count > max){
+					count = max;
+				}
 
 				byte[] data = stateAccessor.getBuffer().array();
 
diff --git a/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/job/JobGenBrujinGraph.java b/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/job/JobGenBrujinGraph.java
index a67f42f..d6c72da 100644
--- a/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/job/JobGenBrujinGraph.java
+++ b/genomix/genomix-core/src/main/java/edu/uci/ics/genomix/job/JobGenBrujinGraph.java
@@ -123,7 +123,7 @@
 				recordSizeInBytes,
 				tableSize,
 				new IBinaryComparatorFactory[] { PointableBinaryComparatorFactory
-						.of(LongPointable.FACTORY) },
+						.of(VLongPointable.FACTORY) },
 				new IBinaryHashFunctionFamily[] { new VLongBinaryHashFunctionFamily() },
 				hashfuncStartLevel,
 				new VLongNormalizedKeyComputerFactory(),
@@ -157,7 +157,7 @@
 					jobSpec,
 					keyFields,
 					new IBinaryComparatorFactory[] { PointableBinaryComparatorFactory
-							.of(LongPointable.FACTORY) },
+							.of(VLongPointable.FACTORY) },
 					new DistributedMergeLmerAggregateFactory(), outputRec);
 			break;
 		case HYBRIDHASH:
