markup nodes need to know about void
remove text node ctor params
template generation is one step closer