moved function providers to their own namespace