priority queue with class objects