add Operation::contract which runs everything but #validate and then returns the Contract instance. this is extremely helpful for New and Edit.