added merge sort