     return callback {message: "Channel id is not set for request"} unless options.id
     getCurrentGroup (group)->
       options.groupName = group.slug
-      {SocialChannel} = KD.remote.api
-      SocialChannel.fetchActivity options, (err, result)->
-        return callback err if err
-        return callback null, mapActivities result
+      channelApiFuncMultiRes "fetchActivity", options, callback
 
   fetchGroupActivity = (options, callback)->
     getCurrentGroup (group)->
       return callback {message: "Group doesnt have socialApiChannelId"} unless group.socialApiChannelId
       options.id        = group.socialApiChannelId
       options.groupName = group.slug
-      {SocialChannel} = KD.remote.api
-      SocialChannel.fetchActivity options, (err, result)->
-        return callback err if err
-        return callback null, mapActivities result
+      channelApiFuncMultiRes "fetchActivity", options, callback
 
   fetchChannels = (options, callback)->
     getCurrentGroup (group)->

    fetchActivity: fetchChannelActivity
    fetchGroupActivity: fetchGroupActivity
    fetchPopularTopics: fetchPopularTopics

  messageApiFunc = (name, rest..., callback)->
    KD.remote.api.SocialMessage[name] rest..., (err, res)->
      return callback null, mapActivity res

  message:
   edit                  :(rest...)-> messageApiFunc 'edit', rest...

   delete                :(rest...)-> KD.remote.api.SocialMessage.delete rest...
   like                  :(rest...)-> KD.remote.api.SocialMessage.like rest...
   unlike                :(rest...)-> KD.remote.api.SocialMessage.unlike rest...

  mapActivities = (messages)->
    # if no result, no need to do something
