code: function processView(view, next){
  	view = _.clone(view);
  
  	// If it's an array, create parallel tasks
  	if(_.isArray(view)){
  		var tasks = [];
  
  		view.forEach(function(view){
  			// Create async task
  			tasks.push(function(next){
  				// Call this method egain, but with only one view
  				processView(view, next);
  			});
  		});
  
  		// Run tasks
  		return async.parallel(tasks, next);
  	}
  
  
  	/*
  
  		Now we delegate process action to function processPage()
  	*/
  
  	// Inject custom attributes to View model
  	view['name'] = process.env.APP_NAME || '';
  
  	var pages = view.pages || [];
  
  	processPage(pages, function(err, newPages){
  		if(err)
  			console.error(TAG, 'processView failed');
  
  		// Set view pages
  		view.pages = newPages;
  		return next(err, view);
  	});
  }
docs: /*
  This method receives a view, and will modify it to correspond
  to the 'module' choosen.
  
  What it does:
  + if it's array, iterate the same function and return as array
  + For each page contained in the view, call processPage()
  
  
  We get the model like this:
  {
  id: 2, title: "title", template: "default", [...],
  pages:
  [
  {
  module: "groups",
  still: "1000",
  options: { },
  ----------- INSERTED FIELDS BY MODULE \/
  data: {hash: [...]},
  info: '......',
  [...]
  }
  ]
  }
  
  Basicaly, what we have to do is to call for every page inside 'view.pages',
  the method 'process' of the module choosen.
  
  To do that, we first iterate trough Views array, calling processPage on it's pages