added experimental binary search function