Provider setup smarts move to utils.providers

Also, providers know if they exist now