It is only when polymorphism is really needed that we add the machinery to handle children and polymorphism. A polymorphic branch is defined as the set consisting of a polymorphic entity, its children and (recursively) the children of its children. Inside a polymorphic branch, OIDs must be unique. Between two unrelated polymorphic branches, OIDs may not be unique. The polymorphism manager retreives the entity factory associated with a particular OID inside a polymorphic branch.