play with build system, use more macros