pull out each provider into its own job if necessary