An OM class can be defined to have an attribute whose OM class is defined in some other package. This avoids duplication of OM classes. This gives rise to the concept of a package closure. A package closure is the set of all OM classes that need to be supported so that all possible instances of all OM classes can be defined in the package.