this way has the factory build each time get is called, which is probably not the correct way. The ConfigProvider seemed to be instantiating some things eagerly as opposed to lazily.