 
         var regIndex:uint = regs.nextFreeIndex();
         var measureNode:ASTNode = nodeFactory.measure(target, targetVirtualProp, relative, relativeVirtualProp);
-        var storeNode:ASTNode = new SetVector(regs.regv, regIndex, measureNode);
+        var storeNode:ASTNode = new SetRegister(regs.regv, regIndex, measureNode);
         var calculateNode:ASTNode = nodeFactory.calculate(regIndex, relative, relativeVirtualProp);
 
         virtualMeasureProgram.push(storeNode);

}


class GetVector implements ASTNode
{
    public var vector:Vector.<Number>;
    public var index:uint;
    public function GetVector(vector:Vector.<Number>, index:uint)
    {
        this.vector = vector;
        this.index = index;
    }
    public function eval():*
    {
        return vector[index];
    }
    public function acceptFilter(filter:ASTFilter):ASTNode
    {
        return filter.filterGetVectorNode(this);
    }
    public function filterChildren(filter:ASTFilter):void { }
}


class SetVector implements ASTNode
{
    public var vector:Vector.<Number>;
    public var index:uint;
    public var child:ASTNode;
    public function SetVector(vector:Vector.<Number>, index:uint, child:ASTNode)
    {
        this.vector = vector;
        this.index = index;
        this.child = child;
    }
    public function eval():*
    {
        return vector[index] = child.eval();
    }
    public function acceptFilter(filter:ASTFilter):ASTNode
    {
        return filter.filterSetVectorNode(this);
    }
    public function filterChildren(filter:ASTFilter):void
    {

    {
        return new Add(
            new GetVirtualProp(relativeObject, relativeProperty),
            new ReadOnly(new GetRegister(regv, registerIndex))
        );
    }
}
