handle macros properly and ensure we trim() whitespace