Wrapped up the repo revision history into a set of classes - mostly readonly objects