SalesOrder Contract model
FSM away
Alter models to reflect ContractInstance // refine workflow
Add a factory