doing heap