added merge sort (to be improved)