public void Visit(Specification specification)
    {
      if (IsImplemented(specification))
      {
        return;
      }

      _lastNotImplemented = specification.LinkNotImplementedTo(_lastNotImplemented);
      SetFirstNotImplemented(specification);
    }