@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
    first_name = first_name.replace(';', '')
    last_name = (last_name or '').replace(';', '')
    result = (
        """BEGIN:VCARD
VERSION:4.0
N:{f};{l};;;
FN:{f} {l}
TEL;TYPE=cell;VALUE=uri:tel:+{p}
END:VCARD
"""
        .format(f=first_name, l=last_name, p=phone_number).encode('utf-8'))
    if file is bytes:
        return result
    elif isinstance(file, str):
        file = cls._get_proper_filename(file, 'contact', '.vcard',
            possible_names=[first_name, phone_number, last_name])
        f = open(file, 'wb')
    else:
        f = file
    try:
        f.write(result)
    finally:
        if isinstance(file, str):
            f.close()
    return file
