public function addDescription(Description $description)
 {
     if (!$description instanceof ThingDescription) {
         if ($description instanceof Conjunction) {
             // absorb sub-conjunctions
             foreach ($description->getDescriptions() as $subdesc) {
                 $this->m_descriptions[] = $subdesc;
             }
         } else {
             $this->m_descriptions[] = $description;
         }
         // move print descriptions downwards
         ///TODO: This may not be a good solution, since it does modify $description and since it does not react to future changes
         $this->m_printreqs = array_merge($this->m_printreqs, $description->getPrintRequests());
         $description->setPrintRequests(array());
     }
 }