use reverse_iterator
first running version