public override void LinkReferences()
        {
            // link hierarchical keywords
            foreach (var keyword in _model.All)
            {
                // reference to parent and back reference to children
                if (!string.IsNullOrEmpty(keyword.Csv[2]))
                {
                    keyword.Parent = _model.AllDic[int.Parse(keyword.Csv[2])];
                    keyword.Parent.Items.Add(keyword);
                }

                // csv array is not needed any more
                keyword.Csv = null;
            }

            // add loose keywords
            foreach (var keywordM in _model.All.Where(x => x.Parent == null))
            {
                keywordM.Parent = _model;
                _model.Items.Add(keywordM);
            }

            // group for keywords automatically added from MediaItems metadata
            var aag = _model.Items.OfType <CategoryGroupM>()
                      .SingleOrDefault(x => x.Name.Equals("Auto Added"));

            if (aag == null)
            {
                aag = _categoryGroupsM.GroupCreate("Auto Added", Category.Keywords);
                _model.Items.Insert(0, aag);
            }
            _model.AutoAddedGroup = aag;
        }