If you like, we can also merge this now and refactor later. It's a little hard to see how my vision of how this should work will play out without having some concrete implementation.