moved caching to the Service layer