destructors instead of overloading delete