class hierarchy 1st commit