         if chrome.runtime.lastError? or not item[ACCOUNTS]?
           callback null
         else
-          for a in item[ACCOUNTS]
+          _accounts = for a in item[ACCOUNTS]
             _decryptAuth.apply(a)
-          _accounts = item[ACCOUNTS]
-          callback item[ACCOUNTS]
+          callback _accounts
 
 
     ###

        accounts = accounts or []
        # select other url account
        accounts = for a in accounts when a.url isnt url
          _encrypt.apply(a); a
        chrome.storage.sync.set ACCOUNTS: accounts, () ->
          if chrome.runtime.lastError?
            callback false

   decrypt the account data, only to sync on chrome.
  ###
  _decryptAuth = () ->
    return {
      url:    @url
      apiKey: _decrypt @apiKey
      id:     _decrypt @id
      pass:   _decrypt @pass
    }


  ###
   encrypt the account data, only to sync on chrome.
  ###
  _encrypt = () ->
    return {
      url:    @url
      apiKey: _Json.stringify CryptoJS.AES.encrypt(@apiKey, PHRASE)
      id:     _Json.stringify CryptoJS.AES.encrypt(@id, PHRASE)
      pass:   _Json.stringify CryptoJS.AES.encrypt(@pass, PHRASE)
    }


  ###
