adding compile and linking abilities to the provider