And I looked at the classes and said, "That could be simpler." And so I refactored the class structure I had written.
And I looked at the classes and said, "That could really be simpler." And I refactored the class structure into a set of Java enums.
It's a lot simpler now. :)