Symbian OS was built to follow three design rules: the integrity and security of user data is paramount, user time must not be wasted, and all resources are scarce. This led to the writing of a microkernel, a request-and-callback approach to services, the concept of separation between UI and Engine (the business logic of a Symbian application). The OS is optimised for low-power battery-based devices and for ROM-based systems (e.g. features like XIP and re-entrancy in shared libraries). Applications, and the OS, follow an object-oriented design, MVC. (*)