modify merge_sort