dynamic position heap, build function seems still incorrect