added message parameter to contract macros