code: private Class<?> getKey(Class<?> key)
  	{
  		Class<?> newKey = lookupMap.get(key);
  		if (newKey != null)
  			return newKey;
  
  		for (Class<?> c : internalMap.keySet())
  		{
  			if (c.isAssignableFrom(key))
  			{
  				lookupMap.put(key, c);
  				return c;
  			}
  		}
  		return null;
  	}
docs: Gets the matching inserted key in the map for the specified one.<br>
  If two or more keys match, the first one will always be used.
  
  @param key the key
  @return the key