Refactoring.

Remove the recursive functor (which was funny, but not very useful), split-out the model from the GIT-backend, proper IO module, etc.