Moving implementation details to a macro