         <span class='meter'></span>\
       </div>"
 
-    uploadItem.querySelector(this.defaults.cancelSelector).addEventListener('click', (e) =>
+    uploadItem.querySelector(@defaults.cancelSelector).addEventListener('click', (e) =>
       ((index) =>
-        this.defaults.uploadCancel(file, index)
+        @defaults.uploadCancel(file, index)
       )(index))
 
     return uploadItem

      allowedTypes          : [/^image\//, /^video\//], # array of regex
      maxFileSize           : 4294967296, # in bytes
      evaporate             : null,
      sanitizeFilename      : this.sanitizeFilename,
      overHandler           : this.overHandler,
      leaveHandler          : this.leaveHandler,
      dropHandler           : this.dropHandler,
      getMeterEl            : this.getMeterEl,
      getCancelEl           : this.getCancelEl,
      uploadHandler         : this.uploadHandler,
      uploadComplete        : this.uploadComplete,
      uploadProgress        : this.uploadProgress,
      uploadCancel          : this.uploadCancel,
      uploadInfo            : this.uploadInfo,
      uploadWarn            : this.uploadWarn,
      uploadError           : this.uploadError,
      createUploadItem      : this.createUploadItem
    }

    this._index = 0 # Keeps track of how many files we've uploaded
    this._complete = 0
    this._cancelled = 0
    this._failed = 0

    this._fileQueue = []

    this.defaults = extend(defaults, options)
    this.el = window.document.querySelector(el)
    throw new Error('Could not find element for uploader.') unless this.el

    this.init()

  init: ->
    this.el.addEventListener('dragover', this.defaults.overHandler)
    this.el.addEventListener('dragleave', this.defaults.leaveHandler)
    this.el.addEventListener('drop', this.defaults.dropHandler)

  overHandler: (e) =>
    e.preventDefault()
    e.stopPropagation()

    addClass(this.el, this.defaults.overClass)

    false



  getMeterEl: (index) =>
    uploadMeterSelector = ".candru [data-upload-id=\"#{index}\"] .meter"
    return @el.querySelector(uploadMeterSelector)

  getCancelEl: (index) =>
    uploadMeterSelector = ".candru [data-upload-id=\"#{index}\"] .cancel"
    return @el.querySelector(uploadMeterSelector)

  createUploadItem: (file, index) =>
    uploadItem = document.createElement('div')
