improve basic, BinarySearch