code: function(o1, o2) {
              var retObj = this._clone(o2);
              for(var key in o1) {
                  if(this._isObject(o1[key])) {
                      retObj[key] = this._merge(o1[key], retObj[key]);
                  }
                  else {
                      retObj[key] = o1[key];
                  }
              }
              return retObj;
          }
docs: o1 takes precedence over o2