Adds client decorator infrastructure and extends factories to allow injecting objects