added nonlinear atom support.