resolve the problems of recursion ?