SpriteFactory rework