add new more compact message generation interface