add quasi newton method