replaced heap_t with std::multiset