refactors to use initialize(), create() methods for Contact, Address and PhoneNumbers, and also createAddress() and createPhoneNumbers() on the Contact object