public PropertyExecutor(IRuntimeLogger r, Introspector i, Type type, String propertyName)
		{
			runtimeLogger = r;
			introspector = i;

			Discover(type, propertyName);
		}
		/// <summary>
		/// Default constructor.
		/// </summary>
		public GetExecutor(IRuntimeLogger r, Introspector i, Type c, String key)
		{
			runtimeLogger = r;
			arguments[0] = key;

			// NOTE: changed from get to get to get_Item - assumption is that get would be converted to an indexer in .Net
			// to keep some resemblance to the Java version, look for "Get" and "get" methods as well (both cases for .Net style and java)
			method = i.GetMethod(c, "get_Item", arguments);
			if (method == null)
			{
				method = i.GetMethod(c, "Get", arguments);
				if (method == null)
				{
					method = i.GetMethod(c, "get", arguments);
				}
			}
		}
		public BooleanPropertyExecutor(IRuntimeLogger r, Introspector i, Type type, String propertyName)
			: base(r, i, type, propertyName)
		{
		}
		public RuntimeInstance()
		{
			// logSystem = new PrimordialLogSystem();
			configuration = new ExtendedProperties();

			// create a VM factory, resource manager
			// and introspector
			vmFactory = new VelocimacroFactory(this);

			// make a new introspector and initialize it
			introspector = new Introspector(this);

			// and a store for the application attributes
			applicationAttributes = new Hashtable();
		}