code: func (d *Driver) Remove(id string) error {
  	logrus.Debugf("lcowdriver: remove: id %s", id)
  	tmpID := fmt.Sprintf("%s-removing", id)
  	tmpLayerPath := d.dir(tmpID)
  	layerPath := d.dir(id)
  
  	logrus.Debugf("lcowdriver: remove: id %s: layerPath %s", id, layerPath)
  
  	// Unmount all the layers
  	err := d.Put(id)
  	if err != nil {
  		logrus.Debugf("lcowdriver: remove id %s: failed to unmount: %s", id, err)
  		return err
  	}
  
  	// for non-global case just kill the vm
  	if !d.globalMode {
  		if err := d.terminateServiceVM(id, fmt.Sprintf("Remove %s", id), true); err != nil {
  			return err
  		}
  	}
  
  	if err := os.Rename(layerPath, tmpLayerPath); err != nil && !os.IsNotExist(err) {
  		return err
  	}
  
  	if err := os.RemoveAll(tmpLayerPath); err != nil {
  		return err
  	}
  
  	logrus.Debugf("lcowdriver: remove: id %s: layerPath %s succeeded", id, layerPath)
  	return nil
  }
docs: // Remove unmounts and removes the dir information.