techniques of recursion 4928497