class hierarchy update