refine val macros