O objectivo principal é fornecer uma hierarquia de tipos abstractos que seja congruente com os conceitos que estão a ser modelados na aplicação. Isto é conseguido utilizando uma aproximação de subtipificação estrita ao desenho da hierarquia. Esta aproximação aumenta o polimorfismo e a independência, do código que utiliza OATH, em relação a pormenores de programação.
O segundo objectivo do desenho é fornecer um mecanismo robusto de reciclagem de memória, completamente realizado no âmbito de uma biblioteca C++.