almost done nonlin