@Override
  public void ndlNode(Resource ce, OntModel om, Resource ceClass, List<Resource> interfaces) {

    // ignore request items
    // if (requestPhase)
    //	return;

    if (ce == null) return;

    // logger.debug("Node: " + ce);

    OrcaNode newNode;

    if (NdlCommons.isStitchingNodeInManifest(ce)) {
      // logger.debug("  is a stitching port");
      OrcaStitchPort sp = new OrcaStitchPort(getPrettyName(ce));
      // get the interface (first)
      if (interfaces.size() == 1) {
        sp.setLabel(NdlCommons.getLayerLabelLiteral(interfaces.get(0)));
        if (NdlCommons.getLinkTo(interfaces.get(0)) != null)
          sp.setPort(NdlCommons.getLinkTo(interfaces.get(0)).toString());
      }
      newNode = sp;
    } else if (NdlCommons.isNetworkStorage(ce)) {
      // logger.debug("  is a storage node");
      newNode = new OrcaStorageNode(getPrettyName(ce));
      newNode.setIsResource();
    } else if (NdlCommons.isMulticastDevice(ce)) {
      // logger.debug("  is a multicast root");
      newNode = new OrcaCrossconnect(getPrettyName(ce));
      newNode.setIsResource();
    } else {
      // logger.debug("  is a regular node");
      newNode = new OrcaNode(getPrettyName(ce));
    }

    for (Resource ii : interfaces)
      // logger.debug("  With interface " + ii);

      // set common properties
      setCommonNodeProperties(newNode, ce);

    // process interfaces
    for (Iterator<Resource> it = interfaces.iterator(); it.hasNext(); ) {
      Resource intR = it.next();
      // interfaceToNode.put(getTrueName(intR), newNode);
      // logger.debug("Remembering interface " + intR + " of node " + ce);
      addNodeToInterface(getTrueName(intR), newNode);
    }

    // disk image
    Resource di = NdlCommons.getDiskImage(ce);
    if (di != null) {
      try {
        // String imageURL = NdlCommons.getIndividualsImageURL(ce);
        // String imageHash = NdlCommons.getIndividualsImageHash(ce);
        // GUIRequestState.getInstance().addImage(new OrcaImage(di.getLocalName(),
        //		new URL(imageURL), imageHash), null);
        String imgName = di.getURI().replaceAll("http.+#", "").replace("+", " ");
        newNode.setImage(imgName);
      } catch (Exception e) {
        // FIXME: ?
        ;
      }
    }

    nodes.put(getTrueName(ce), newNode);

    // add nodes to the graph

    pg.addNodeLater(newNode);
    // are there nodes hanging off of it as elements? if so, link them in
    processDomainVmElements(ce, om, newNode);
  }