allow choices to be a list of (key, label) tuples as well