recursion is hard