added MessageInterface