change solve_problem interface