implement SplPriorityQueue