private ScoreObject subop(ScoreObject a, ScoreObject b) {
		if (a.isNumeric() && b.isNumeric()) {
			if (a.isFloat() || b.isFloat())
				return new ScoreObject(a.getAsFloat() - b.getAsFloat());
			// one is an int?
			else if (a.isInt() || b.isInt())
				return new ScoreObject(a.getAsInt() - b.getAsInt());
			// must both be chars then
			else return new ScoreObject(a.getChar() - b.getChar());
		}
		throw new ScoreException("Cannot sub type " + b.getTypeName() + " from type " + a.getTypeName() + ".");
	}