support subclass only when the header is included