1) fast merge-sort
2) refactoring
3) optimized I/O