add implementation of BST