code: public synchronized void put(Key key, Value value, CloseableListenable firstUser) {
  		if (map.containsKey(key))
  			throw new IllegalStateException("Cannot put a value in Cache with an existing key: " + key);
  		if (values.containsKey(value))
  			throw new IllegalStateException("Cannot put 2 times the same value in Cache: " + value);
  		Data<Value> data = new Data<Value>();
  		data.value = value;
  		data.lastUsage = System.currentTimeMillis();
  		data.users.add(firstUser);
  		map.put(key, data);
  		values.put(value, data);
  	}
docs: Add the given data to this cache, and add the given first user to it.