added BST data structure