yeah is there possibly a way to do this that doesn't enumerate pairwise over all the cases that the classes are? Because that seems kind of like a really crappy design to me.