Refactor testing
The test-suite could use with a refactoring, by moving tests into subfolders. Several of the tests are also quite long, and should probably be separated into smaller tests.
Also, we could do with more fixtures in many of the tests, as we do a lot of "initialization" in the tests, which could be refactored.