If it returns a string, why is its return type `id` and not `NSString`?