Adding DuplexExpresion, refactoring DocumentBuilderVisitor
writing new BuildDocumentVisitor from scratch
revert branch changes
intermediate checkin