First draft for Objective-C rewrite