add, remove, sift up and down working