linear solver added