use NSMutableSet instead of NSMutableArray
refined codes