Whitespace
refactor as reusable generator
whitespace
added macro
cleanup