Todo: correct Gauss-Seidel