         this.quality = quality;
 
         // wrap object twice for convenience
-        var wrapper:Sprite = new Sprite();
+        const wrapper :Sprite = new Sprite();
         wrapper.addChild(disp);
         _disp = new Sprite();
         _disp.addChild(wrapper);


    public function toString () :String { return "a " + this.a + " w " + this.w + " h " + this.h; }

    private function recalculateSizeInfo() :void {
        // get normal bounds
        _strictBounds = _disp.getChildAt(0).getBounds(_disp);
        _visualBounds = _strictBounds;
        
        // possibly increase the visual bounds (due to filter action)
        if (_treatAsFiltered) {
            // render to bmd
            var topLeft:Point = new Point(_s_filteredBmd.width / 2 - _strictBounds.width / 2 - _strictBounds.x, _s_filteredBmd.height / 2 - _strictBounds.height / 2 - _strictBounds.y);
            var m :Matrix = new Matrix(1,0,0,1, topLeft.x, topLeft.y);
            _s_filteredBmd.drawWithQuality(_disp, m, null, null, null, true, this.quality);
            
            // calculate visual bounds
            _visualBounds = _s_filteredBmd.getColorBoundsRect(0xff000000, 0x00000000, false);
            _s_filteredBmd.fillRect(_visualBounds, 0x0);

            }
        } else {
            // embed the scale in _disp
            var wrapper :DisplayObject = _disp.getChildAt(0);
            wrapper.scaleX = wrapper.scaleY = value;
            _scale = 1;
            // recalculate size since _disp has changed
