added binary search with benchmarks