use heap