code: function DOMNode(agent, payload) {
          this.agent = agent;
          this.children = [];
          this.attributes = {};
  
          // set the payload
          if (typeof payload === "string") {
              payload = DOMHelpers.extractPayload(payload);
          }
          if (payload) {
              this.setPayload(payload);
          }
          this.agent.addNode(this);
      }
docs: Constructor
  @param {DOMAgent} the agent is passed to avoid circular relationships
  @param {DOM.Node} node payload