 		}
 
 		[Inline]
-		private function createFramesInfo(meshIndex:int, polygonName:String,
+		private function createFramesInfo(index:int, polygonName:String,
 		                                  duration:int, motion:Boolean):Array {
 			var result:Array = new Array(duration);
 			if(duration < 2){
 				motion = false;
 			}
-			if(meshIndex > -1){
+			if(index > -1){
 				var t:Number = 1 / (duration - 1);
 				for(var i:int = 0; i < duration; i++){
 					var frameInfoData:FrameInfoData = new FrameInfoData();
-					frameInfoData.meshIndex = meshIndex;
+					frameInfoData.index = index;
 					frameInfoData.polygonName = polygonName;
 					frameInfoData.motion = motion;
 					frameInfoData.t = motion ? t * i : 0;

	}
}
class Layer{
	public var meshes:Array;
	public var frames:Array;

	public function Layer() {
		this.frames = [];
		this.meshes = [];
	}
}

class FrameInfoData{
	public var polygonName:String;
	public var motion:Boolean;
	public var meshIndex:int;
	public var t:Number;
}
				var layer:Layer = new Layer();
				for(var j:int = 0; j < m; j++){
					var frameVO:FrameVO = timelineVO.frames[j];
					//create matrix
					var matrix:MeshMatrix = frameVO.matrix != null ? new MeshMatrix( 0, 0,
							frameVO.matrix.tx,
							frameVO.matrix.ty
							//TODO calculate scale and skew
						) : null;
					var index:int = matrix == null ? -1 : layer.matrixList.push(matrix) - 1;
					var framesArray:Array = this.createFramesInfo(index, frameVO.name,
							frameVO.duration, frameVO.type == "motion");
					layer.framesList = layer.framesList.concat(framesArray);
				}
				data.layers.push(layer);
			}
