Additional Announcements work.  Mostly on creating model and alogrithm to decide which announcments are visible for a given context