service + annotations + dependency injection