shared library so easier to update and add new providers