Diagram the various classes needed for creating a contact list (of people and companies) and populating it with random data.
Identify which classes should be instantiated and which are helper classes that have methods you can call directly.
The random addresses should contain random names, salutations, random street numbers, random street names and types (Ave, St., Blvd, etc), random cities/states/zips,
random company names for some, and random job titles, and random phone number sets (e.g., zero to many phones).
This is just a designing exercise, it’s about designing before building.