I don't like this check. I know it isn't supposed to happen, but it is possible to have two nodes with the same coordinates. especially since the Vertex and Node objects are decoupled. I think that an equality check should only be on the NodeID since that is supposed to be unique per Node, which is what we are equating in this class. Equating nodes based on their containing Vertex objects troubles me.