multiple providers with functor
multiple providers with functor