code: function(dest, source, map) {
  
  		var name;
  
  		for (name in source) {
  
  			if (!(name in dest)) {
  
  				dest[name] = source[name];
  
  			} else if (name in map) {
  
  				if (map[name] == true) {
  
  					Firestorm.implement(dest[name], source[name]);
  
  				} else {
  
  					this._mergeWithMap(dest[name], source[name], map[name]);
  
  				}
  
  			}
  
  		}
  
  	}
docs: Advanced merging algorithm
  @param {Object} dest
  @param {Object} source
  @param {Object} map