switch to derived node classes
Node cleanup, add print functions