Updated provider factory