more robust destructors