The solver