private static UpdateAction <ManageableMarketDataSnapshot> PrepareSurfaceAddAction(VolatilitySurfaceKey key, ManageableVolatilitySurfaceSnapshot value)
        {
            var valueClone = value.Clone();

            return(new UpdateAction <ManageableMarketDataSnapshot>(
                       delegate(ManageableMarketDataSnapshot snap)
            {
                snap._volatilitySurfaces.Add(key, valueClone.Clone());
                snap.InvokePropertyChanged(new PropertyChangedEventArgs("VolatilitySurfaces"));
            }
                       ));
        }