add infinite generator
add bisection search algorithm