lint fixes
diff --git a/gulpfile.js b/gulpfile.js
index 463ac5f..ae3a2af 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -121,4 +121,43 @@
         .pipe(wrap('(function(window){"use strict";<%= contents %>}(window));'))
         .pipe(gzip({ append: true }))
         .pipe(gulp.dest('build/'));
+});
+
+gulp.task('concatPlayer', function() {
+    gulp.src([
+            'player/js/main.js',
+            'player/js/3rd_party/transformation-matrix.js',
+            'player/js/3rd_party/canvasPoly.js',
+            'player/js/utils/MatrixManager.js',
+            'player/js/utils/animationFramePolyFill.js',
+            'player/js/utils/common.js',
+            'player/js/utils/canvasPolyFill.js',
+            'player/js/utils/functionExtensions.js',
+            'player/js/utils/bez.js',
+            'player/js/utils/DataManager.js',
+            'player/js/renderers/SVGRenderer.js',
+            'player/js/renderers/CanvasRenderer.js',
+            'player/js/mask.js',
+            'player/js/elements/BaseElement.js',
+            'player/js/elements/CompElement.js',
+            'player/js/elements/ImageElement.js',
+            'player/js/elements/ShapeElement.js',
+            'player/js/elements/ShapeItemElement.js',
+            'player/js/elements/SolidElement.js',
+            'player/js/elements/TextElement.js',
+            'player/js/elements/canvasElements/CVBaseElement.js',
+            'player/js/elements/canvasElements/CVCompElement.js',
+            'player/js/elements/canvasElements/CVImageElement.js',
+            'player/js/elements/canvasElements/CVShapeElement.js',
+            'player/js/elements/canvasElements/CVShapeItemElement.js',
+            'player/js/elements/canvasElements/CVSolidElement.js',
+            'player/js/elements/canvasElements/CVTextElement.js',
+            'player/js/elements/canvasElements/CVMaskElement.js',
+            'player/js/animation/AnimationManager.js',
+            'player/js/animation/AnimationItem.js',
+            'player/js/module.js'
+        ])
+        .pipe(concat('concat.js', {newLine: '\r\n'}))
+        .pipe(wrap('\'use strict\';\r\n(function(){\r\n<%= contents %>\r\n}());'))
+        .pipe(gulp.dest('build/player/'))
 });
\ No newline at end of file
diff --git a/parser/ShapesParser.js b/parser/ShapesParser.js
index 1691f44..45890c1 100644
--- a/parser/ShapesParser.js
+++ b/parser/ShapesParser.js
@@ -215,6 +215,9 @@
         var ob, prop;
         for(i=0;i<len;i+=1){
             prop = iteratable.property(i+1);
+            if(!prop.enabled){
+                continue;
+            }
             var itemType = getItemType(prop.matchName);
             if(itemType == 'sh'){
                 ob = {};
diff --git a/player/index.html b/player/index.html
index 54635be..ec01d29 100644
--- a/player/index.html
+++ b/player/index.html
@@ -36,6 +36,6 @@
     <!-- endbuild -->
 </head>
 <body style="background-color:#666; margin: 0px;height: 100%; font-family: sans-serif;font-size: 10px">
-<div style="width:600px;height:300px;background-color:#000;display:inline-block" class="bodymovin" data-bm-path="exports/gear" data-bm-type="svg" data-bm-loop="true" data-bm-prerender="true"></div>
+<div style="width:600px;height:300px;background-color:#000;display:inline-block" class="bodymovin" data-bm-path="exports/gear" data-bm-type="svg" data-bm-loop="false" data-bm-prerender="true"></div>
 </body>
 </html>
diff --git a/player/js/3rd_party/canvasPoly.js b/player/js/3rd_party/canvasPoly.js
index 316e23d..24452a4 100644
--- a/player/js/3rd_party/canvasPoly.js
+++ b/player/js/3rd_party/canvasPoly.js
@@ -9,7 +9,7 @@
  * A polyfill for HTML Canvas features, including
  * Path2D support.
  */
-if (CanvasRenderingContext2D.prototype.ellipse == undefined) {
+if (CanvasRenderingContext2D.prototype.ellipse === undefined) {
     CanvasRenderingContext2D.prototype.ellipse = function(x, y, radiusX, radiusY, rotation, startAngle, endAngle, antiClockwise) {
         this.save();
         this.translate(x, y);
@@ -17,7 +17,7 @@
         this.scale(radiusX, radiusY);
         this.arc(0, 0, 1, startAngle, endAngle, antiClockwise);
         this.restore();
-    }
+    };
 }
 
 if (typeof Path2D !== 'function' || typeof Path2D.prototype.addPath !== 'function' || typeof Path2D.prototype.ellipse !== 'function') {
@@ -28,7 +28,7 @@
 
         function Path_(arg) {
             this.ops_ = [];
-            if (arg == undefined) {
+            if (arg === undefined) {
                 return;
             }
             if (typeof arg == 'string') {
@@ -42,7 +42,7 @@
             } else {
                 throw 'Error: ' + typeof arg + 'is not a valid argument to Path';
             }
-        };
+        }
 
         // TODO(jcgregorio) test for arcTo and implement via something.
 
@@ -72,7 +72,7 @@
             Path_.prototype[name] = createFunction(name);
         }
 
-        Path_.prototype['addPath'] = function(path, tr) {
+        Path_.prototype.addPath = function(path, tr) {
             var hasTx = false;
             if (tr) {
                 hasTx = true;
@@ -83,7 +83,7 @@
             if (hasTx) {
                 this.ops_.push({type: 'restore', args: []});
             }
-        }
+        };
 
         var original_fill = CanvasRenderingContext2D.prototype.fill;
         var original_stroke = CanvasRenderingContext2D.prototype.stroke;
@@ -101,7 +101,7 @@
             } else {
                 original_fill.apply(this, arguments);
             }
-        }
+        };
 
         CanvasRenderingContext2D.prototype.stroke = function(arg) {
             if (arg instanceof Path_) {
@@ -114,7 +114,7 @@
             } else {
                 original_stroke.call(this);
             }
-        }
+        };
 
         CanvasRenderingContext2D.prototype.clip = function(arg) {
             if (arg instanceof Path_) {
@@ -131,7 +131,7 @@
             } else {
                 original_clip.apply(this, arguments);
             }
-        }
+        };
 
         // Set up externs.
         Path2D = Path_;
