To gain the maximum advantage of the object oriented programming paradigm, we believe it is necessary for the paradigm to be used throughout the application platform. This means that not only should applications be built using objects, but the underlying operating system should also be built using objects. Although this leads to a more modular operating system structure, perhaps more importantly it minimises the mismatch between the application programming paradigm and the underlying support infrastructure. However, ensuring that the underlying system supports individual application requirements is a difficult task. In essence it requires that the system be tailored towards application requirements. Apertos achieves this difficult task through the use of meta-objects and reflection, which allows the system to be adapted by application programmers via the reflective infrastructure. In this paper we discuss the object model that Apertos supports and how it can be tailored to support different application requirements.