Loads of test code, so on separate branch.
Prep more of the tests for before/after
More test code.
More changes for before/after tests.
Remove all of the conditional checking of before/after