touché recursion