add two virtual classes
delete some no use file