Provider sounds better than helper, and refactored stuffs
Fixed Jake's merge conflict