The inner enum was my initial impl but I did not like it. I guess I'm less happy with inner classes if the type becomes visible in the code.