The provider is not expected to be able to destroy observers. So this destructor should be `protected` like it was before.