Work in progress Objective-C version.