cannot throw exception in destructor, FUCK GCC