added priority queue class