Ok, to me, that implies that we should allow extensions of NonlinearProgram (to do what you say), but still doesn't mean that NonlinearProgramWConstraints needs to be its own class. Can't the "WConstraints" behavior just be included in the super class? If there are no Constraint constraints, then that bit of the code will just be skipped...