add binary_heap (tested)