code: function(files) {
  				var l = files.length,
  					inSearch = fm.searchStatus.state > 1,
  					curCmd = fm.getCommand(fm.currentReqCmd) || {},
  					hash, n, ndx, found;
  
  				// removed cwd
  				if (!fm.cwd().hash && !curCmd.noChangeDirOnRemovedCwd) {
  					$.each(cwdParents.reverse(), function(i, h) {
  						if (fm.file(h)) {
  							found = true;
  							fm.one(fm.currentReqCmd + 'done', function() {
  								!fm.cwd().hash && fm.exec('open', h);
  							});
  							return false;
  						}
  					});
  					// fallback to fm.roots[0]
  					!found && !fm.cwd().hash && fm.exec('open', fm.roots[Object.keys(fm.roots)[0]]);
  					return;
  				}
  				
  				while (l--) {
  					hash = files[l];
  					if ((n = $('#'+fm.cwdHash2Id(hash))).length) {
  						try {
  							n.remove();
  							--bufferExt.renderd;
  						} catch(e) {
  							fm.debug('error', e);
  						}
  					} else if ((ndx = index(hash)) !== -1) {
  						buffer.splice(ndx, 1);
  					}
  					selectedFiles[hash] && delete selectedFiles[hash];
  					if (inSearch) {
  						if ((ndx = $.inArray(hash, cwdHashes)) !== -1) {
  							cwdHashes.splice(ndx, 1);
  						}
  					}
  				}
  				
  				inSearch && fm.trigger('cwdhasheschange', cwdHashes);
  				
  				if (list) {
  					setColwidth();
  					fixTableHeader({fitWidth: ! colWidth});
  				}
  			}
docs: fm.time('cwdLoad');