Support Both ARC and non-ARC