public void InsertPrevious(InRomNode node)
        {
            if (PreviousNodeAddress == null)
            {
                PreviousNodeAddress = node.Address;

                if (node.NextNodeAdress != Address)
                {
                    node.InsertNext(this);
                }
            }
            else
            {
                var previousNode = Load <InRomNode>(PreviousNodeAddress);
                node.PreviousNodeAddress = previousNode.Address;
                PreviousNodeAddress      = node.Address;

                if (previousNode.NextNodeAdress != node.Address)
                {
                    previousNode.InsertNext(node);
                }
            }
        }
        public void InsertNext(InRomNode node)
        {
            if (NextNodeAdress == null)
            {
                NextNodeAdress = node.Address;

                if (node.PreviousNodeAddress != Address)
                {
                    node.InsertPrevious(this);
                }
            }
            else
            {
                var nextNode = Load <InRomNode>(NextNodeAdress);
                node.NextNodeAdress = nextNode.Address;
                NextNodeAdress      = node.Address;

                if (nextNode.PreviousNodeAddress != node.Address)
                {
                    nextNode.InsertPrevious(node);
                }
            }
        }