docs: function(){
      this.config = utils.mixin(this.config, defaults);
      var file = this.file;
  
      var cssFile = file;
      var destFile = file;
  
      this._getConfig();
  
      if (!this.text) {
        if (this.config.global.writeFile){
          var sourceFile = file.replace('.css', '.source.css');
          if (exists(sourceFile)){
            cssFile = sourceFile;
          } else {
            cssFile = file;
          }
        } else {
          destFile = file.replace('.css', '.sprite.css');
        }
  
        this.cssReader = new cssReader({
          file: cssFile, copyFile: sourceFile
        });
  
      } else {
        this.cssReader = new cssReader({
          text: this.text
        });
      }
  
      var imgPath = this.config.global.imgPath;
      this.spriteDef = new SpriteDef({
        file: file,
        imgPath: this.config.global.imgPath,
        relative: this.config.global.relative,
        cssReader: this.cssReader,
        layout: this.config.global.layout,
        force8bit: this.config.global.force8bit,
        config: this.config
      });
  
      this.cssWrite = new CssWrite({
        destFile: this.dest ? this.dest : destFile,
        cssReader: this.cssReader
      });
  
    }