Use SplPriorityQueue, improve getEventListeners, temporarily remove the detach method