pub fn message_channel<T>() -> (MessageSender<T>, MessageReceiver<T>)