config macro and construction fns done perhaps