object model -- common model for representation of objects and capabilities
extensibility -- integration of new objects (defined in Java or C++), scripting capabilities and declarative content