More tests
tests tests tests
Considerable refactoring