cache inheritance
abstract class inheritance