fully factored MessageView, sensible persistence