Implement merge sort, added tests and restructured project