added support for choices: list of allowable values