docs: function _chain(name, value, validator, update){
              if(typeof value !== 'undefined'){
                  if(typeof validator === 'function'){
                      try{
                          value = validator.call(validators, value);
                      } catch(e){
                          throw new TypeError('Failed to set ' + name + ' : ' + e.message);
                      }
                  }
                  if(typeof update === 'function'){
                      data[name] = update.call(this, value);
                  } else {
                      data[name] = value;
                  }
                  return this;
              }
              return data[name] === 'undefined' ? null : data[name];
          }