add inherit, composition, virtual class