code: func (table *RegommendTable) Value(key interface{}) (*RegommendItem, error) {
  	table.RLock()
  	r, ok := table.items[key]
  	loadData := table.loadData
  	table.RUnlock()
  
  	if ok {
  		return r, nil
  	}
  
  	// Item doesn't exist in engine. Try and fetch it with a data-loader.
  	if loadData != nil {
  		item := loadData(key)
  		if item != nil {
  			table.Add(key, item.data)
  			return item, nil
  		}
  
  		return nil, errors.New("Key not found and could not be loaded into engine")
  	}
  
  	return nil, errors.New("Key not found in engine")
  }
docs: // Value gets an item from the engine and mark it to be kept alive.