Version 3 added. Refactored the get choices.