Starting on NodeWritable merge
diff --git a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/NodeWritable.java b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/NodeWritable.java
index 970ab66..dd01806 100644
--- a/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/NodeWritable.java
+++ b/genomix/genomix-data/src/main/java/edu/uci/ics/genomix/type/NodeWritable.java
@@ -288,6 +288,28 @@
         return sbuilder.toString();
     }
 
+    /**
+     * merge this node with another node.  If a flip is necessary, `other` will flip.
+     * According to `dir`:
+     *  * kmers are concatenated
+     *  * coverage becomes a weighted average
+     *  * startReads and endReads are merged
+     *  * my edges are replaced with some subset of `other`'s edges
+     *  
+     *  Raises an error when:
+     *  1) non-overlapping kmers
+     *  2) `other` has degree > 1 towards me
+     * 
+     * @param dir: one of the DirectionFlag.DIR_*
+     * @param other: the node to merge with.  I should have a `dir` edge towards `other`
+     */
+    public void mergeWithNode(byte dir, final NodeWritable other) {
+        switch(dir & DirectionFlag.DIR_MASK) {
+            case DIR_FF:
+                
+        }
+    }
+    
     public int inDegree() {
         return edges[DirectionFlag.DIR_RR].getCountOfPosition() + edges[DirectionFlag.DIR_RF].getCountOfPosition();
     }