docs: function (args) {
              var modules = args.modules;
  
              for (var i = 0; i < modules.length; i += 1) {
                  var bindings = modules[i].bind, refpath = modules[i].refpath;
                  if (bindings) {
                      for (var bind in bindings) {
                          if (bindings.hasOwnProperty(bind) && !this.json.isMetadata(bind)) {
                              var location = this._getStorage(bindings[bind]);
                              if (location) {
  
                                  var moduleDescription = this._getModuleDataDescription(refpath, bind);
                                  this.$assert(2, !!moduleDescription);
                                  var listener = {
                                      fn : this._bindModuleChange,
                                      scope : this,
                                      args : {
                                          boundTo : location,
                                          moduleDescription : moduleDescription
                                      }
                                  };
                                  this.json.addListener(moduleDescription.container, moduleDescription.property, listener, false, true);
                                  this._bindings[refpath] = this._bindings[refpath] || {};
                                  this._bindings[refpath][bind] = [bindings[bind], listener];
                              }
                          }
                      }
                  }
              }
              this._updateModulesData();
              this.$callback(args.callback, args.callback.args);
          }