ServiceLocator instead of singletons