Simplify header visitor via visiting attribute and passing context
Simplify extension via use of MERGE(left, right) function