use finalize to dealloc