refactor IntegerExp