code: public Object set(final K1 firstKey, final K2 secondKey, final K3 thirdKey, final V value) {
  		// existence check on inner map1
  		HashMap<K2, HashMap<K3, V>> innerMap1 = map.get(firstKey);
  		
  		if( innerMap1 == null ) {
  			// no inner map, create it
  			innerMap1 = new HashMap<K2, HashMap<K3, V>>();
  			map.put(firstKey, innerMap1);
  		}
  		
  		// existence check on inner map1
  		HashMap<K3, V> innerMap2 = innerMap1.get(secondKey);
  		if( innerMap2 == null ) {
  			// no inner map, create it
  			innerMap2 = new HashMap<K3, V>();
  			innerMap1.put(secondKey, innerMap2);
  		}
  		
  		return innerMap2.put(thirdKey, value);
  	}
docs: Insert a value
  
  @param firstKey
  first key
  @param secondKey
  second key
  @param thirdKey
  third key
  @param value
  the value to be inserted. <tt>null</tt> may be inserted as well.
  @return null or the value the insert is replacing.