ChoiceOption now takes an enum generic parameter, and getValue returns an instance of that enum