class based + tests
wrote tests
Merge branch 'tests'
Merge branch 'master' into gh-pages