rename Node to DNode::Node
eliminate smartmatch operator