Extracted MessageRepository.  Not sure I like the name/pattern?