The basic building blocks of the Vision are Objective-C objects which are constructed from classes that all inherit from a common ancestor base class called Construct. This base class defines methods and data which allow the objects to be recognized by and interact with the Vision server correctly. An object of the Construct class itself is not very interesting in terms of interface design and is never actually expected to be instantiated. People who wish to design interface objects should create their own classes which inherit from the Construct class. Methods such as - (void) Draw:(DrawType)mode can be overridden to provide specific functionality that will be useful and interesting to those who wish to create user interfaces. The Objective-C programming convention of calling [super init] before performing initializations in the init function and calling [super dealloc] in dealloc after cleanup must be adhered to if you choose to override those methods. Methods and data members can also be added to the new classes to customize the kind of functionality the interface object designers desire for it.