Some initial work, using the repository pattern even though read not to...