large refactoring to extract common alert view; and combine certain data layers to hide actual data access