some of merge sort