move choices code to apply to all field types