Instead of providing one way to create/minipulate/call objects, an alternative approach is to allow arbitrary number of "managers" to be registered with the system. Each class would then have an manager. The manager takes care of access (get/set), method invocation, and storage. In this way we can add an ObjectManager that supports OthogonalPersistence at a later date.