updated Contract so it checks all rules before erroring out, instead of failing if the first rule is invalid.