that's weird because when I didn't have the constructor/destructor the compiler complained about possible undefined behavior without a virtual destructor