objectives can now be (expressed as) arbitrary functions using Jets