sexier input and cleaner gen for objc