implemented a ChoiceEnum