more work on iterative solver