recursion is still hard