adding tol parameter