fixed providers running over and over, also don't swallow exceptions