dat 2AM binary search tree... with tests