 		}
 
 		private function createAnimationOutput(animationVO:AnimationVO):Object {
-			var data:Object = { name:animationVO.name.substr(0, -4),// name of the mesh
+			var data:Object = { name:animationVO.name.substr(0, -4),// name of the matrix
 				totalFrames:animationVO.totalFrames,// Total animation frames
 				layers:[]};
 			var n:int = animationVO.timelines.length;

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

		}

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