Object reusing
Default values for array type.
Use default value for array if there is no existing value.
NSArray class type check with -[isSubclassOfClass:]
Removed protocol add