new implementation of InsertSort()