Card #168 - refactor service, ui, fix for unread messages logic