add the singletonFactory demo