There is a final method in the ModuleIdentifier class, called isInteface. Normally this will return false, but it is possible to define a module which acts like an abstract class, and delegates its functionality to another module. This allows a degree of polymorphism for modules. This feature is not used very widely within Cinema-MX, as it turned out to be less needed than it appeared to be during design. For most purposes its easier to use ``Optional Modules'' which are described in Section 4.