       @__uploadDf = $.Deferred()
       @__infoDf = $.Deferred()
 
-      # asSingle() stuff
-      @__singleFileDf = $.Deferred()
-      @__progressState = 'uploading'
-      @__uploadDf.done =>
-        @__progressState = 'uploaded'
-        @__singleFileDf.notify @__progressInfo()
-      @__infoDf.done (info) =>
-        @__progressState = 'ready'
-        @__singleFileDf.notify @__progressInfo()
-        @__singleFileDf.resolve info
-      fail = (err) =>
-        @__buildInfo (info) =>
-          @__singleFileDf.reject err, info
-      @__infoDf.fail fail
-      @__uploadDf.fail fail
+      @__initAsSingle()
 
-      @__fileProgresses = {}
+      if files
+        @add(file) for file in files
 
     # check if two groups contains same files in same order
     equal: (group) ->


    isFinalized: -> @__finalized

    __progressInfo: ->
      progress = 0
      for file in @__files
        progress += (@__fileProgresses[file] or 0) / @__files.length
      state: @__progressState
      uploadProgress: progress
      progress: if @__progressState == 'ready' then 1 else progress * 0.9

      if file
        @__files.push file
        file.progress (progressInfo) =>
          $(file).data('progress', progressInfo.progress)
          @__singleFileDf.notify @__progressInfo()
        @onFileAdded.fire file

