added heap generator