framework class hierarchy