Mmmhhh... you want to allow the strategy to add/remove elements directly through the collection without calling the adder/remover ? Do you prefer that I duplicate strategies (AllowRemoveByValue / AllowRemoveByReference) or do you prefer a setter on the strategy ?