we can now insert while maintaining heap order