updated GaussianElimination