today, I hate recursion.