private List<SnapshotFile> trainFiles(List<SnapshotFile> files) {
		
		for (int i=0; i<this.training; i++) {
			nextSnapshot(files);
		}
		
		// After the training, it is necessary to add modify files
		// for the correct execution of the dataset.
		List<SnapshotFile> initialFiles = new ArrayList<SnapshotFile>();
		for (SnapshotFile file : files) {
			State state = file.getState();
			if (!(state instanceof New)) {
				State newState = new New();
				SnapshotFile initial = new SnapshotFile(file.getFilename(), file.getSize(), newState);
				initialFiles.add(initial);
			}
		}
		
		return initialFiles;
	}