end first draft of CodeExpander
put hierarchy in Visitor