Rewrite of RoseNode to be much more consistent