this is a singleton and facade pattern working together