a large check-in includes separation things into files and heap_sort