move all Node impl details into Node