remove warnings: deleting object of abstract class type ... which has non-virtual destructor will cause undefined behaviour [-Wdelete-non-virtual-dtor]
remove enum warnings