Agreed. I'm not too sure what abstractions to make just yet, and given the size of the PR, I'm wondering if its worth doing this in a different PR? What are your thoughts?