macros refactor to use var ||= expr
new objc macro to export methods