An object that provides behavior common to a set of other objects. Commonly, a ClassObject defines "slots" (of varying scope), "methods" (usually in a map or dictionary), one or more "parent" classes, and similar material. A ClassObject is typically returned by the "class" method of every object. Objects are typically created by sending "new", "create", or something similar to the ClassObject of the desired "instance". In SmalltalkLanguage, each ClassObject itself has a ClassObject -- an instance of Metaclass. Metaclass is distinguished in that it is the only object whose ClassObject is itself. There are dragons here.