Implement a SingletonFactory