adding tracking of provider overrides and storing of original provide callback