virtual destructor

forgot to clean mem when exit;
&& make destructor of base class virtual.