some compilers complain about: Extraneous semicolon. (extrasemi) when macro is used, so drop those semicolons