initial class hierarchy