generalize RadioButtonNode to use a Node instead of text string