 
       # TODO: Each time we are fetching user data that we already have. Needs to be fixed.
       KD.remote.api.JAccount.some { "profile.nickname": { "$in": usernames } }, {}, (err, jAccounts) =>
-        @users[user.profile.nickname] = user for user in jAccounts
+        for user in jAccounts
+          {nickname} = user.profile
+          @users[nickname]       = user
+          @activeUsers[nickname] = user
         @emit "WorkspaceUsersFetched"
 
   createPanel: (callback = noop) ->

    @nickname    = KD.nick()
    @sessionData = []
    @users       = {}
    @createRemoteInstance()
    @createLoader()
    @fetchUsers()

    @watchRef       = @workspaceRef.child "watch"
    @usersRef       = @workspaceRef.child "users"
    @userRef        = @usersRef.child KD.nick()
    @requestPingRef = @workspaceRef.child "requestPing"
    @sessionKeysRef = @firebaseRef.child  "session_keys"

  syncWorkspace: ->
    @workspaceRef.once "value", (snapshot) =>
      if @getOptions().sessionKey
        unless snapshot.val()?.keys
          @showNotActiveView()
          return false

      isOldSession = keys = snapshot.val()?.keys
      if isOldSession
        @isOldSession = yes
        @sessionData  = keys
        @createPanel()
      else
        @createPanel()
        @workspaceRef.set "keys": @sessionData

      if not isOldSession
        @addToHistory { message: "$0 started the session", by: KD.nick() }

      @watchRef.child(@nickname).set "everybody"
      @sessionKeysRef.child(@nickname).set @sessionKey
      @userRef.child("status").set "online"

      @loader.destroy()
      @chatView?.show()

      @emit "WorkspaceSyncedWithRemote"

  bindRemoteEvents: ->
    if @amIHost() then @syncWorkspace()
    else
      @requestPingFromHost()

    @usersRef.on "child_added", (snapshot) =>
      @fetchUsers()
