adding contract_for, a better syntax for defining contracts