provider: make custom provider inherit from Provider