void ComponentManager::deregisterContainer(const ObjectID& oid) {
     unsigned int index = oid.getIndex();
     m_activeContainers.erase(index);
     m_containers[index] = 0;
     std::memset(&m_componentIDs[index * MAX_INTERFACES], 0, sizeof (ComponentID) * MAX_INTERFACES);
     m_containerIndices.free(index);
     //std::cout << "Object " << oid.getIndex() << " deregistered." << std::endl;
 }
 MessageResult ComponentManager::sendMessage(const InterfaceTypeID& iid, const ObjectID& oid, MessageBase& msg) {
     const ComponentID& cid = getComponentID(iid, oid);
     if (cid.isValid()) {
         ComponentBase* component = getComponent(cid);
         if (component) {
             // write on envelope
             // this changes msg!
             msg.Addressee = oid;
             msg.Sender = ObjectID();
             return component->handleMessage(msg);
         }
         std::cerr << "Component invalid in container " << oid.getIndex() << std::endl;
         return MR_ERROR; // failed to deliver
     }
     return MR_ERROR; // failed to deliver
 }