macros todo
in c/c++
scoping
convention for work-around