Fix unit tests to honor answer uniqueness
Refactor trait into abstract class to reduce even futher code duplication
Hide private methods that should not be called