updated to a cleaner interface
support MPB nonlinear interface