restruct the insertion_sort