moving away from passing the internal provider all over the place and instead breaking the callback piece out into a linker/link callback