added OpNodeBase and an intermediate between the interface OpNode and
the implementation Result class (plus cleanup and comments)
repeated the OpNodeBase refactoring to DomainResult and JavaDomainResult