weak self not allowed while deallocing