more file processing functionality