start work on recursion