refactored NodeProtocol