Reusability is one of the vital and distinguishing features that lead to the wide acceptance of the object-oriented technology. In this paper, we present a method for placing a given class in its intended position within the hierarchy to maximize reusability. We group classes to be added to the hierarchy into four categories; the classes whose both subclasses and superclasses are known, only subclasses are known, only superclasses are known, or neither subclasses nor superclasses are known. We concentrate on query results to have the object model maintain closure property because reusability is achieved only when the result of a query is properly placed in the hierarchy in an automated way. To enforce closure, we differentiate between operands Object Algebra Expressions (OAEs) hierarchy and class hierarchy and define the mapping from the class hierarchy to the OAEs hierarchy and vice versa. The first mapping shows how a class is used as an operand and the second mapping shows how to reflect a query result into the class hierarchy. We classify classes as base classes and brother classes. Each brother class shares the definition of a base class because a brother class holds the result of a selection. We introduce two algorithms that help in reusability maximization. The first algorithm adjusts the list of superclasses of a given class to increase the inherited facilities and hence decrease locally defined facilities. The second algorithm maximizes reusability by considering the subclasses of each of the superclasses of a given class to have the latter class properly placed in the hierarchy. (C) 1998 Elsevier Science Inc. All rights reserved.