comparators (questionable...) and binary heap because.. why not? :P