I <3 recursion.