@classmethod
def _download_contact(cls, mm_contact, file):
    """
        Specialized version of .download_media() for contacts.
        Will make use of the vCard 4.0 format.
        """
    first_name = mm_contact.first_name
    last_name = mm_contact.last_name
    phone_number = mm_contact.phone_number
    if isinstance(file, str):
        file = cls._get_proper_filename(file, 'contact', '.vcard',
            possible_names=[first_name, phone_number, last_name])
        f = open(file, 'w', encoding='utf-8')
    else:
        f = file
    try:
        first_name = first_name.replace(';', '')
        last_name = (last_name or '').replace(';', '')
        f.write('BEGIN:VCARD\n')
        f.write('VERSION:4.0\n')
        f.write('N:{};{};;;\n'.format(first_name, last_name))
        f.write('FN:{} {}\n'.format(first_name, last_name))
        f.write('TEL;TYPE=cell;VALUE=uri:tel:+{}\n'.format(phone_number))
        f.write('END:VCARD\n')
    finally:
        if isinstance(file, str):
            f.close()
    return file
