Better use
```
if (result.FindObject(cl)) return;
if (!cl->HasDictionary()) result.Add(cl);
```