This feels like it should be in its own class. That'll also shrink this class and tests.