It is not clear from the code how NodePosition and some of the other concepts within Node.jl actually work. For instance, are they 0-indexed or 1-indexed? Add some comments to explain these concepts. Eventually, the comments can form the basis of some actual documentation.