a repository abstraction to allow configuration of where application files are stored