I did a bit of refactoring in this direction.  This cleaned up the code and made it more testable.  However, the exposed stuff ended up so tiny that moving it to it's own module seemed weird.  My suspicion is that as we add more real unit tests here, it'll become more obvious how to chunk up this functionality in meaningful ways.  In the meantime, while I agree with the concern, I don't want this to keep stubs & spies from landing in the tree, so I'd like us to come back to this the next time it resurfaces (perhaps soon when pairing?).  We could even potentially pair on this this week.