add snoc/nioj/nonlinear