| Index: filter/featureBreaker/mc.go
 | 
| diff --git a/filter/featureBreaker/mc.go b/filter/featureBreaker/mc.go
 | 
| index 42b673b28f5b4ed0d7aadfd3a97a2d02a777eaa8..9a798a983dc8a2d1f49c7b700cf2d2e25e69cb2e 100644
 | 
| --- a/filter/featureBreaker/mc.go
 | 
| +++ b/filter/featureBreaker/mc.go
 | 
| @@ -13,80 +13,36 @@ import (
 | 
|  type mcState struct {
 | 
|  	*state
 | 
|  
 | 
| -	mc.Interface
 | 
| +	mc.RawInterface
 | 
|  }
 | 
|  
 | 
| -func (m *mcState) Get(key string) (ret mc.Item, err error) {
 | 
| -	err = m.run(func() (err error) {
 | 
| -		ret, err = m.Interface.Get(key)
 | 
| -		return
 | 
| -	})
 | 
| -	return
 | 
| -}
 | 
| -
 | 
| -func (m *mcState) GetMulti(keys []string) (ret map[string]mc.Item, err error) {
 | 
| -	err = m.run(func() (err error) {
 | 
| -		ret, err = m.Interface.GetMulti(keys)
 | 
| -		return
 | 
| -	})
 | 
| -	return
 | 
| -}
 | 
| -
 | 
| -func (m *mcState) Add(item mc.Item) error {
 | 
| -	return m.run(func() error { return m.Interface.Add(item) })
 | 
| -}
 | 
| -
 | 
| -func (m *mcState) Set(item mc.Item) error {
 | 
| -	return m.run(func() error { return m.Interface.Set(item) })
 | 
| -}
 | 
| -
 | 
| -func (m *mcState) Delete(key string) error {
 | 
| -	return m.run(func() error { return m.Interface.Delete(key) })
 | 
| +func (m *mcState) GetMulti(keys []string, cb mc.RawItemCB) error {
 | 
| +	return m.run(func() error { return m.RawInterface.GetMulti(keys, cb) })
 | 
|  }
 | 
|  
 | 
| -func (m *mcState) CompareAndSwap(item mc.Item) error {
 | 
| -	return m.run(func() error { return m.Interface.CompareAndSwap(item) })
 | 
| +func (m *mcState) AddMulti(items []mc.Item, cb mc.RawCB) error {
 | 
| +	return m.run(func() error { return m.RawInterface.AddMulti(items, cb) })
 | 
|  }
 | 
|  
 | 
| -func (m *mcState) AddMulti(items []mc.Item) error {
 | 
| -	return m.run(func() error { return m.Interface.AddMulti(items) })
 | 
| +func (m *mcState) SetMulti(items []mc.Item, cb mc.RawCB) error {
 | 
| +	return m.run(func() error { return m.RawInterface.SetMulti(items, cb) })
 | 
|  }
 | 
|  
 | 
| -func (m *mcState) SetMulti(items []mc.Item) error {
 | 
| -	return m.run(func() error { return m.Interface.SetMulti(items) })
 | 
| +func (m *mcState) DeleteMulti(keys []string, cb mc.RawCB) error {
 | 
| +	return m.run(func() error { return m.RawInterface.DeleteMulti(keys, cb) })
 | 
|  }
 | 
|  
 | 
| -func (m *mcState) DeleteMulti(keys []string) error {
 | 
| -	return m.run(func() error { return m.Interface.DeleteMulti(keys) })
 | 
| +func (m *mcState) CompareAndSwapMulti(items []mc.Item, cb mc.RawCB) error {
 | 
| +	return m.run(func() error { return m.RawInterface.CompareAndSwapMulti(items, cb) })
 | 
|  }
 | 
|  
 | 
|  func (m *mcState) Flush() error {
 | 
| -	return m.run(func() error { return m.Interface.Flush() })
 | 
| -}
 | 
| -
 | 
| -func (m *mcState) CompareAndSwapMulti(items []mc.Item) error {
 | 
| -	return m.run(func() error { return m.Interface.CompareAndSwapMulti(items) })
 | 
| -}
 | 
| -
 | 
| -func (m *mcState) Increment(key string, delta int64, initialValue uint64) (newValue uint64, err error) {
 | 
| -	err = m.run(func() (err error) {
 | 
| -		newValue, err = m.Interface.Increment(key, delta, initialValue)
 | 
| -		return
 | 
| -	})
 | 
| -	return
 | 
| -}
 | 
| -
 | 
| -func (m *mcState) IncrementExisting(key string, delta int64) (newValue uint64, err error) {
 | 
| -	err = m.run(func() (err error) {
 | 
| -		newValue, err = m.Interface.IncrementExisting(key, delta)
 | 
| -		return
 | 
| -	})
 | 
| -	return
 | 
| +	return m.run(m.RawInterface.Flush)
 | 
|  }
 | 
|  
 | 
|  func (m *mcState) Stats() (ret *mc.Statistics, err error) {
 | 
|  	err = m.run(func() (err error) {
 | 
| -		ret, err = m.Interface.Stats()
 | 
| +		ret, err = m.RawInterface.Stats()
 | 
|  		return
 | 
|  	})
 | 
|  	return
 | 
| @@ -95,7 +51,7 @@ func (m *mcState) Stats() (ret *mc.Statistics, err error) {
 | 
|  // FilterMC installs a counter mc filter in the context.
 | 
|  func FilterMC(c context.Context, defaultError error) (context.Context, FeatureBreaker) {
 | 
|  	state := newState(defaultError)
 | 
| -	return mc.AddFilters(c, func(ic context.Context, rds mc.Interface) mc.Interface {
 | 
| +	return mc.AddRawFilters(c, func(ic context.Context, rds mc.RawInterface) mc.RawInterface {
 | 
|  		return &mcState{state, rds}
 | 
|  	}), state
 | 
|  }
 | 
| 
 |