finish 3 solver methods