add dealloc and remove weak keyword