     attachments = []
     for msg in strings
       period = msg.lastIndexOf(".")
-      if @.isImageUrl(msg)
+      if @isImageUrl(msg)
         attachments.push(msg)
       else
         text.push(msg)
     return unless text.length or attachments.length
-    options = {"threadId": envelope.room, "serviceId": envelope.message.id}
-    if attachments.length
-      options.attachments = attachments.join(",")
-    if text.length
-        options.content = text.join("\n\n")
+    options =
+        threadId: envelope.room
+        serviceId: envelope.message.id
+    options.attachments = attachments.join "," if attachments.length
+    options.content = text.join "\n\n" if text.length
     if envelope.message.quipMessage.annotation
         options.annotationId = envelope.message.quipMessage.annotation.id
     @robot.logger.info "Sending to #{envelope.room}: #{JSON.stringify(options)}"
-    @client.newMessage options, @.messageSent
+    @client.newMessage options, @messageSent
 
   isImageUrl: (url) ->
     return false unless url.substring(0, 4) == "http"

    @ws.on "open", =>
      @robot.logger.info "Opened"
      @connected = true
      @lastMessageSeen = Date.now()
      @heartbeatTimeout = setInterval =>
        if not @connected then return
        if Date.now() - @lastMessageSeen > 30000
          @robot.logger.error "Heartbeat too old at %ds", (Date.now() - @lastMessageSeen) / 1000
          @reconnect()
        else
          @ws.send JSON.stringify({"type": "heartbeat"})
          @robot.logger.info "Sent heartbeat"

        @retries++
        @logger.info "Trying again in %ds", @retries * 1000
        setTimeout =>
          @client.getWebsocket @websocketUrl
        , @retries * 1000
      else
        @robot.logger.error "Giving up"
    else
      @socketUrl = response.url
      @selfMention = @quipMention response.user_id
      @connect()

  quipMention: (userId) ->