diff --git a/player/js/3rd_party/transformation-matrix.js b/player/js/3rd_party/transformation-matrix.js
index a1ae8ed..4b046b2 100644
--- a/player/js/3rd_party/transformation-matrix.js
+++ b/player/js/3rd_party/transformation-matrix.js
@@ -109,7 +109,7 @@
      * @param {number} angle - angle in radians
      */
     rotate: function(angle) {
-        if(angle == 0){
+        if(angle === 0){
             return this;
         }
         this.cos = Math.cos(angle);
@@ -571,8 +571,9 @@
             }
         }
         else {
-            for(; p = points[i]; i++) {
-                mxPoints.push(this.applyToPoint(p.x, p.y));
+            l = points.length;
+            for(i = 0; i<l; i++) {
+                mxPoints.push(this.applyToPoint(points[i].x, points[i].y));
             }
         }
 
@@ -635,7 +636,7 @@
      * @returns {boolean}
      */
     isInvertible: function() {
-        return !this._q(this.determinant(), 0)
+        return !this._q(this.determinant(), 0);
     },
 
     /**
diff --git a/player/js/animation/AnimationItem.js b/player/js/animation/AnimationItem.js
index 22a3c0c..aad5c07 100644
--- a/player/js/animation/AnimationItem.js
+++ b/player/js/animation/AnimationItem.js
@@ -96,7 +96,7 @@
     params.animType = wrapperAttributes.getNamedItem('data-anim-type') ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') ? wrapperAttributes.getNamedItem('bm-type').value :  'canvas';
 
     var loop = wrapperAttributes.getNamedItem('data-anim-loop') ? wrapperAttributes.getNamedItem('data-anim-loop').value :  wrapperAttributes.getNamedItem('data-bm-loop') ? wrapperAttributes.getNamedItem('data-bm-loop').value :  wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';
-    if(loop == ''){
+    if(loop === ''){
     }else if(loop === 'false'){
         params.loop = false;
     }else if(loop === 'true'){
@@ -137,7 +137,7 @@
 
 AnimationItem.prototype.checkLoaded = function () {
     this.renderer.buildStage(this.container, this.layers);
-    if (this.pendingElements == 0) {
+    if (this.pendingElements === 0) {
         if(this.prerenderFramesFlag){
             this.prerenderFrames(0);
             dataManager.renderFrame(this.animationID,this.currentFrame);
diff --git a/player/js/elements/ShapeItemElement.js b/player/js/elements/ShapeItemElement.js
index 8fc6db5..058fa18 100644
--- a/player/js/elements/ShapeItemElement.js
+++ b/player/js/elements/ShapeItemElement.js
@@ -9,89 +9,117 @@
 
 ShapeItemElement.prototype.searchShapes = function(arr){
     var i, len = arr.length - 1;
+    var j, jLen;
     var pathNode;
+    var ownArrays = [];
     for(i=len;i>=0;i-=1){
         if(arr[i].ty == 'fl' || arr[i].ty == 'st'){
-            pathNode = document.createElementNS(svgNS, "path");
-            this.shape.appendChild(pathNode);
             this.stylesList.push({
-                path: pathNode,
+                elements: [],
                 type: arr[i].ty,
                 d: ''
-            })
+            });
+            arr[i].style = this.stylesList[this.stylesList.length - 1];
+            ownArrays.push(arr[i].style);
         }else if(arr[i].ty == 'gr'){
             this.searchShapes(arr[i].it);
+        }else if(arr[i].ty == 'tr'){
+            arr[i].matrix = new Matrix();
+        }else if(arr[i].ty == 'sh'){
+            arr[i].elements = [];
+            jLen = this.stylesList.length;
+            for(j=0;j<jLen;j+=1){
+                if(!this.stylesList[j].closed){
+                    pathNode = document.createElementNS(svgNS, "path");
+                    arr[i].elements.push(pathNode);
+                    this.shape.appendChild(pathNode);
+                    this.stylesList[j].elements.push(pathNode);
+                }
+            }
+
+        }else if(arr[i].ty == 'rc'){
+            arr[i].elements = [];
+            jLen = this.stylesList.length;
+            for(j=0;j<jLen;j+=1){
+                if(!this.stylesList[j].closed){
+                    pathNode = document.createElementNS(svgNS, "rect");
+                    arr[i].elements.push(pathNode);
+                    this.shape.appendChild(pathNode);
+                    this.stylesList[j].elements.push(pathNode);
+                }
+            }
+
+        }else if(arr[i].ty == 'el'){
+            arr[i].elements = [];
+            jLen = this.stylesList.length;
+            for(j=0;j<jLen;j+=1){
+                if(!this.stylesList[j].closed){
+                    pathNode = document.createElementNS(svgNS, "ellipse");
+                    arr[i].elements.push(pathNode);
+                    this.shape.appendChild(pathNode);
+                    this.stylesList[j].elements.push(pathNode);
+                }
+            }
+
         }
     }
+    len = ownArrays.length;
+    for(i=0;i<len;i+=1){
+        ownArrays[i].closed = true;
+        console.log('ownArrays[i]: ',ownArrays[i]);
+    }
 };
 
 ShapeItemElement.prototype.getElement = function(){
     return this.shape;
 };
 
-ShapeItemElement.prototype.renderShape = function(num,matrix){
-    var props = matrix.props;
-    this.currentMatrix.reset();
-    this.currentMatrix.transform(props[0],props[1],props[2],props[3],props[4],props[5]);
+ShapeItemElement.prototype.renderShape = function(num,matrix,items){
+    if(!items){
+        items = this.data;
+    }
     this.posCount = 0;
     this.frameNum = num;
-    var i, len = this.stylesList.length;
-    for(i=0;i<len;i+=1){
-        this.stylesList[i].d = '';
-    }
-    len = this.data.length - 1;
+    var i, len;
+    var j, jLen;
+    var styleElem;
+    len = items.length - 1;
+    var groupMatrix;
     for(i=len;i>=0;i-=1){
-        if(this.data[i].ty == 'tr'){
-            var mtArr = this.data[i].renderedData[num].mtArr;
-            this.currentMatrix.transform(mtArr[0],mtArr[1],mtArr[2],mtArr[3],mtArr[4],mtArr[5]);
-            this.currentMatrix.translate(-this.data[i].renderedData[num].a[0],-this.data[i].renderedData[num].a[1]);
-        }else if(this.data[i].ty == 'sh'){
-            this.renderPath(this.data[i],num);
-        }else if(this.data[i].ty == 'el'){
-            this.renderEllipse(this.data[i].renderedData[num]);
-        }else if(this.data[i].ty == 'fl'){
-            this.stylesList[this.posCount].path.setAttribute('fill',this.data[i].renderedData[num].color);
-            this.stylesList[this.posCount].path.setAttribute('fill-opacity',this.data[i].renderedData[num].opacity);
-            this.posCount += 1;
-        }else if(this.data[i].ty == 'st'){
-            this.stylesList[this.posCount].path.setAttribute('stroke-width',this.data[i].renderedData[num].width);
-            this.stylesList[this.posCount].path.setAttribute('stroke',this.data[i].renderedData[num].color);
-            this.stylesList[this.posCount].path.setAttribute('stroke-opacity',this.data[i].renderedData[num].opacity);
-            this.stylesList[this.posCount].path.setAttribute('fill-opacity',0);
-            this.posCount += 1;
+        if(items[i].ty == 'tr'){
+            var props = matrix.props;
+            var mtArr = items[i].renderedData[num].mtArr;
+            groupMatrix = items[i].matrix;
+            groupMatrix.reset().transform(props[0],props[1],props[2],props[3],props[4],props[5]).transform(mtArr[0],mtArr[1],mtArr[2],mtArr[3],mtArr[4],mtArr[5]).translate(-items[i].renderedData[num].a[0],-items[i].renderedData[num].a[1]);
+        }else if(items[i].ty == 'sh'){
+            this.renderPath(items[i],num,groupMatrix);
+        }else if(items[i].ty == 'el'){
+            this.renderEllipse(items[i],num,groupMatrix);
+        }else if(items[i].ty == 'rc'){
+            this.renderRect(items[i],num,groupMatrix);
+        }else if(items[i].ty == 'fl'){
+            styleElem = items[i].style;
+            jLen = styleElem.elements.length;
+            for(j=0;j<jLen;j+=1){
+                styleElem.elements[j].setAttribute('fill',items[i].renderedData[num].color);
+                styleElem.elements[j].setAttribute('fill-opacity',items[i].renderedData[num].opacity);
+            }
+        }else if(items[i].ty == 'st'){
+            styleElem = items[i].style;
+            jLen = styleElem.elements.length;
+            for(j=0;j<jLen;j+=1){
+                styleElem.elements[j].setAttribute('stroke-width',items[i].renderedData[num].width);
+                styleElem.elements[j].setAttribute('stroke',items[i].renderedData[num].color);
+                styleElem.elements[j].setAttribute('stroke-opacity',items[i].renderedData[num].opacity);
+                styleElem.elements[j].setAttribute('fill-opacity',0);
+            }
+        }else if(items[i].ty == 'gr'){
+            this.renderShape(num,this.currentMatrix,items[i].it);
         }
     }
-
-    len = this.stylesList.length;
-    for(i=0;i<len;i+=1){
-        if(this.stylesList[i].lastPath != this.stylesList[i].d){
-            this.stylesList[i].path.setAttribute('d',this.stylesList[i].d);
-            this.stylesList[i].lastPath = this.stylesList[i].d;
-        }
-        //this.stylesList[i].path.setAttribute('transform',this.currentMatrix.toCSS())
-    }
-
-
-
-    return;
-
-    this.currentData = this.data.renderedData[num];
-    if(this.data.type=="pathShape"){
-        this.pathLength = this.renderPath(num);
-    }else if(this.data.type=="rectShape"){
-        this.renderRect(num);
-    }else if(this.data.type=="ellipseShape"){
-        this.pathLength = this.renderEllipse(num);
-    }
-    if(this.data.trim){
-        this.renderTrim(num);
-    }
-    this.renderFill(num);
-    this.renderStroke(num);
-    this.renderTransform(num);
 };
 
-ShapeItemElement.prototype.renderPath = function(pathData,num){
+ShapeItemElement.prototype.renderPath = function(pathData,num,matrix){
     if(!pathData.renderedFrames){
         pathData.renderedFrames = [];
     }
@@ -99,127 +127,49 @@
     if(pathData.renderedFrames[num]){
         pathString = pathData.renderedFrames[num];
     }else{
-        pathString =  this.createPathString(pathData.renderedData[num].path.pathNodes);
+        pathString = pathData.renderedData[num].path.pathString;
         pathData.renderedFrames[num] = pathString;
     }
-    var i, len = this.stylesList.length;
+    var elements = pathData.elements;
+    var i, len = elements.length;
     for(i=0;i<len;i+=1){
         //this.stylesList[i].d += pathData.path.pathString;
-        this.stylesList[i].d += pathString;
+        elements[i].setAttribute('d',pathString);
+        elements[i].setAttribute('transform','matrix('+matrix.props.join(',')+')');
     }
 };
 
-ShapeItemElement.prototype.createPathString = function(paths,closed){
-    var pathV,pathO,pathI;
-    var pathString = '';
-    var pathData;
-    var k, kLen;
 
-    if(!(paths instanceof Array)){
-        pathV = paths.v;
-        pathO = paths.o;
-        pathI = paths.i;
-        kLen = pathV.length;
-        pt = this.currentMatrix.applyToPoint(pathV[0][0],pathV[0][1]);
-        pathString += "M"+pt.x+','+pt.y;
-        //pathString += "M"+pathV[0].join(',');
-        var pt;
-        for(k=1;k<kLen;k++){
-            //pathString += " C"+pathO[k-1].join(',') + " "+pathI[k].join(',') + " "+pathV[k].join(',');
-            pt = this.currentMatrix.applyToPoint(pathO[k-1][0],pathO[k-1][1]);
-            pathString += " C"+pt.x+','+pt.y;
-            pt = this.currentMatrix.applyToPoint(pathI[k][0],pathI[k][1]);
-            pathString += " "+pt.x+','+pt.y;
-            pt = this.currentMatrix.applyToPoint(pathV[k][0],pathV[k][1]);
-            pathString += " "+pt.x+','+pt.y;
-        }
-        if(closed !== false){
-            //pathString += " C"+pathO[k-1].join(',') + " "+pathI[0].join(',') + " "+pathV[0].join(',');
-            pt = this.currentMatrix.applyToPoint(pathO[k-1][0],pathO[k-1][1]);
-            pathString += " C"+pt.x+','+pt.y;
-            pt = this.currentMatrix.applyToPoint(pathI[0][0],pathI[0][1]);
-            pathString += " "+pt.x+','+pt.y;
-            pt = this.currentMatrix.applyToPoint(pathV[0][0],pathV[0][1]);
-            pathString += " "+pt.x+','+pt.y;
-        }
-        return pathString;
-    }
-    var l,lLen = paths.length;
-    pathString = '';
-    for(l = 0;l<lLen;l+=1){
-        pathData = paths[l];
-        pathV = pathData.v;
-        pathO = pathData.o;
-        pathI = pathData.i;
-        kLen = pathV.length;
-        pathString += "M"+pathV[0].join(',');
-        for(k=1;k<kLen;k++){
-            pathString += " C"+pathO[k-1].join(',') + " "+pathI[k].join(',') + " "+pathV[k].join(',');
-        }
-        if(closed !== false){
-            pathString += " C"+pathO[k-1].join(',') + " "+pathI[0].join(',') + " "+pathV[0].join(',');
-        }
-    }
-    return pathString;
-}
+ShapeItemElement.prototype.renderEllipse = function(ellipseData,num,matrix){
+    // cx="40" cy="40" rx="30" ry="15"
 
 
-ShapeItemElement.prototype.renderEllipse = function(ellipseData){
-
-    var ellipseStr = 'M';
-    ellipseStr+=ellipseData.p[0] - ellipseData.size[0]/2+','+ellipseData.p[1];
-    ellipseStr+='A'+ellipseData.size[0]/2+','+ellipseData.size[1]/2+' ';
-    ellipseStr+= '0 1,0 ';
-    ellipseStr+=ellipseData.p[0] + ellipseData.size[0]/2+','+ellipseData.p[1];
-    ellipseStr+='A'+ellipseData.size[0]/2+','+ellipseData.size[1]/2+' ';
-    ellipseStr+= '0 1,0 ';
-    ellipseStr+=ellipseData.p[0] - ellipseData.size[0]/2+','+ellipseData.p[1];
-
-    var pSized = this.currentMatrix.applyToPoint(ellipseData.p[0],ellipseData.p[1]);
-    var sSized = this.currentMatrix.applyToPoint(ellipseData.size[0],ellipseData.size[1]);
-
-    ellipseStr = 'M';
-    ellipseStr+=pSized.x - sSized.x/2+','+pSized.y;
-    ellipseStr+='A'+sSized.x/2+','+sSized.y/2+' ';
-    ellipseStr+= '0 1,0 ';
-    ellipseStr+=pSized.x + sSized.x/2+','+pSized.y;
-    ellipseStr+='A'+sSized.x/2+','+sSized.y/2+' ';
-    ellipseStr+= '0 1,0 ';
-    ellipseStr+=pSized.x - sSized.x/2+','+pSized.y;
-
-    var i, len = this.stylesList.length;
-
+    var elements = ellipseData.elements;
+    var ellipseAttrs = ellipseData.renderedData[num];
+    console.log(ellipseAttrs);
+    var i, len = elements.length;
     for(i=0;i<len;i+=1){
-        this.stylesList[i].d += ellipseStr;
+        elements[i].setAttribute('cx',ellipseAttrs.p[0]);
+        elements[i].setAttribute('cy',ellipseAttrs.p[1]);
+        elements[i].setAttribute('rx',ellipseAttrs.size[0]/2);
+        elements[i].setAttribute('ry',ellipseAttrs.size[1]/2);
+        //elements[i].setAttribute('transform','matrix('+matrix.props.join(',')+')');
     }
 };
 
-ShapeItemElement.prototype.renderRect = function(num){
+ShapeItemElement.prototype.renderRect = function(rectData,num,matrix){
+    var elements = rectData.elements;
+    var ellipseAttrs = rectData.renderedData[num];
     var animData = this.currentData;
-    if(animData.rect){
-        var rect = animData.rect;
-
-        if(this.renderedFrame.rect.rx != rect.roundness){
-            this.shape.setAttribute('rx',rect.roundness);
-            this.shape.setAttribute('ry',rect.roundness);
-            this.renderedFrame.rect.rx = rect.roundness;
-        }
-        if(this.renderedFrame.rect.width != rect.size[0]){
-            this.shape.setAttribute('width',rect.size[0]);
-            this.renderedFrame.rect.width = rect.size[0];
-        }
-        if(this.renderedFrame.rect.height != rect.size[1]){
-            this.shape.setAttribute('height',rect.size[1]);
-            this.renderedFrame.rect.height = rect.size[1];
-        }
-        if(this.renderedFrame.rect.x != rect.position[0] - rect.size[0]){
-            this.shape.setAttribute('x',rect.position[0] - rect.size[0]/2);
-            this.renderedFrame.rect.x = rect.position[0] - rect.size[0];
-        }
-        if(this.renderedFrame.rect.y != rect.position[1] - rect.size[1]){
-            this.shape.setAttribute('y',rect.position[1] - rect.size[1]/2);
-            this.renderedFrame.rect.y = rect.position[1] - rect.size[1];
-        }
+    var i, len = elements.length;
+    for(i=0;i<len;i+=1){
+        elements[i].setAttribute('rx',ellipseAttrs.roundness);
+        elements[i].setAttribute('ry',ellipseAttrs.roundness);
+        elements[i].setAttribute('width',ellipseAttrs.size[0]);
+        elements[i].setAttribute('height',ellipseAttrs.size[1]);
+        elements[i].setAttribute('x',ellipseAttrs.position[0] - ellipseAttrs.size[0]/2);
+        elements[i].setAttribute('y',ellipseAttrs.position[1] - ellipseAttrs.size[1]/2);
+        //elements[i].setAttribute('transform','matrix('+matrix.props.join(',')+')');
     }
 };
 
@@ -308,7 +258,7 @@
 
 ShapeItemElement.prototype.renderTrim = function(num){
     var trimData = this.currentData.trim;
-    if(this.pathLength == 0){
+    if(this.pathLength === 0){
         this.shape.setAttribute('stroke-opacity',0);
     }else{
         if(this.renderedFrame.trim.e == trimData.e && this.renderedFrame.trim.s == trimData.s && this.renderedFrame.trim.o == trimData.o){
diff --git a/player/js/elements/TextElement.js b/player/js/elements/TextElement.js
index d3bfb3b..0b25e39 100644
--- a/player/js/elements/TextElement.js
+++ b/player/js/elements/TextElement.js
@@ -13,8 +13,7 @@
     textElement.setAttribute('y',this.data.textData.height - (this.data.textData.fontSize-this.data.textData.height)/2);
     this.svgElem.setAttribute('width',this.data.textData.width);
     this.svgElem.setAttribute('height',this.data.textData.height);
-    this.svgElem.style['transform']='translate(' + this.data.textData.xOffset+"px," + this.data.textData.yOffset+"px)";
-    this.svgElem.style['-webkit-transform']='translate(' + this.data.textData.xOffset+"px," + this.data.textData.yOffset+"px)";
+    this.svgElem.style.transform=this.svgElem.style.webkitTransform='translate(' + this.data.textData.xOffset+"px," + this.data.textData.yOffset+"px)";
     textElement.setAttribute('font-size', this.data.textData.fontSize);
     textElement.setAttribute('font-family', "Arial, sans-serif");
     this.svgElem.appendChild(textElement);
diff --git a/player/js/elements/canvasElements/CVBaseElement.js b/player/js/elements/canvasElements/CVBaseElement.js
index 5cd62df..44ba585 100644
--- a/player/js/elements/canvasElements/CVBaseElement.js
+++ b/player/js/elements/canvasElements/CVBaseElement.js
@@ -4,7 +4,7 @@
     this.currentAnimData = null;
     this.renderFrame = false;
     this.init();
-};
+}
 
 CVBaseElement.prototype.init = function(){
     this.createElements();
diff --git a/player/js/elements/canvasElements/CVMaskElement.js b/player/js/elements/canvasElements/CVMaskElement.js
index 7de209f..d79f7a0 100644
--- a/player/js/elements/canvasElements/CVMaskElement.js
+++ b/player/js/elements/canvasElements/CVMaskElement.js
@@ -37,4 +37,4 @@
 
 CVMaskElement.prototype.createInvertedMask = function(){
 
-}
\ No newline at end of file
+};
\ No newline at end of file
diff --git a/player/js/elements/canvasElements/CVShapeItemElement.js b/player/js/elements/canvasElements/CVShapeItemElement.js
index b9c4373..1a382bc 100644
--- a/player/js/elements/canvasElements/CVShapeItemElement.js
+++ b/player/js/elements/canvasElements/CVShapeItemElement.js
@@ -5,10 +5,8 @@
     this.trims = [];
     this.dataLength = this.data.length;
     this.mainFlag = mainFlag;
-    this.currentPath = null;
     this.stylesList = [];
     this.ownStylesList = [];
-    this.pathsList = [];
     this.currentMatrix = document.createElementNS("http://www.w3.org/2000/svg", "svg").createSVGMatrix();
     var i,len=this.dataLength;
     this.renderedPaths = [];
@@ -19,31 +17,6 @@
     }
 }
 
-CVShapeItemElement.prototype.getCurrentPath = function(){
-    if(!this.currentPath){
-        this.currentPath = new Path2D();
-        this.pathsList.push(this.currentPath);
-    }
-    return this.currentPath;
-};
-
-CVShapeItemElement.prototype.checkDrawing = function(){
-    var i, len = this.stylesList.length;
-    for(i=0;i<len;i+=1){
-        if((this.stylesList[i].type == 'stroke' || this.stylesList[i].type == 'fill') && this.stylesList[i].context == this){
-            this.stylesList[i].paths.push(this.currentPath);
-        }
-        /*if(this.stylesList[i].type == 'stroke'){
-            this.renderer.canvasContext.strokeStyle=this.stylesList[i].value;
-            this.renderer.canvasContext.stroke(this.currentPath);
-        }else{
-            this.renderer.canvasContext.fillStyle=this.stylesList[i].value;
-            this.renderer.canvasContext.fill(this.currentPath);
-        }*/
-    }
-    this.currentPath = null;
-};
-
 CVShapeItemElement.prototype.drawPaths = function(){
     var i, len = this.stylesList.length;
     for(i=0;i<len;i+=1){
@@ -139,47 +112,6 @@
     mat.f = matrixValue[5];
     mat = mat.translate(-tr.a[0],-tr.a[1]);
     this.currentMatrix = this.currentMatrix.multiply(mat);
-    return;
-
-
-
-
-    var dataOb;
-    if(matrixValue[0] !== 1 || matrixValue[1] !== 0 || matrixValue[2] !== 0 || matrixValue[3] !== 1 || matrixValue[4] !== 0 || matrixValue[5] !== 0){
-        //ctx.save();
-        //ctx.transform(matrixValue[0], matrixValue[1], matrixValue[2], matrixValue[3], matrixValue[4], matrixValue[5]);
-        flag = true;
-        dataOb = {
-            type: 'transform',
-            matrix:matrixValue
-        };
-    }
-    if(tr.a[0] != 0 || tr.a[1] != 0){
-        if(!flag){
-            //ctx.save();
-            flag = true;
-            dataOb = {
-                type: 'transform'
-            };
-        }
-        dataOb.translate = tr.a;
-        //ctx.translate(-tr.a[0],-tr.a[1]);
-    }
-    if(tr.o < 1){
-        if(!flag){
-            //ctx.save();
-            dataOb = {
-                type: 'transform'
-            };
-            flag = true;
-        }
-        dataOb.alpha = tr.o;
-        //ctx.globalAlpha *= tr.o;
-    }
-    if(dataOb){
-        this.stylesList.push(dataOb);
-    }
-    return flag;
 };
 
 CVShapeItemElement.prototype.renderPath = function(data){
@@ -193,16 +125,12 @@
     var i,len = pathNodes.i.length;
     path2d.moveTo(pathNodes.v[0][0],pathNodes.v[0][1]);
     for(i=1;i<len;i+=1){
-        path2d.bezierCurveTo(pathNodes.o[i-1][0],pathNodes.o[i-1][1]
-            ,pathNodes.i[i][0],pathNodes.i[i][1]
-            ,pathNodes.v[i][0],pathNodes.v[i][1]);
+        path2d.bezierCurveTo(pathNodes.o[i-1][0],pathNodes.o[i-1][1],pathNodes.i[i][0],pathNodes.i[i][1],pathNodes.v[i][0],pathNodes.v[i][1]);
     }
     if(path.closed){
-        path2d.bezierCurveTo(pathNodes.o[i-1][0],pathNodes.o[i-1][1]
-        ,pathNodes.i[0][0],pathNodes.i[0][1]
-        ,pathNodes.v[0][0],pathNodes.v[0][1]);
+        path2d.bezierCurveTo(pathNodes.o[i-1][0],pathNodes.o[i-1][1],pathNodes.i[0][0],pathNodes.i[0][1],pathNodes.v[0][0],pathNodes.v[0][1]);
     }
-    var i, len = this.stylesList.length;
+    len = this.stylesList.length;
     for(i=0;i<len;i+=1){
         if(this.stylesList[i].open){
             this.stylesList[i].path.addPath(path2d, this.currentMatrix);
@@ -227,7 +155,7 @@
     var path2d = new Path2D();
     var rect = animData.renderedData[this.frameNum];
     var roundness = rect.roundness;
-    if(roundness == 0){
+    if(roundness === 0){
         path2d.rect(rect.position[0] - rect.size[0]/2,rect.position[1] - rect.size[1]/2,rect.size[0],rect.size[1]);
     }else{
         var x = rect.position[0] - rect.size[0]/2;
@@ -271,7 +199,7 @@
                 value:fillColorToString(fill.color, fill.opacity),
                 path: new Path2D(),
                 open: true
-            })
+            });
         }else{
             ///this.renderer.canvasContext.fillStyle='rgba('+fill.color.join(',')+')';
             //this.renderer.canvasContext.fillStyle=fillColorToString(fill.color);
@@ -280,7 +208,7 @@
                 value:fillColorToString(fill.color),
                 path: new Path2D(),
                 open: true
-            })
+            });
         }
         this.ownStylesList.push(this.stylesList[this.stylesList.length -1]);
         return;
