use a better provider algorithm to ensure backward compabiliy
0.0.7