Buggy. See AVLTree instead