MessageDoc Refactor