add vcard download, refactoring