refactor 'UniqueKey' to 'NodeId'
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/IntermediateNodeWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/IntermediateNodeWritable.java
index 3f59e32..da9104b 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/IntermediateNodeWritable.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/IntermediateNodeWritable.java
@@ -16,14 +16,14 @@
     private KmerListWritable forwardReverseList;
     private KmerListWritable reverseForwardList;
     private KmerListWritable reverseReverseList;
-    private PositionWritable uniqueKey;
+    private PositionWritable nodeId;
     
     public IntermediateNodeWritable(){
         forwardForwardList = new KmerListWritable();
         forwardReverseList = new KmerListWritable();
         reverseForwardList = new KmerListWritable();
         reverseReverseList = new KmerListWritable();
-        uniqueKey = new PositionWritable();
+        nodeId = new PositionWritable();
     }
     
     public IntermediateNodeWritable(KmerListWritable FFList, KmerListWritable FRList,
@@ -34,7 +34,7 @@
     
     public void set(IntermediateNodeWritable node){
         set(node.forwardForwardList, node.forwardReverseList, node.reverseForwardList, 
-                node.reverseReverseList, node.uniqueKey);
+                node.reverseReverseList, node.nodeId);
     }
     
     public void set(KmerListWritable FFList, KmerListWritable FRList,
@@ -43,7 +43,7 @@
         this.forwardReverseList.set(FRList);
         this.reverseForwardList.set(RFList);
         this.reverseReverseList.set(RRList);
-        this.uniqueKey.set(uniqueKey);
+        this.nodeId.set(uniqueKey);
     }
 
     public void reset(int kmerSize) {
@@ -51,7 +51,7 @@
         forwardReverseList.reset();
         reverseForwardList.reset();
         reverseReverseList.reset();
-        uniqueKey.reset();
+        nodeId.reset();
     }
     
     public KmerListWritable getFFList() {
@@ -86,21 +86,21 @@
         this.reverseReverseList.set(reverseReverseList);
     }
 
-    public PositionWritable getUniqueKey() {
-		return uniqueKey;
-	}
+	public PositionWritable getNodeId() {
+        return nodeId;
+    }
 
-	public void setUniqueKey(PositionWritable uniqueKey) {
-		this.uniqueKey.set(uniqueKey);
-	}
+    public void setNodeId(PositionWritable nodeId) {
+        this.nodeId.set(nodeId);
+    }
 
-	@Override
+    @Override
     public void readFields(DataInput in) throws IOException {
         this.forwardForwardList.readFields(in);
         this.forwardReverseList.readFields(in);
         this.reverseForwardList.readFields(in);
         this.reverseReverseList.readFields(in);
-        this.uniqueKey.readFields(in);
+        this.nodeId.readFields(in);
     }
 
     @Override
@@ -109,18 +109,18 @@
         this.forwardReverseList.write(out);
         this.reverseForwardList.write(out);
         this.reverseReverseList.write(out);
-        this.uniqueKey.write(out);
+        this.nodeId.write(out);
     }
 
     @Override
     public int compareTo(IntermediateNodeWritable other) {
         // TODO Auto-generated method stub
-        return this.uniqueKey.compareTo(other.uniqueKey);
+        return this.nodeId.compareTo(other.nodeId);
     }
     
     @Override
     public int hashCode() {
-        return this.uniqueKey.hashCode();
+        return this.nodeId.hashCode();
     }
     
     @Override
@@ -130,7 +130,7 @@
             return (this.forwardForwardList.equals(nw.forwardForwardList)
                     && this.forwardReverseList.equals(nw.forwardReverseList)
                     && this.reverseForwardList.equals(nw.reverseForwardList)
-                    && this.reverseReverseList.equals(nw.reverseReverseList) && (this.uniqueKey.equals(nw.uniqueKey)));
+                    && this.reverseReverseList.equals(nw.reverseReverseList) && (this.nodeId.equals(nw.nodeId)));
         }
         return false;
     }
@@ -143,7 +143,7 @@
         sbuilder.append(forwardReverseList.toString()).append('\t');
         sbuilder.append(reverseForwardList.toString()).append('\t');
         sbuilder.append(reverseReverseList.toString()).append('\t');
-        sbuilder.append(uniqueKey.toString()).append(')');
+        sbuilder.append(nodeId.toString()).append(')');
         return sbuilder.toString();
     }
 }
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/job/JobGenCheckReader.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/job/JobGenCheckReader.java
index 8f728cd..c3ec3c7 100644
--- a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/job/JobGenCheckReader.java
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/job/JobGenCheckReader.java
@@ -18,7 +18,7 @@
 import java.io.IOException;
 import java.util.Map;
 
