always use temp_local_file helper