@SuppressWarnings("unchecked")
 private ConceptImpl copy(Concept concept) throws InvalidModelException {
   // FIXME this is a workaround for what should be clone() in wsmo4j
   // does not use factory to ensure that a real copy is created
   ConceptImpl conceptImpl = new ConceptImpl(concept.getIdentifier(), null);
   for (Concept c : (Collection<Concept>) concept.listSubConcepts()) conceptImpl.addSubConcept(c);
   for (Concept c : (Collection<Concept>) concept.listSuperConcepts())
     conceptImpl.addSubConcept(c);
   for (Attribute a : (Collection<Attribute>) concept.listAttributes())
     conceptImpl.createAttribute(a.getIdentifier());
   for (Instance i : (Collection<Instance>) concept.listInstances()) conceptImpl.addInstance(i);
   return conceptImpl;
 }
 public boolean isOutConcept(Concept concept) {
   for (Out mode : signature.listOutModes()) {
     if (concept.equals(mode.getConcept())) return true;
   }
   return false;
 }
 public boolean isControlledConcept(Concept concept) {
   for (Controlled mode : signature.listControlledModes()) {
     if (concept.equals(mode.getConcept())) return true;
   }
   return false;
 }