Made MergeSort generic :D