Move the problem API into a separate header (problem.h)