added faster binary searv