private static BufferedImage delegateRendering(Algebra algebra) {
		if(algebra instanceof Equation) return renderEquation((Equation)algebra);
		else {
			BufferedImage rendered = null;
			if(algebra instanceof Expression) rendered = renderExpression((Expression)algebra);
			else if(algebra instanceof Term) rendered = renderTerm((Term) algebra);
			else if(algebra instanceof Fraction) rendered = renderFraction((Fraction) algebra);
			else if(algebra instanceof Number) rendered = renderNumber((Number) algebra);
			else if(algebra instanceof MixedNumber) rendered = renderMixedNumber((MixedNumber) algebra);
			else if(algebra instanceof Root) rendered = renderRoot((Root)algebra);
			else rendered = renderVariable((Variable) algebra);
			return wrapWithSignAndExponent(rendered, (AlgebraicParticle) algebra);
		}
	}