add merge sort and tests