x_lb and x_ub should be properties of the nonlinear program only.. right?  i don't see any reason to have them as properties of every constraint