use memset to init message struct
add union in message struct