rename file to reduce redundant concepts
api design
extract util methods, restructure macro and line_unit options
move macro attrs to make them more consistent with line-units