     }
 
     private function getStarlingTexture (symbol :String) :Texture {
-        if (!_imageCreators.hasOwnProperty(symbol)) {
-            return null;
-        }
-        return ImageCreator(_imageCreators[symbol]).texture;
+        var imageCreator :ImageCreator = _creators[symbol] as ImageCreator;
+        return (imageCreator != null ? imageCreator.texture : null);
     }
 
     protected const _maxDrawn :Map = ValueComputingMap.newMapOf(String, calcMaxDrawn);
     protected var _baseTextures :Vector.<Texture> = new <Texture>[];
-    protected var _imageCreators :Dictionary = new Dictionary(); //<name, ImageCreator>
+    protected var _creators :Dictionary = new Dictionary(); // <name, ImageCreator|MovieCreator>
     protected var _lib :XflLibrary;
 }
 }
-
-import flash.geom.Point;
-
-import starling.display.DisplayObject;
-import starling.display.Image;
-import starling.textures.Texture;
-
-class ImageCreator {
-    public var texture :Texture;
-    public var origin :Point;
-    public var symbol :String;
-
-    public function ImageCreator (texture :Texture, origin :Point, symbol :String) {
-        this.texture = texture;
-        this.origin = origin;
-        this.symbol = symbol;
-    }
-
-    public function create () :DisplayObject {
-        const image :Image = new Image(texture);
-        image.pivotX = origin.x;
-        image.pivotY = origin.y;
-        image.name = symbol;
-        return image;
-    }
-}


        const atlases :Vector.<Atlas> = TexturePacker.withLib(lib).createAtlases();
        for each (var atlas :Atlas in atlases) {
            var mold :AtlasMold = atlas.toMold();
            var baseTexture :Texture = AtlasUtil.toTexture(atlas);
            _baseTextures.push(baseTexture);
            for each (var atlasTexture :AtlasTextureMold in mold.textures) {
                var tex :Texture = Texture.fromTexture(baseTexture, atlasTexture.bounds);
                var creator :ImageCreator =
                    new ImageCreator(tex, atlasTexture.origin, atlasTexture.symbol);
                _imageCreators[atlasTexture.symbol] = creator;
            }
        }
    }

    public function get imageSymbols () :Vector.<String> {

    public function getMaxDrawn (id :String) :int { return _maxDrawn.get(id); }

    protected function loadTexture (symbol :String) :DisplayObject {
        return ImageCreator(_creators[symbol]).create(this);
    }

    protected function calcMaxDrawn (id :String) :int {
