message decoder
merge