inherit and instantiation