provider is called on the depender object
refactor
refactor