defining repository interfaces
building out the repository implementations using Doctrine