Final version. More safety with destructors