add macros and repetition
added one more macro on EnumConstList
context independent macros don't work well, switching to context dependent macros.