use ServiceLocatorInterface!