@@ -425,16 +353,14 @@
                 }
                 if(this.trims[k].s >= addedLength && this.trims[k].s < addedLength + nextPt.partialLength){
                     perc = ( this.trims[k].s - addedLength)/nextPt.partialLength;
-                    path2d.moveTo(currentPt.point[0]+(nextPt.point[0] - currentPt.point[0])*perc
-                        ,currentPt.point[1]+(nextPt.point[1] - currentPt.point[1])*perc);
+                    path2d.moveTo(currentPt.point[0]+(nextPt.point[0] - currentPt.point[0])*perc,currentPt.point[1]+(nextPt.point[1] - currentPt.point[1])*perc);
                 }
                 if(this.trims[k].e > addedLength && this.trims[k].e <= addedLength + nextPt.partialLength){
                     perc = ( this.trims[k].e - addedLength)/nextPt.partialLength;
-                    path2d.lineTo(currentPt.point[0]+(nextPt.point[0] - currentPt.point[0])*perc
-                        ,currentPt.point[1]+(nextPt.point[1] - currentPt.point[1])*perc);
+                    path2d.lineTo(currentPt.point[0]+(nextPt.point[0] - currentPt.point[0])*perc,currentPt.point[1]+(nextPt.point[1] - currentPt.point[1])*perc);
                     endedCount -= 1;
                     this.trims[k].ended = true;
-                    if(endedCount == 0){
+                    if(endedCount === 0){
                         ended = true;
                         break;
                     }
diff --git a/player/js/elements/canvasElements/CVTextElement.js b/player/js/elements/canvasElements/CVTextElement.js
index 082b51a..c42b51e 100644
--- a/player/js/elements/canvasElements/CVTextElement.js
+++ b/player/js/elements/canvasElements/CVTextElement.js
@@ -13,8 +13,7 @@
     textElement.setAttribute('y',this.data.textData.height - (this.data.textData.fontSize-this.data.textData.height)/2);
     this.svgElem.setAttribute('width',this.data.textData.width);
     this.svgElem.setAttribute('height',this.data.textData.height);
-    this.svgElem.style['transform']='translate(' + this.data.textData.xOffset+"px," + this.data.textData.yOffset+"px)";
-    this.svgElem.style['-webkit-transform']='translate(' + this.data.textData.xOffset+"px," + this.data.textData.yOffset+"px)";
+    this.svgElem.style.transform=this.svgElem.style.webkitTransform='translate(' + this.data.textData.xOffset+"px," + this.data.textData.yOffset+"px)";
     textElement.setAttribute('font-size', this.data.textData.fontSize);
     textElement.setAttribute('font-family', "Arial, sans-serif");
     this.svgElem.appendChild(textElement);
diff --git a/player/js/renderers/CanvasRenderer.js b/player/js/renderers/CanvasRenderer.js
index 3d391fb..adca800 100644
--- a/player/js/renderers/CanvasRenderer.js
+++ b/player/js/renderers/CanvasRenderer.js
@@ -27,7 +27,7 @@
             console.log('NO TYPE: ',layers[i]);
         }
     }
