code: func (table *RegommendTable) Add(key interface{}, data map[interface{}]float64) *RegommendItem {
  	item := CreateRegommendItem(key, data)
  
  	// Add item to engine.
  	table.Lock()
  	table.items[key] = &item
  
  	// engine values so we don't keep blocking the mutex.
  	addedItem := table.addedItem
  	table.Unlock()
  
  	// Trigger callback after adding an item to engine.
  	if addedItem != nil {
  		addedItem(&item)
  	}
  
  	return &item
  }
docs: // Add adds a key/value pair to the engine.
  // Parameter key is the item's engine-key.
  // Parameter data is the item's value.