swapped reverse()