-}
+};
 
 CanvasRenderer.prototype.createBase = function (data) {
     data.element = new CVBaseElement(data, this);
@@ -73,14 +73,15 @@
 };
 
 CanvasRenderer.prototype.updateContainerSize = function () {
+    var elementWidth,elementHeight;
     if(this.animationItem.wrapper && this.animationItem.container){
-        var elementWidth = this.animationItem.wrapper.offsetWidth;
-        var elementHeight = this.animationItem.wrapper.offsetHeight;
+        elementWidth = this.animationItem.wrapper.offsetWidth;
+        elementHeight = this.animationItem.wrapper.offsetHeight;
         this.animationItem.container.setAttribute('width',elementWidth);
         this.animationItem.container.setAttribute('height',elementHeight);
     }else{
-        var elementWidth = this.canvasContext.canvas.width;
-        var elementHeight = this.canvasContext.canvas.height;
+        elementWidth = this.canvasContext.canvas.width;
+        elementHeight = this.canvasContext.canvas.height;
     }
     if(this.renderConfig.scaleMode == 'fit'){
         var elementRel = elementWidth/elementHeight;
@@ -123,7 +124,7 @@
     while (i < len) {
         if (layers[i].layerName == parentName) {
             threeItem.parentHierarchy.push(layers[i]);
-            if (layers[i].parent == undefined) {
+            if (layers[i].parent === undefined) {
             } else {
                 this.buildItemHierarchy(threeItem, layers, layers[i].parent);
             }
diff --git a/player/js/renderers/SVGRenderer.js b/player/js/renderers/SVGRenderer.js
index 291a476..a2a8f90 100644
--- a/player/js/renderers/SVGRenderer.js
+++ b/player/js/renderers/SVGRenderer.js
@@ -22,7 +22,7 @@
             console.log('NO TYPE: ',layers[i]);
         }
     }
-}
+};
 
 SVGRenderer.prototype.createShape = function (data) {
     data.element = new IShapeElement(data, this.animationItem);
@@ -110,7 +110,7 @@
         }
         i += 1;
     }
