docs: function( model, attr, options ) {
  			options = this.sanitizeOptions( options );
  			this.keyContents = attr;
  			
  			// Notify old 'related' object of the terminated relation
  			_.each( this.getReverseRelations(), function( relation ) {
  					relation.removeRelated( this.instance, options );
  				}, this );
  			
  			// Replace 'this.related' by 'attr' if it is a Backbone.Collection
  			if ( attr instanceof Backbone.Collection ) {
  				this.prepareCollection( attr );
  				this.related = attr;
  			}
  			// Otherwise, 'attr' should be an array of related object ids
  			else {
  				// Re-use the current 'this.related' if it is a Backbone.Collection
  				var coll = this.related instanceof Backbone.Collection ? this.related : new this.collectionType();
  				this.setRelated( this.prepareCollection( coll ) );
  				this.findRelated();
  			}
  			
  			// Notify new 'related' object of the new relation
  			_.each( this.getReverseRelations(), function( relation ) {
  					relation.addRelated( this.instance, options );
  				}, this );
  			
  			var dit = this;
  			Backbone.Relational.eventQueue.add( function() {
  				!options.silentChange && dit.instance.trigger( 'update:' + dit.key, dit.instance, dit.related, options );
  			});
  		}