providers accessed via function pointers