We need a way to split the optimization into separate variables for which individual constraints may be expressed. It would also be a nicer way to express parametrized functions.