Deferred.prototype.done = function( successCallback ){
        var d = new Deferred();
        this.state.done.call(this,
          successCallback || defaultSuccessCallback, d);
        return d;