add PriorityQueue class