@SuppressWarnings("unchecked")
	public Object remove(String key) {
		if ((null == whoisMap) || Utility.isEmpty( key ))
			return null;

		String[] keys = key.split( "\\." );
		String sKey = keys[0];
		Object sObj = whoisMap.get( sKey );

		if (null == sObj)
			return null;

		String rightKey = "";
		int pos = key.indexOf( '.' );
		if (pos != -1)
			rightKey = key.substring( pos + 1 );

		if (keys.length > 1 && sObj instanceof Map) {
			return new WhoisMap( ( Map<String, Object> ) sObj ).remove( rightKey );
		}

		if (Utility.isEmpty( rightKey ))
			whoisMap.remove( sKey );

		return sObj;
	}