Про репозитории и сервисы
A repository is a service. In fact, pretty much everything that is not a domain object is a service.
What I often see is people making really fat services with lots of responsibilities, so they still have the same problem as with the fat controllers. Make services with a single responsibility and a very clear name. Avoid using words like 'Service', 'Manager', ... in the name, that will force you to find some meaningful.