Adding ARC and non-ARC version