add bisection method