code: function seenreq(options) {
  	let Repo = null;
  	const Normalizers = [];
      
  	options = options || {};
  	if(!options.repo || options.repo==='default' || options.repo==='memory'){
  		Repo = require('./lib/repo/default.js');
  	}else{
  		const moduleName = `seenreq-repo-${options.repo}`;
  		try{
  			Repo = require(moduleName);
  		}catch(e){
  			console.error(`\nCannot load module ${moduleName}, please run 'npm install ${moduleName}' and retry\n`);
  			throw e;
  		}
  	}
      
  	this.repo = new Repo(options);
      
  	if(!options.normalizer){
  		Normalizers.push(require('./lib/normalizer/default.js'));
  	}else{
  		let moduleNames = null;
  		if(typeof options.normalizer === 'string'){
  			moduleNames = [options.normalizer];
  		}else{
  			moduleNames = options.normalizer;
  		}
  
  		moduleNames.map(moduleName=>{
  			moduleName = `seenreq-nmlz-${moduleName}`;
  			try{
  				Normalizers.push(require(moduleName));
  			}catch(e){
  				console.error(`Cannot load module ${moduleName}, please run 'npm install ${moduleName}' and retry`);
  			}
  		});
  	}
      
  	this.normalizers = Normalizers.map(ctor => new ctor(options));
  	this.globalOptions = options;
  }
docs: /*