allow to THEORETICALLY pass in more than one model into Op#contract_for.
change API Op#validate(params, model, contract), so we can make model an optional arg.