adding back dealloc implementation