Refactored providers completely