Improve tests with fixtures

- Add factories
- Simplify fixtures to just those needed for tests
- Allow tests to run in isolation