Some staff are paid employees. They have a social security number and a payrate in addition to name, address and phone.
There are also volunteers. The volunteers have a name, address and phone.
The paid employees fall into two categories. The executive employees have a name, address and phone and a bonus value.
Hourly employees have a name, address and phone and the number of hours worked.
Our problem is to represent a collection of the staff members and calculate the pay of the staff.