message functions moved from string_ex