     file.labels = (label for label in file.labels when label != remove)
     @api.save FILES, file, (result) ->
     item.fadeOut 200, -> item.remove()
-    this.findLabels()
+    this.updateLabelCount remove, -1
+
+  updateLabelCount: (name, inc) ->
+    el = $ "#labels li[data-name='#{name}'] .count"
+    if el.length > 0
+      count = parseInt(el.text().split(' ')[0]) + inc
+      text = if count == 1 then 'file' else 'files'
+      el.text "#{count} #{text}"
+    else
+      this.labelNodeList(name: name, size: 1)
 
   deleteFile: (node) ->
     @api.remove FILES, node.attr('data-id'), (result) =>
+      for label in node.data('file').labels
+        this.updateLabelCount label, -1
       node.fadeOut 200, -> node.remove()
     false
 

    file = node.data 'file'
    file.labels.push label for label in labels
    @api.save FILES, file, (result) ->
    this.labelNode node, label for label in labels
    this.findLabels()
    false

  removeLabel: (node, item) ->

  labelNodeList: (label)->
    text = if label.size == 1 then 'file' else 'files'
    node = $("""
      <li data-name="">
        <span class="text"></span>
        <span class="count">#{label.size} #{text}</span>
      </li>
