 class SocialApiController extends KDController
 
   constructor: (options = {}, data) ->
+    @openedChannels = {}
     super options, data
 
   mapActivity = (data)->

        message = mapActivity message
        target.emit event, message, rest...

  registerAndOpenChannel = (socialApiChannel)->
    getCurrentGroup (group)->
      subscriptionData =
        serviceType: 'socialapi'
        group      : group.slug
        channelType: socialApiChannel.typeConstant
        channelName: socialApiChannel.name
        isExclusive: yes

      name = "socialapi.#{socialApiChannel.groupName}-#{socialApiChannel.typeConstant}-#{socialApiChannel.name}"
      brokerChannel = KD.remote.subscribe name, subscriptionData
      forwardMessageEvents brokerChannel, socialApiChannel, [
        "MessageAdded",
        "MessageRemoved"
      ]

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

      data.isParticipant = channel.isParticipant
      data.participantCount = channel.participantCount
      data.participantsPreview = channel.participantsPreview
      c = new SocialChannel data
      # push channel into stack
      revivedChannels.push c
    # bind all events
    registerAndOpenChannels revivedChannels
    return revivedChannels

  forwardMessageEvents = (source, target,  events)->
