whole_func_string: function compareDirFiles(parentId, old_children, descendants){
      var changes = [],
          not_found = object.extend({}, old_children);
      
      for(var id in descendants) {
          if(descendants[id].ancestors[ descendants[id].ancestors.length-1 ] === parentId) { // compare only direct children
              
              if(!old_children[id]) { // not found in current children - created
                  changes.push({ event:'created', file:descendants[id] });
                  old_children[id] = descendants[id];
              }
              else if(old_children[id].modifiedDT < descendants[id].modifiedDT) { // found and updated
                  changes.push({ event:'updated', file:descendants[id] });
                  old_children[id] = descendants[id];
                  delete not_found[id];
              }
              else { // file found, not not updated
                  delete not_found[id];
              }
          }
      }
      
      // removed files
      for(var id in not_found) {
          changes.push({ event:'removed', file:not_found[id] });
          delete old_children[id];
      }
      
      return changes;
  }
func_code_string: function compareDirFiles(parentId, old_children, descendants){
      var changes = [],
          not_found = object.extend({}, old_children);
      
      for(var id in descendants) {
          if(descendants[id].ancestors[ descendants[id].ancestors.length-1 ] === parentId) { // compare only direct children
              
              if(!old_children[id]) { // not found in current children - created
                  changes.push({ event:'created', file:descendants[id] });
                  old_children[id] = descendants[id];
              }
              else if(old_children[id].modifiedDT < descendants[id].modifiedDT) { // found and updated
                  changes.push({ event:'updated', file:descendants[id] });
                  old_children[id] = descendants[id];
                  delete not_found[id];
              }
              else { // file found, not not updated
                  delete not_found[id];
              }
          }
      }
      
      // removed files
      for(var id in not_found) {
          changes.push({ event:'removed', file:not_found[id] });
          delete old_children[id];
      }
      
      return changes;
  }
func_documentation_string: comparing old dir children and new dir children - executed on change event
  @param {String} parentId directory id
  @param {Object} old_children old directory children
  @param {Object} descendants directory descendants
  @returns {Array}  recognized changes