implement Node::build