better message type support