虚继承完成

just remain things to integrate