added constrained budget option