refactoring NodeBase