add QProblem class