no need for addMessage to be async