fixed NSRangeException