use pool for later ascend/descend heap