public void SetUp()
        {
            _Un = new MyObject("a", 0);
            _Deux = new MyObject("b", 1);
            _Trois = new MyObject("c", 2);
            _Quatre = new MyObject("d", 3);
            _Cinq = new MyObject("e", 4);

            _DecoratedOriginalElements = new List<MyObject>();
            _DecoratedOriginalElements.Add(_Un); _DecoratedOriginalElements.Add(_Deux); _DecoratedOriginalElements.Add(_Trois); _DecoratedOriginalElements.Add(_Quatre); _DecoratedOriginalElements.Add(_Cinq);

            _ListForComparison = new List<IObject>();
            _ListForComparison.AddRange(_DecoratedOriginalElements);

            _OriginalElements = new List<MyObject>();
            _OriginalElements.AddRange(_DecoratedOriginalElements);

            _SCMC = SafeCollectionModifierConverter<MyObject, IObject>.GetSafeCollectionModifierConverterDerived<MyObject, IObject>(_DecoratedOriginalElements);
            _IML = _SCMC;
            _ChangedList = _IML.MofifiableCollection;

            _EL = new EventListener<EventArgs>();

            _SCMC.OnCommit += _EL.SingleElementChangedListener;

        }
        internal AlbumModifier(Album iAM, bool resetCorruptedImage, IImportContext IT)
        {
            _AM = iAM;
            _IT = IT;
   
            _AlbumImages = iAM.RawImages;
            _AlbumImages.MofifiableCollection.CollectionChanged += OnImagesChanged;

            _Artists = iAM.GetArtistModifier();
            _Artists.MofifiableCollection.CollectionChanged += MofifiableCollection_CollectionChanged;
            _Artists.OnCommit += new EventHandler<EventArgs>(_Artists_OnCommit);

            _OldArtist = _Artists.MofifiableCollection.ToList();

            if (resetCorruptedImage)
            {
                Stack<int> IndexToRemove = new Stack<int>();
                for (int i=0;i<_AlbumImages.MofifiableCollection.Count;i++)
                {
                    if (_AlbumImages.MofifiableCollection[i] == null)
                        IndexToRemove.Push(i);
                }

                while (IndexToRemove.Count > 0)
                {
                    _AlbumImages.MofifiableCollection.RemoveAt(IndexToRemove.Pop());
                }

                foreach (IAlbumPicture pic in (from im in _AlbumImages.MofifiableCollection where im.IsBroken select im).ToList())
                {
                    Images.Remove(pic);
                }
            }
        }