define 2 prototypes
move often-used macro
now it really compiles
move useful macro to .h