added recursion steps