             @byTag[tagId].splice(entryIndex, 1);
 
   markEntryUnread: (entryId, feedId, published) ->
-    unreadEntry = [feedId, entryId, published]
+    unreadEntry = @buildEntry
+      feedId: feedId
+      entryId: entryId
+      published: published
     @unreadEntries.push(unreadEntry)
-    @unreadEntries = @sortUnread(@unreadEntries)
-    counts = @organizeCounts()
+    @unreadEntries = @sort(@unreadEntries)
+    counts = @organizeCounts(@unreadEntries)
     @byFeed = counts.byFeed
     @byTag = counts.byTag
     @unread = counts.all

  constructor: (data) ->
    @data ?= data
    @tagMap = @buildTagMap(@data.tag_map)
    @unreadEntries = @sortUnread(data.unread_entries)
    counts = @organizeCounts(@unreadEntries)
    @byFeed = counts.byFeed
    @byTag = counts.byTag


    counts

  sort: (entries) ->
    if @data.entry_sort == 'ASC'
      entries.sort (a, b) =>
        @published(a) - @published(b)
    else
      entries.sort (a, b) =>
        @published(b) - @published(a)
    entries

  markEntryRead: (entryId, feedId) ->
    # total unread
