make choice sizes dynamic, refactor, and edit documentation