many changes made together
Merge pull request #17 from thomasballinger/master

add tests and change supervisor to be a class