get some progress, now it can remove deconstructor, remove pure virtual
= 0, remove non-public members