Split ServiceLocatorFactory into interface/impl to fix dependency issue