macros working
working toward open/closed Core