code: function (callback) {
  
              var self = this,
                  cacheId = [self.$.text, self.$.align, self.get("font.id")].join("#");
  
              flow()
                  .seq("design", function (cb) {
  
                      if (self.$designCache.hasOwnProperty(cacheId)) {
                          cb(null, self.$designCache[cacheId]);
                      } else {
                          // create a full font size image
                          self.$.pimpImageService.generateDesign({
                              text: self.$.text,
                              font: self.$.font,
                              taskId: self.$.taskId,
                              align: self.$.align
                          }, cb);
                      }
  
                  })
                  .seq(function () {
  
                      var design = this.vars.design;
  
                      self.$designCache[cacheId] = design;
                      self.set("design", design);
                  })
                  .exec(callback);
          }
docs: *
  saves assets asynchronously
  @param callback