add new template class Message to lighten the load of implementing the common interface