// provider base class