David Mertz, Ph.D., Gnosis Software Michele Simionato, Ph.D., University of Pittsburgh December 2002 Most readers are already familiar with the concepts of object-oriented programming: inheritance, encapsulation, polymorphism. But the creation of objects of a given class, with certain parents, is usually thought of as a "just so" operation. It turns out that a number of new programming constructs