Now message tag information is passed in a struct. This will make the
implementation of future extensions easy.