add binary heap (tested)