code: func (l PrimaryLayer) Put(k string, k2 ServiceInfo, finalizers ...func()) {
  	l.lock.Lock()
  	l.store.Put(k, func(oldLayer SecondaryLayer, exists bool) (newLayer SecondaryLayer, write bool) {
  		if !exists {
  			oldLayer = NewSecondaryLayer(l.cmp2)
  		}
  		oldLayer.Put(k2, finalizers...)
  		return oldLayer, true
  	})
  	l.lock.Unlock()
  }
docs: // Put adds keys and callbacks to the secondary layer, which will be created
  // if not yet existing.