can autowired service
separate api and implementation