Redesigning provider invokation