Changed some things to add support for GaussSiedel