refactor choice.