refactor and improve the announcement app