Implementing Merge Sort