Solving Systems of linear equations