initial impl: mergeSort