protected override MutableObject Mutate(MutableObject mutable) { foreach (var entry in IndexTarget.GetEntries(mutable)) { var groupId = GroupId.GetValue(entry); var index = (DataShare.ContainsKey(groupId) ? DataShare[groupId] : 0); if (groupId != "") { DataShare[groupId] = index + 1; } IndexTarget.SetValue(index, entry); } return(mutable); }