near objective-c version