Actually the entire logic for output conversion needs to be refined to ensure that user can produce Message which represents exactly what is going to be sent. In other words if user produced a Message with payload of type byte[], then no output conversion has to be performed