add more versions of binary search