the contract model