Fail with an error if provider cannot be added
Return the whole provider object when getting a provider and use it then
Do not remove providers after creating. We need them :-)