Provider is a wrapper around InheritedWidget to make them easier to use and more reusable.
Provider 實作