public void Remove(CircularLinkedListNode <T> node)
        {
            VerifyReferencedNode(node);
            count--;
            if (count == 0)
            {
                first = null;
            }

            if (node == first)
            {
// ReSharper disable PossibleNullReferenceException
                first = first.forward;
            }
// ReSharper restore PossibleNullReferenceException

            version++;
            node.Detach();
        }