provider to get rid of leaks in case of shared
rebind refactor