Refactor to use classes
Split tests by related class
Merge pull request #5 from mirego/feature/refactor-classes

Refactor most of the code to use classes