add BST
add BST
add BST
partially implemented for BST