two tasks with recursion
exceptions