finished merge_sort