         constrainCount = new Dictionary(true);
         registers = new Vector.<Number>();
 
-        virtualMeasureProgram = new Vector.<ASTNode>();
+        virtualMeasureProgram = new Program();
         measureProgram = null;
 
         virtualSettersByTarget = new Dictionary();
-        virtualUpdateProgram = new Vector.<SetVirtualProps>();
+        virtualUpdateProgram = new Program();
         updateProgram = null;
         measuredUpdateProgram = null;
     }

        {
        case MIN:
            // target.axis = a
            updateProgram.push(
                new SetRuntimeProp(target, _axis, a)
            );
            break;

        case MID:
            // target.axis = a - target.span * .5
            updateProgram.push(
                new SetRuntimeProp(target, _axis,
                    new Subtract(
                        a,

        dumpAST(dumper, measureProgram, linebuf);

        linebuf.push(DUMP_SEPARATOR, "virtualUpdateProgram:");
        dumpAST(dumper, virtualUpdateProgram, linebuf);

        linebuf.push(DUMP_SEPARATOR, "updateProgram:");
        dumpAST(dumper, updateProgram, linebuf);
