add priority queue constructor