gras: simplfy factory w/ macros and namespace