Abstract out model to allow for alternative to file system repository