updated Solver