first implementation of binary_search_tree