Practiced recursion and enum.