Simplify endpoint design by removing macros