abstract the basemessage