generic priority queue in case it is needed