updates + linsolve3