add base class for provider