Input validation

- [x] Change from ChoiceState to FreeText
- [x] Check if input was within allowed choices for each state, return to same state if not with error message.