BST impl.