implement IntRange