specify providers programaticaly
new version