added a min priority queue plus tests