implemented merge_sort and passes tests