Note that: - This allows us to remove some very temporary hacky code from day 4. - This includes a refactoring to hide `TestTree`, which could in theory have been made separate. - This reverts a lot of 1163889.