we separate the call of providers and consumers