Refactor AST::Node