you should at least rework `extra_file` to use `extract_archive` internally?

otherwise we'll never get rid of `extract_file`, and we'll have to maintain two functions doing the same thing but differently...