Heap2 added - refactored