first pass at merge sort