binary search tree interface and implementation