you need to make the service public when you want a lazy listener (otherwise it cannot be lazy-loaded)