more fix on the contract model