code: function BaseImporter () {
    this._schema = null;
    this._export = null;
    this._types = {};
    this._model = {
      properties:{},
      definitions:{},
      ids:{}
    };
    this.error = null;
  
    var baseImporter = this;
  
    //setup listeners
    this.on('readyStateChanged', function (readyState) {
      //state changed
      if(readyStates.complete === readyState){
        //state says loading has finished
        if(baseImporter.error){
          baseImporter.emit('failed', baseImporter.error);
        } else {
          baseImporter.emit('success', null, baseImporter.getModel());
        }
  
        //send general complete notification
        baseImporter.emit('complete', baseImporter.error, baseImporter.getModel());
      }
    });
  }
docs: BaseImporter psuedo class to be extended