generalized message sending