Add 'header' and 'location' core providers
Switch code use core providers, and other misc cleanup