// create a new context object by combinging the current one and o 
		public virtual Context createContext(Object o)
		{
			ExpressionContext c = new ExpressionContext(m_cache);
			c.Context = o;
			c.createPseudoVariables(m_createIfMissing);
			c.m_namedPath.AddRange(m_namedPath);
			return c;
		}
		public virtual Object evaluate(ValueExp e)
		{
			// evaluate away...
			ExpressionContext c = new ExpressionContext(this);
			return e.evaluate(c);
		}