As we have just seen, the “standard” method of adding polymorphism to our programs is, to use a technical term, ugly; that is, it is error prone and virtually impossible to maintain. After a few more definitions, we're going to see how to fix these problems with an advanced technique I refer to as polymorphic objects.