code: public <T extends BioPAXElement> T create(Class<T> aClass, String uri)
  	{
  //		//could use the following shortcut, but it might hurt performance of creating/reading large valid models
  //		if(!canInstantiate(aClass)) {
  //			log.error("Non-instantiable: cannot create BioPAX object, uri:"+uri+", with abstract type: " + aClass);
  //			return null;
  //		}
  
  		T bpe = null;
  
  		// create a new instance of the BioPAX type
  		try {
  			Class<T> t = getImplClass(aClass);
  			if(t != null) {
  				Constructor<T> c = t.getDeclaredConstructor();
  				c.setAccessible(true);
  				bpe = (T) c.newInstance();
  				setUriMethod.invoke(bpe, uri);
  			} else {
  				log.error("Could not find a class implementing " + aClass);
  			}
  		} catch (InvocationTargetException e) { //this happened, weird (might due to lack of memory or busy...)
  			log.error("Failed creating BioPAX object: " + aClass + ", URI: " + uri + " - " + e, e.getCause());
  		} catch (Exception e) {
  			log.error("Failed creating BioPAX object: " + aClass + ", URI: " + uri, e);
  		} 
  
  		return bpe;
  	}
docs: Universal method that creates a new BioPAX object.
  (works with non-public, other package, implementations)
  
  @param <T> type
  @param aClass the class that corresponds to the BioPAX type
  @param uri absolute URI of the new BioPAX object
  @return new BioPAX object