such hard-coded convergence criteria are bad, rather make all those things a parameter which has a default value, but that *can be changed*