Adapted to SingletonFactory