refactored Choices and made them use inheritance (maybe too much!)