priority queue done