initial class hierarchy documentation