fixed component destroy to call destroy method of subclasses