Refactor to classes

Refactoring to a class-based architecture for tests, test collections and cases. This is just the beginning!