api macro removed due to inlining