whoo recursion