add macros, helpers and API changed