generalized message sending pipeline