Starting to refactor the wrapper
Extracted this into many files
No longer pretending the committer is disposable.
Made names slightly clearer.