drop idea with delegation, but leave SAAbstractCompositeOperation with <SACompositeOperation> protocol