-import edu.uci.ics.genomix.hyracks.newgraph.dataflow.ReadsKeyValueParserFactory;
+import edu.uci.ics.genomix.hyracks.dataflow.ReadsKeyValueParserFactory;
 import edu.uci.ics.genomix.oldtype.PositionWritable;
 import edu.uci.ics.genomix.type.KmerBytesWritable;
 import edu.uci.ics.hyracks.api.client.NodeControllerInfo;
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/ReadsKeyValueParserFactory.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/ReadsKeyValueParserFactory.java
index c929e56..915540a 100644
--- a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/ReadsKeyValueParserFactory.java
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/dataflow/ReadsKeyValueParserFactory.java
@@ -44,8 +44,11 @@
     private static final Log LOG = LogFactory.getLog(ReadsKeyValueParserFactory.class);
 
     public static final int OutputKmerField = 0;
-    public static final int OutputPosition = 1;
-    public static final int OutputKmerListField = 2;
+    public static final int OutputNodeId = 1;
+    public static final int OutputForwardForwardField = 2;
+    public static final int OutputForwardReverseField = 3;
+    public static final int OutputReverseForwardField = 4;
+    public static final int OutputReverseReverseField = 5;
 
     private final int readLength;
     private final int kmerSize;
@@ -110,7 +113,7 @@
                 nextKmer.shiftKmerWithNextChar(array[kmerSize]);
                 kmerList.append(nextKmer);
                 uniqueKey.set(mateId, readID, 1);
-                interMediateNode.setUniqueKey(uniqueKey);
+                interMediateNode.setNodeId(uniqueKey);
                 interMediateNode.setFFList(kmerList);
                 InsertToFrame(kmer, interMediateNode, writer);
 
@@ -121,7 +124,7 @@
                     nextKmer.shiftKmerWithNextChar(array[i+1]);
                     kmerList.append(nextKmer);
                     uniqueKey.set(mateId, readID, i - kmerSize + 2);
-                    interMediateNode.setUniqueKey(uniqueKey);
+                    interMediateNode.setNodeId(uniqueKey);
                     interMediateNode.setFFList(kmerList);
                     InsertToFrame(kmer, interMediateNode, writer);
                 }
@@ -129,17 +132,16 @@
 
             private void InsertToFrame(KmerBytesWritable kmer, IntermediateNodeWritable node, IFrameWriter writer) {
                 try {
-                    if (Math.abs(node.getUniqueKey().getPosId()) > 32768) {
-                        throw new IllegalArgumentException("Position id is beyond 32768 at " + node.getUniqueKey().getReadId());
+                    if (Math.abs(node.getNodeId().getPosId()) > 32768) {
+                        throw new IllegalArgumentException("Position id is beyond 32768 at " + node.getNodeId().getReadId());
                     }
                     tupleBuilder.reset();
                     tupleBuilder.addField(kmer.getBytes(), kmer.getOffset(), kmer.getLength());
-                    tupleBuilder.addField(node, instance)
+                    tupleBuilder.addField(node.getNodeId().getByteArray(), node.getNodeId().getStartOffset(), node.getNodeId().getLength());
                     tupleBuilder.addField(node.getFFList().getByteArray(), node.getFFList().getStartOffset(), node.getFFList().getLength());
                     tupleBuilder.addField(node.getFRList().getByteArray(), node.getFRList().getStartOffset(), node.getFRList().getLength());
                     tupleBuilder.addField(node.getRFList().getByteArray(), node.getRFList().getStartOffset(), node.getRFList().getLength());
                     tupleBuilder.addField(node.getRRList().getByteArray(), node.getRRList().getStartOffset(), node.getRRList().getLength());
-                    tupleBuilder.addField(node.getUniqueKey().getByteArray(), node.getUniqueKey().getStartOffset(), node.getUniqueKey().getLength());
                     
                     if (!outputAppender.append(tupleBuilder.getFieldEndOffsets(), tupleBuilder.getByteArray(), 0,
                             tupleBuilder.getSize())) {
diff --git a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGenCheckReader.java b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGenCheckReader.java
index 7c8f10e..2f89cb1 100644
--- a/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGenCheckReader.java
+++ b/genomix/genomix-hyracks/src/main/java/edu/uci/ics/genomix/hyracks/newgraph/job/JobGenCheckReader.java
@@ -21,6 +21,7 @@
 import edu.uci.ics.genomix.hyracks.dataflow.ReadsKeyValueParserFactory;
 import edu.uci.ics.genomix.hyracks.job.GenomixJobConf;
 import edu.uci.ics.genomix.oldtype.PositionWritable;
+import edu.uci.ics.genomix.type.IntermediateNodeWritable;
 import edu.uci.ics.genomix.type.KmerBytesWritable;
 import edu.uci.ics.hyracks.api.client.NodeControllerInfo;
 import edu.uci.ics.hyracks.api.context.IHyracksTaskContext;
@@ -75,6 +76,7 @@
 
                             private KmerBytesWritable kmer = new KmerBytesWritable(kmerSize);
                             private PositionWritable pos = new PositionWritable();
+                            private IntermediateNodeWritable intermediateNode = new IntermediateNodeWritable();
 
                             @Override
                             public void open(DataOutput output) throws HyracksDataException {