added recursive binary search fun