add message handler interface