split Document.Document into Document.Machine, Document.Proof and
Document.Visitor