I think this bit here should be moved to the constructor.  Mostly because the logic would be a lot simpler if it were done when first building `self.objlist`:
```
self.objlist = []
for obj in objlist:
    if isinstance(obj, ChromaticConvolution):
        self.objlist.extend(obj.objlist)
    else:
        self.objlist.append(obj)
```