improved ObjC compatibility