made each_range and reverse_each_range only take start, end instead of either order