Code improvement + "exception safe" destructor