What I mean is: [[[className componentsSeparatedByString: @":"] reverseObjectEnumerator] allObjects] this creates an array, then mutableCopy creates another array mutable but we do not really car because we want to pass this into [self buildClasses:classes begin:1]. Wo why creating this second mutable array?