docs: function(data){
        if (this.delegate)
          return this.root.update(data);
  
        if (data)
        {
          var delta = {};
          var changed = false;
  
          for (var prop in data)
            if (this.data[prop] !== data[prop])
            {
              changed = true;
              delta[prop] = this.data[prop];
              this.data[prop] = data[prop];
            }
  
          if (changed)
          {
            this.emit_update(delta);
            return delta;
          }
        }
  
        return false;
      }