update heapitem and add special swap