Refactor providers