code: function(task) {
              var f = task.task || this.defaultTask;
  
              Q(f.apply(task.context || this.defaultContext, task.args)).then(function() {
                  task.result.resolve.apply(task.result, arguments);
              }, function() {
                  task.result.reject.apply(task.result, arguments);
              }).fin(_.bind(this.startNext, this));
          }
docs: /*
  Start a task
  @task task object to start