recursion is great, right?