Converger interface

I was originally thinking a single `converge` function that takes all the necessary args to do the convergence. IMHO, the details of how it is called (about scheduling) should not be in the interface.