properly override finalize(), ensure super gets called, volatile handle vars