IFarming better handling of initialisation so that ClientContext doesn't require a singleton