extracted AnnouncementManagerViewModel