make it work for more providers