recursion pattern need analyze from different angle