refactor repo and service implementations into their own projects