code: @Override
  	public Node wrap(Object obj)
  	{
  		// Check if the object is level3
  		if (!(obj instanceof Level3Element)) throw new IllegalArgumentException(
  			"An object other than a Level3Element is trying to be wrapped: " + obj);
  
  		// Check if the object passes the filter
  		if (!passesFilters((Level3Element) obj)) return null;
  
  		// Wrap if traversible
  
  		if (obj instanceof PhysicalEntity)
  		{
  			return new PhysicalEntityWrapper((PhysicalEntity) obj, this);
  		}
  		else if (obj instanceof Conversion)
  		{
  			return new ConversionWrapper((Conversion) obj, this);
  		}
  		else if (obj instanceof TemplateReaction)
  		{
  			return new TemplateReactionWrapper((TemplateReaction) obj, this);
  		}
  		else if (obj instanceof Control)
  		{
  			return new ControlWrapper((Control) obj, this);
  		}
  		else
  		{
  			if (log.isWarnEnabled())
  			{
  				log.warn("Invalid BioPAX object to wrap as node. Ignoring: " + obj);
  			}
  			return null;
  		}
  	}
docs: This method creates a wrapper for every wrappable L3 element.
  @param obj Object to wrap
  @return The wrapper