add more functions and test cases for bst