@Override
	public Value get(Key key)
	{
		if (cache.key != key)
		{
			cache.key = key;
			cache.val = get(root, key);
		}
		return cache.val; // return the previous value if the query is the same
							// as the previous
	}