code: private Level3Element mapClass(BioPAXElement bpe) {
  		Level3Element newElement = null;
  		
  		if(bpe instanceof physicalEntityParticipant)
  		{
  			String id = pep2PE.get(bpe.getUri());
  
  			if(id == null) {
  				log.warn("No mapping possible for " + bpe.getUri());
  				return null;
  			}
  			else if (id.equals(bpe.getUri()))
  			{
  				// create a new simplePhysicalEntity
  				//(excluding Complex and basic PhysicalEntity that map directly and have no ERs)
  				newElement = createSimplePhysicalEntity((physicalEntityParticipant)bpe);
  			}
  		}
  		else if(!(bpe instanceof openControlledVocabulary)) // skip oCVs
  		{
  			// using classesmap.properties to map other types
  			String type = bpe.getModelInterface().getSimpleName();	
  			String newType = classesmap.getProperty(type).trim();
  			if (newType != null && factory.canInstantiate(factory.getLevel().getInterfaceForName(newType)))
              {
  				newElement = (Level3Element) factory.create(newType, bpe.getUri());
  			} else {
  				if(log.isDebugEnabled())
  					log.debug("No mapping found for " + type);
  				return null;
  			}
  		}
  
  		return newElement;
  	}
docs: creates L3 classes and sets IDs