This was a decent idea, but it is not flexible enough to allow for correct superclass type comparisons.