Updated nonlinear solver