implement the message provider interface.