code: function(id, listener){
  				_.assertLength(arguments, 2)
  
  				//console.log('listening by object: ' + id)
  
  				//if(_.isInt(id)){
  					var list = lazyArray(byObject, id)
  					list.push(listener);
  				/*}else{
  					//TODO later rework the way edit updates come in the first place - this is a temporary bridge
  					//_.errout('TODO')
  					var list = lazyArray(byObject, id+'')
  					var innerId = id
  					list.push(function(typeCode, id, editPath, op, edit, syncId, editId){
  						var found
  						//console.log('filtering(' + JSON.stringify(innerId) + '): ' + JSON.stringify(arguments))
  						for(var i=0;i<editPath.length;++i){
  							var e = editPath[i]
  							if(e.op === editCodes.selectObject || e.op === editCodes.reselectObject){
  								if(e.edit.id === innerId.inner){
  									found = i
  									break;
  								}
  							}
  						}
  						//console.log('found: ' + found)
  						if(found !== undefined && editPath.length > found+1){
  							listener(typeCode, id, editPath.slice(found+1), op, edit, syncId, editId)
  						}
  					});
  				}*/
  				//console.log('byObject: ' + list.length)
  				//console.log(new Error().stack)
  			}
docs: reports any edits that happen to the given object (including to other normalized objects by FK) cb(typeCode, id, path, edit)