message generation