Added underlyingFunction DealCapture field. This is a holding point...next up is to change .evaluate to cater for different underlyingFunction(s)