added elimination and LU decomp