code: func NewNode(cfg NodeConfig, conn HAConn, engine Engine) *Node {
  	n := &Node{
  		NodeConfig:           cfg,
  		conn:                 conn,
  		engine:               engine,
  		lastMasterAdvertTime: time.Now(),
  		errChannel:           make(chan error),
  		recvChannel:          make(chan *advertisement, 20),
  		stopSenderChannel:    make(chan seesaw.HAState),
  		shutdownChannel:      make(chan bool),
  	}
  	n.setState(seesaw.HABackup)
  	n.resetMasterDownInterval(cfg.MasterAdvertInterval)
  	return n
  }
docs: // NewNode creates a new Node with the given NodeConfig and HAConn.