added #each_range and #reverse_each_range