A priority queue impl