abstractize sendmessage()