part 2 recursion