Class refactor

Refactored into superclass. Changed Choice into standard function.