       @on 'LazyLoadThresholdReached', @bound 'lazyLoad'
 
     @on "ItemsArrived", (items)->
-      @getItemTimestampFn = getItemTimestampFn
+      return  if @currentFilter isnt MOST_LIKED
+      @mostLikedPostsCount += items.length
+
+      return  if items.length isnt 0
 
       # when we run out of posts in most liked list, we switch
       # to getting most recent posts in DESC order
-      if @currentFilter is MOST_LIKED and items.length < ITEMS_COUNT
-        @changeFilter MOST_RECENT
-
-        # this is an edge case when we want to get from top of most
-        # recent posts even though the filter is MOST_RECENT
-        @getItemTimestampFn = ->
-
-        @populate()
+      @changeFilter MOST_RECENT
+      if @mostLikedPostsCount is 0 then @populate()
 
     KD.singletons.windowController.addFocusListener @bound 'handleFocus'
 

        @listController.getListView().on 'ItemWasAdded', @bound 'scrollUp'

  changeFilter: (filter)->
    @skipItemCount  = 0

    if filter is MOST_LIKED
      @currentFilter      = MOST_LIKED
      @getItemTimestampFn = ->
    else
      @currentFilter      = MOST_RECENT

      # returns created at timestamp of item, this is not an instance
      # method due to edge case when we switch from most liked to most
      # recent filter we want to get posts from top and not the usual
      # pagination behavior of getting posts that happened after last
      # post on the feed
      @getItemTimestampFn = getItemTimestampFn

  bindInputEvents: ->



    @listController.showLazyLoader()

    if @realFilter is MOST_LIKED and @mostLikedPostsCount > 0
      return @listController.hideLazyLoader()

    {appManager} = KD.singletons
    last         = @listController.getItemsOrdered().last

    return @listController.hideLazyLoader()  unless last

    if @currentFilter is MOST_LIKED
      from = null
      @skipItemCount += ITEMS_COUNT
    else
      from = last.getData().createdAt

    @fetch {from, skip:@skipItemCount}, (err, items=[])=>
      @listController.hideLazyLoader()