-}
+};
 
 SVGRenderer.prototype.updateContainerSize = function () {
 };
@@ -127,4 +127,4 @@
     for (i = 0; i < len; i++) {
         this.layers[i].element.renderFrame(num - this.layers[i].startTime);
     }
-}
\ No newline at end of file
+};
\ No newline at end of file
diff --git a/player/js/utils/DataManager.js b/player/js/utils/DataManager.js
index f2ed7f6..9132ee2 100644
--- a/player/js/utils/DataManager.js
+++ b/player/js/utils/DataManager.js
@@ -180,7 +180,7 @@
     function getInterpolatedValues(keyframes, frameCount, offsetTime){
         var i ,len;
         var valuesArray = [];
-        if(!(keyframes instanceof Array) || keyframes[0].t == null){
+        if(!(keyframes instanceof Array) || keyframes[0].t === null){
             valuesArray.push(keyframes);
             return valuesArray;
         }
@@ -190,52 +190,10 @@
         var propertyArray = [];
         var j, jLen;
         len = keyframes.length;
-        var perc;
-        var curveSegments = 1000;
-        var absToCoord = [];
-        var absTiCoord = [];
+        var perc,bezierData,k;
         for(i=0;i<len;i+=1){
             keyData = keyframes[i];
             keyData.t -= offsetTime;
-            if(keyData.to){
-                var k;
-                var triCoord1,triCoord2,triCoord3,liCoord1,liCoord2,ptCoord,perc,addedLength = 0;
-                var ptDistance;
-                var point,lastPoint = null;
-                var bezierData = {
-                    points :[],
-                    length: 0
-                };
-                for(k=0;k<curveSegments;k+=1){
-                    point = [];
-                    perc = k/(curveSegments-1);
-                    ptDistance = 0;
-                    absToCoord = [];
-                    absTiCoord = [];
-                    keyData.to.forEach(function(item,index){
-                        if(absToCoord[index] == null){
-                            absToCoord[index] = keyData.s[index] + keyData.to[index];
-                            absTiCoord[index] = keyData.e[index] + keyData.ti[index];
-                        }
-                        triCoord1 = keyData.s[index] + (absToCoord[index] - keyData.s[index])*perc;
-                        triCoord2 = absToCoord[index] + (absTiCoord[index] - absToCoord[index])*perc;
-                        triCoord3 = absTiCoord[index] + (keyData.e[index] - absTiCoord[index])*perc;
-                        liCoord1 = triCoord1 + (triCoord2 - triCoord1)*perc;
-                        liCoord2 = triCoord2 + (triCoord3 - triCoord2)*perc;
-                        ptCoord = liCoord1 + (liCoord2 - liCoord1)*perc;
-                        point.push(ptCoord);
-                        if(lastPoint !== null){
-                            ptDistance += Math.pow(point[index] - lastPoint[index],2);
-                        }
-                    });
-                    ptDistance = Math.sqrt(ptDistance);
-                    addedLength += ptDistance;
-                    bezierData.points.push({partialLength: addedLength, point: point});
-                    lastPoint = point;
-                    keyData.bezierData = bezierData;
-                }
-                bezierData.segmentLength = addedLength;
-            }
         }
         var lastFrameIndex = 0;
         var lastPointIndex = 0;
@@ -245,7 +203,7 @@
             while(count<len-1){
                 keyData = keyframes[count];
                 nextKeyData = keyframes[count+1];
-                if(i<keyData.t && count == 0){
+                if(i<keyData.t && count === 0){
                     jLen = keyData.s.length;
                     propertyArray = [];
                     for(j=0;j<jLen;j+=1){
@@ -262,12 +220,12 @@
                     propertyArray = [];
                     if(keyData.to){
                         perc = bez.getEasingCurve(keyData.o.x,keyData.o.y,keyData.i.x,keyData.i.y)('',i-keyData.t,0,1,nextKeyData.t-keyData.t);
-                        var bezierData = keyData.bezierData;
+                        bezierData = keyData.bezierData;
                         var distanceInLine = bezierData.segmentLength*perc;
-                        var k, kLen, segmentPerc;
+                        var kLen, segmentPerc;
                         j = lastPointIndex;
                         while(j<bezierData.points.length){
-                            if(i == 0 || distanceInLine == 0 || perc == 0){
+                            if(i === 0 || distanceInLine === 0 || perc === 0){
                                 propertyArray = bezierData.points[j].point;
                                 lastPointIndex = j;
                                 break;
@@ -347,7 +305,7 @@
                 }
                 count += 1;
             }
-            if(found == false){
+            if(found === false){
                 keyData = keyframes[keyframes.length - 2];
                 propertyArray = [];
                 keyData.e.forEach(function(item){
@@ -382,7 +340,7 @@
                 return [keyframes];
             }
             return keyframes;
-        }else if(keyframes[0].t == null){
+        }else if(keyframes[0].t === null){
             if(interpolatedParams.type == 'p'){
                 matrixParams.px = keyframes[0];
                 matrixParams.py = keyframes[1];
@@ -428,6 +386,7 @@
         if(interpolatedParams.type == 'default'){
             propertyArray = [];
         }
+        var fnc;
         if(keyData.to){
             bezierData = keyData.bezierData;
             if(frameNum >= nextKeyData.t-offsetTime){
@@ -453,7 +412,6 @@
                 }
                 return bezierData.points[0].point;
             }
-            var fnc;
             if(keyData.__fnct){
                 fnc = keyData.__fnct;
             }else{
@@ -470,7 +428,7 @@
             jLen = bezierData.points.length;
             while(flag){
                 addedLength +=bezierData.points[j].partialLength*dir;
-                if(distanceInLine == 0 || perc == 0){
+                if(distanceInLine === 0 || perc === 0){
                     if(interpolatedParams.type == 'p'){
                         matrixParams.px = bezierData.points[j].point[0];
                         matrixParams.py = bezierData.points[j].point[1];
@@ -541,7 +499,6 @@
                         inX = keyData.i.x;
                         inY = keyData.i.y;
                     }
-                    var fnc;
                     if(isArray){
                         if(keyData.__fnct[i]){
                             fnc = keyData.__fnct[i];
@@ -566,13 +523,13 @@
                 }
                 if(keyData.h === 1){
                     if(interpolatedParams.type == 'p'){
-                        if(i == 0){
+                        if(i === 0){
                             matrixParams.px = keyData.s[i];
                         }else if(i == 1){
                             matrixParams.py = keyData.s[i];
                         }
                     }else if(interpolatedParams.type == 's'){
-                        if(i == 0){
+                        if(i === 0){
                             matrixParams.sx = keyData.s[i];
                         }else if(i == 1){
                             matrixParams.sy = keyData.s[i];
@@ -584,13 +541,13 @@
                     }
                 }else{
                     if(interpolatedParams.type == 'p'){
-                        if(i == 0){
+                        if(i === 0){
                             matrixParams.px = keyData.s[i]+(keyData.e[i]-keyData.s[i])*perc;
                         }else if(i == 1){
                             matrixParams.py = keyData.s[i]+(keyData.e[i]-keyData.s[i])*perc;
                         }
                     }else if(interpolatedParams.type == 's'){
-                        if(i == 0){
+                        if(i === 0){
                             matrixParams.sx = keyData.s[i]+(keyData.e[i]-keyData.s[i])*perc;
                         }else if(i == 1){
                             matrixParams.sy = keyData.s[i]+(keyData.e[i]-keyData.s[i])*perc;
@@ -612,17 +569,16 @@
         var keyframes = isMask ? shapeData.pt : shapeData.ks;
         if(keyframes.v){
             if(renderType == 'svg'){
-                /*if(!keyframes.__pathString){
+                if(!keyframes.__pathString){
                     keyframes.__pathString = createPathString(keyframes,pathData.closed);
                 }
-                pathData.pathString = keyframes.__pathString;*/
-                pathData.pathNodes = keyframes;
+                pathData.pathString = keyframes.__pathString;
             }else{
                 pathData.pathNodes = keyframes;
             }
             return pathData;
         }else{
-            var shapeData = {
+            shapeData = {
                 i: [],
                 o: [],
                 v: []
@@ -647,17 +603,17 @@
                     shapeData.v.push(coordsVData);
                 }
                 propertyArray.push(shapeData);
-                /*if(renderType == 'svg'){
+                if(renderType == 'svg'){
                     if(!keyframes.__minValue){
                         keyframes.__minValue = createPathString(propertyArray,pathData.closed);
                     }
                     pathData.pathString = keyframes.__minValue;
-                }else{*/
+                }else{
                     if(!keyframes.__minValue){
                         keyframes.__minValue = propertyArray;
                     }
                     pathData.pathNodes = keyframes.__minValue;
-                //}
+                }
                 return pathData;
             }else if(frameNum > keyframes[keyframes.length - 1].t-offsetTime){
                 var pos = keyframes.length - 2;
@@ -677,17 +633,17 @@
                     shapeData.v.push(coordsVData);
                 }
                 propertyArray.push(shapeData);
-                /*if(renderType == 'svg'){
+                if(renderType == 'svg'){
                     if(!keyframes.__maxValue){
                         keyframes.__maxValue = createPathString(propertyArray,pathData.closed);
                     }
                     pathData.pathString = keyframes.__maxValue;
-                }else{*/
+                }else{
                     if(!keyframes.__maxValue){
                         keyframes.__maxValue = propertyArray;
                     }
                     pathData.pathNodes = keyframes.__maxValue;
-                //}
+                }
                 return pathData;
             }else{
                 var i = 0;
@@ -886,113 +842,6 @@
                 for(i=0;i<len;i+=1){
                     iterateShape(item.shapes[i],offsettedFrameNum,item.startTime,renderType);
                 }
-                    /*shapeItem.renderedData[offsettedFrameNum] = shapeData;
-                    if(!shapeItem._created){
-                        shapeItem.an.tr = [];
-                        shapeItem.an.renderedFrame = {};
-                        if(shapeItem.ks){
-                            shapeItem.an.path = [];
-                        }else if(shapeItem.el){
-                            shapeItem.an.ell = [];
-                        }else if(shapeItem.rc){
-                            shapeItem.an.rect = [];
-                        }
-                        if(shapeItem.fl){
-                            shapeItem.an.fill = [];
-                        }
-                        if(shapeItem.st){
-                            shapeItem.an.stroke = [];
-                        }
-                    }
-                    if(shapeItem.trim && (!shapeItem._created)){
-                        shapeItem.trim.an = [];
-                    }
-                    if(shapeItem.fl){
-                        fillColor = getInterpolatedValue(shapeItem.fl.c,offsettedFrameNum, item.startTime,interpolatedParams);
-                        fillOpacity = getInterpolatedValue(shapeItem.fl.o,offsettedFrameNum, item.startTime,interpolatedParams);
-                        shapeData.fill = {
-                            opacity : fillOpacity instanceof Array ? fillOpacity[0] : fillOpacity
-                        };
-                        if(renderType == 'canvas'){
-                            roundColor(fillColor);
-                            shapeData.fill.color = fillColor;
-                        }else{
-                            shapeData.fill.color = rgbToHex(Math.round(fillColor[0]),Math.round(fillColor[1]),Math.round(fillColor[2]));
-                        }
-                    }
-                    if(shapeItem.ks){
-                        shapeData.path = interpolateShape(shapeItem,offsettedFrameNum, item.startTime,renderType);
-                    }else if(shapeItem.el){
-                        elmPos = getInterpolatedValue(shapeItem.el.p,offsettedFrameNum, item.startTime,interpolatedParams);
-                        elmSize = getInterpolatedValue(shapeItem.el.s,offsettedFrameNum, item.startTime,interpolatedParams);
-                        shapeData.ell = {
-                            p : elmPos,
-                            size : elmSize
-                        };
-                    }else if(shapeItem.rc){
-                        elmPos = getInterpolatedValue(shapeItem.rc.p,offsettedFrameNum, item.startTime,interpolatedParams);
-                        elmSize = getInterpolatedValue(shapeItem.rc.s,offsettedFrameNum, item.startTime,interpolatedParams);
-                        elmRound = getInterpolatedValue(shapeItem.rc.r,offsettedFrameNum, item.startTime,interpolatedParams);
-                        shapeData.rect = {
-                            position : elmPos,
-                            size : elmSize,
-                            roundness : elmRound
-                        };
-                    }
-                    if(shapeItem.st){
-                        strokeColor = getInterpolatedValue(shapeItem.st.c,offsettedFrameNum, item.startTime,interpolatedParams);
-                        strokeOpacity = getInterpolatedValue(shapeItem.st.o,offsettedFrameNum, item.startTime,interpolatedParams);
-                        strokeWidth = getInterpolatedValue(shapeItem.st.w,offsettedFrameNum, item.startTime,interpolatedParams);
-                        shapeData.stroke = {
-                            opacity : strokeOpacity instanceof Array ? strokeOpacity[0] : strokeOpacity,
-                            width : strokeWidth instanceof Array ? strokeWidth[0] : strokeWidth
-                        };
-                        if(renderType == 'canvas'){
-                            roundColor(strokeColor);
-                            shapeData.stroke.color = strokeColor;
-                        }else{
-                            shapeData.stroke.color = rgbToHex(Math.round(strokeColor[0]),Math.round(strokeColor[1]),Math.round(strokeColor[2]));
-                        }
-                    }
-                    shapeTrOb = {};
-                    shapeTrOb.a = getInterpolatedValue(shapeItem.tr.a,offsettedFrameNum, item.startTime,interpolatedParams);
-                    shapeTrOb.o = getInterpolatedValue(shapeItem.tr.o,offsettedFrameNum, item.startTime,interpolatedParams);
-                    interpolatedParams.arrayFlag = true;
-                    interpolatedParams.type = 's';
-                    getInterpolatedValue(shapeItem.tr.s,offsettedFrameNum, item.startTime,interpolatedParams);
-                    interpolatedParams.arrayFlag = true;
-                    interpolatedParams.type = 'r';
-                    getInterpolatedValue(shapeItem.tr.r,offsettedFrameNum, item.startTime,interpolatedParams);
-                    interpolatedParams.arrayFlag = false;
-                    interpolatedParams.type = 'p';
-                    getInterpolatedValue(shapeItem.tr.p,offsettedFrameNum, item.startTime,interpolatedParams);
-                    interpolatedParams.arrayFlag = false;
-                    interpolatedParams.type = 'default';
-                    //console.log('frameNum: ',frameNum);
-                    //console.log('matrixParams.sx: ',matrixParams.sx);
-                    //console.log('matrixParams.sy: ',matrixParams.sy);
-                    if(renderType == 'canvas'){
-                        shapeTrOb.mtArr = matrixInstance.getMatrixArrayFromParams(matrixParams.r,matrixParams.sx,matrixParams.sy,matrixParams.px,matrixParams.py);
-                    }else{
-                        shapeTrOb.mt = matrixInstance.getMatrix2FromParams(matrixParams.r,matrixParams.sx,matrixParams.sy,matrixParams.px,matrixParams.py);
-                    }
-                    shapeItem.an.tr[offsettedFrameNum] = shapeTrOb;
-                    shapeData.tr = shapeTrOb;
-
-                    if(shapeItem.trim){
-                        var trimS = getInterpolatedValue(shapeItem.trim.s,offsettedFrameNum, item.startTime,interpolatedParams);
-                        var trimE = getInterpolatedValue(shapeItem.trim.e,offsettedFrameNum, item.startTime,interpolatedParams);
-                        var trimO = getInterpolatedValue(shapeItem.trim.o,offsettedFrameNum, item.startTime,interpolatedParams);
-                        shapeData.trim = {
-                            s: trimS,
-                            e: trimE,
-                            o: trimO
-                        }
-                    }
-                    if(!shapeItem._created){
-                        shapeItem._created = true;
-                    }
-                }*/
             }
         }
     }
@@ -1009,7 +858,7 @@
             if(shapeItem.ty == 'sh'){
                 shapeItem.renderedData[offsettedFrameNum] = {
                     path: interpolateShape(shapeItem,offsettedFrameNum, startTime,renderType)
-                }
+                };
             }else if(shapeItem.ty == 'fl'){
                 fillColor = getInterpolatedValue(shapeItem.c,offsettedFrameNum, startTime,interpolatedParams);
                 fillOpacity = getInterpolatedValue(shapeItem.o,offsettedFrameNum, startTime,interpolatedParams);
@@ -1056,7 +905,7 @@
                 shapeItem.renderedData[offsettedFrameNum] = {
                     a : getInterpolatedValue(shapeItem.a,offsettedFrameNum, startTime,interpolatedParams),
                     o : getInterpolatedValue(shapeItem.o,offsettedFrameNum, startTime,interpolatedParams)
-                }
+                };
                 interpolatedParams.arrayFlag = true;
                 interpolatedParams.type = 's';
                 getInterpolatedValue(shapeItem.s,offsettedFrameNum, startTime,interpolatedParams);
@@ -1085,7 +934,7 @@
                     s: trimS,
                     e: trimE,
                     o: trimO
-                }
+                };
             }else if(shapeItem.ty == 'gr'){
                 iterateShape(shapeItem.it,offsettedFrameNum,startTime,renderType);
             }
@@ -1130,7 +979,7 @@
         var offsettedFrameNum, timeRemapped;
         var shapes;
         for(i=0;i<len;i+=1){
-            if(rendered[i] == ''){
+            if(rendered[i] === ''){
                 continue;
             }
             offsettedFrameNum = num - layers[i].startTime;
@@ -1153,7 +1002,7 @@
         var i, len = animationData.animation.totalFrames;
         var renderedFrames = [];
         for(i=0;i<len;i+=1){
-            renderedFrames.push({num:i,data:renderFrame(id,i)})
+            renderedFrames.push({num:i,data:renderFrame(id,i)});
         }
     }
 
@@ -1163,6 +1012,6 @@
     moduleOb.renderAllFrames = renderAllFrames;
 
     return moduleOb;
-};
+}
 
 var dataManager = dataFunctionManager();
\ No newline at end of file
diff --git a/player/js/utils/MatrixManager.js b/player/js/utils/MatrixManager.js
index fd440d5..5c60dbb 100644
--- a/player/js/utils/MatrixManager.js
+++ b/player/js/utils/MatrixManager.js
@@ -92,38 +92,26 @@
     };
 
     var get2DMatrix = function(animData){
-        return returnMatrix2D(animData.r
-            ,animData.s[0],animData.s[1]
-            ,animData.p[0],animData.p[1]);
+        return returnMatrix2D(animData.r,animData.s[0],animData.s[1],animData.p[0],animData.p[1]);
     };
 
     var getMatrix = function(animData, isThreeD){
         if(!isThreeD){
-            return returnMatrix2D(animData.tr.r[2]
-                ,animData.tr.s[0],animData.tr.s[1]
-                ,animData.tr.p[0],animData.tr.p[1]);
+            return returnMatrix2D(animData.tr.r[2],animData.tr.s[0],animData.tr.s[1],animData.tr.p[0],animData.tr.p[1]);
         }
-        return returnMatrix3D(-animData.tr.r[0],animData.tr.r[1],animData.tr.r[2]
-            ,animData.tr.s[0],animData.tr.s[1],animData.tr.s[2]
-            ,animData.tr.p[0],animData.tr.p[1],animData.tr.p[2])
+        return returnMatrix3D(-animData.tr.r[0],animData.tr.r[1],animData.tr.r[2],animData.tr.s[0],animData.tr.s[1],animData.tr.s[2],animData.tr.p[0],animData.tr.p[1],animData.tr.p[2]);
     };
 
     var getMatrix2 = function(animData, isThreeD){
         if(!isThreeD){
-            return returnMatrix2D(animData.r[2]
-                ,animData.s[0],animData.s[1]
-                ,animData.p[0],animData.p[1]);
+            return returnMatrix2D(animData.r[2],animData.s[0],animData.s[1],animData.p[0],animData.p[1]);
         }
-        return returnMatrix3D(-animData.r[0],animData.r[1],animData.r[2]
-            ,animData.s[0],animData.s[1],animData.s[2]
-            ,animData.p[0],animData.p[1],animData.p[2])
+        return returnMatrix3D(-animData.r[0],animData.r[1],animData.r[2],animData.s[0],animData.s[1],animData.s[2],animData.p[0],animData.p[1],animData.p[2]);
     };
 
     var getMatrixArray = function(animData, isThreeD){
         if(!isThreeD){
-            return returnMatrix2DArray(animData.r[2]
-                ,animData.s[0],animData.s[1]
-                ,animData.p[0],animData.p[1]);
+            return returnMatrix2DArray(animData.r[2],animData.s[0],animData.s[1],animData.p[0],animData.p[1]);
         }
         return null;
     };
@@ -135,7 +123,7 @@
         getMatrixArray : getMatrixArray,
         getMatrixArrayFromParams : returnMatrix2DArray,
         getMatrix2FromParams : returnMatrix2D
-    }
+    };
 
-};
+}
 var MatrixManager = matrixManagerFunction;
\ No newline at end of file
diff --git a/player/js/utils/bez.js b/player/js/utils/bez.js
index 6dd35e0..ab43677 100644
--- a/player/js/utils/bez.js
+++ b/player/js/utils/bez.js
@@ -24,7 +24,8 @@
         var A1, B1, C1;
         easingFunctions[encodedFuncName] = function(x, t, b, c, d) {
             var tt = t/d;
-            var x = tt, i = 0, z;
+            x = tt;
+            var i = 0, z;
             while (++i < 14) {
                 C0 = 3 * aa;
                 B0 = 3 * (cc - aa) - C0;
@@ -58,8 +59,7 @@
             points :[],
             segmentLength: 0
         };
-        if(pointOnLine2D(pt1[0],pt1[1],pt2[0],pt2[1],pt3[0],pt3[1])
-            && pointOnLine2D(pt1[0],pt1[1],pt2[0],pt2[1],pt4[0],pt4[1])){
+        if(pointOnLine2D(pt1[0],pt1[1],pt2[0],pt2[1],pt3[0],pt3[1]) && pointOnLine2D(pt1[0],pt1[1],pt2[0],pt2[1],pt4[0],pt4[1])){
             curveSegments = 2;
         }
         len = pt3.length;
@@ -104,8 +104,7 @@
             points :[],
             segmentLength: 0
         };
-        if(pointOnLine2D(pt1[0],pt1[1],pt2[0],pt2[1],pt1[0]+pt3[0],pt1[1]+pt3[1])
-            && pointOnLine2D(pt1[0],pt1[1],pt2[0],pt2[1],pt2[0]+pt4[0],pt2[1]+pt4[1])){
+        if(pointOnLine2D(pt1[0],pt1[1],pt2[0],pt2[1],pt1[0]+pt3[0],pt1[1]+pt3[1]) && pointOnLine2D(pt1[0],pt1[1],pt2[0],pt2[1],pt2[0]+pt4[0],pt2[1]+pt4[1])){
             curveSegments = 2;
         }
         len = pt3.length;
@@ -142,6 +141,6 @@
     };
 
     return ob;
-};
+}
 
 var bez = bezFunction();
\ No newline at end of file
diff --git a/player/js/utils/common.js b/player/js/utils/common.js
index 37a9739..7dbaf74 100644
--- a/player/js/utils/common.js
+++ b/player/js/utils/common.js
@@ -70,13 +70,13 @@
             colorMap[colorArr[0]][colorArr[1]] = [];
         }
         if(!colorMap[colorArr[0]][colorArr[1]][colorArr[2]]){
-            if(alpha != undefined){
+            if(alpha !== undefined){
                 colorArr[3] = alpha;
             }
             colorMap[colorArr[0]][colorArr[1]][colorArr[2]] = 'rgba('+colorArr.join(',')+')';
         }
         return colorMap[colorArr[0]][colorArr[1]][colorArr[2]];
-    }
+    };
 }());
 
 function createColorMap(){
diff --git a/player/js/utils/functionExtensions.js b/player/js/utils/functionExtensions.js
index 7fef705..14aabd5 100644
--- a/player/js/utils/functionExtensions.js
+++ b/player/js/utils/functionExtensions.js
@@ -37,8 +37,8 @@
     var accessor = {
         enumerable : false,
         configurable : false,
-        get: function(){return value},
-        set: function(val){value = val}
+        get: function(){return value;},
+        set: function(val){value = val;}
     };
     if(params){
         for( var s in params){