Introduced IntegerCalculationMatcher and ArithmeticMatcher to invert dependencies, but not sure it's much of an improvement.