added a few comments to help understand heap anal