diff --git a/extension/jsx/utils/PropertyFactory.jsx b/extension/jsx/utils/PropertyFactory.jsx
index d21c35c..0629e7b 100644
--- a/extension/jsx/utils/PropertyFactory.jsx
+++ b/extension/jsx/utils/PropertyFactory.jsx
@@ -200,7 +200,7 @@
                     if((nextKeyData.t - this.offsetTime) > frameNum && dir == 1){
                         break;
                     }
-                    if(i < len - 1 && dir == 1 || i > 0 && dir == -1){
+                    if(i < len - 1 && dir == 1){
                         i += dir;
                     }else{
                         flag = false;
diff --git a/extension/jsx/utils/effectsHelper.jsx b/extension/jsx/utils/effectsHelper.jsx
index 16def9f..0915fa5 100644
--- a/extension/jsx/utils/effectsHelper.jsx
+++ b/extension/jsx/utils/effectsHelper.jsx
@@ -24,7 +24,7 @@
         case 'ADBE Checkbox Control':
             return effectTypes.checkboxControl;
         default:
-            bm_eventDispatcher.log(name);
+            //bm_eventDispatcher.log(name);
             return '';
         }
     }
diff --git a/extension/jsx/utils/shapeHelper.jsx b/extension/jsx/utils/shapeHelper.jsx
index 17526db..73d15e4 100644
--- a/extension/jsx/utils/shapeHelper.jsx
+++ b/extension/jsx/utils/shapeHelper.jsx
@@ -223,7 +223,7 @@
     }
 
     function getBoundingBox(p1, p2, p3, p4, bounds) {
-        var pts = [p1, p4];
+        var pts = [p1,p4];
         getTPos(p1, p2, p3, p4, pts);
 
         var minX = bounds.l, minY = bounds.t, maxX = bounds.r, maxY = bounds.b, pt;
@@ -279,9 +279,9 @@
             var points = shapeProp.v;
             var k, kLen = points.v.length;
             for (k = 0; k < kLen - 1; k += 1) {
-                getBoundingBox(matr.applyToPointArray(points.v[k][0], points.v[k][1]), matr.applyToPointArray(points.o[k][0], points.o[k][1]), matr.applyToPointArray(points.i[k + 1][0], points.i[k + 1][1]), matr.applyToPointArray(points.v[k + 1][0], points.v[k + 1][1]), bounds);
+                getBoundingBox(matr.applyToPointArray(points.v[k][0], points.v[k][1]), matr.applyToPointArray(points.o[k][0]+points.v[k][0], points.o[k][1]+points.v[k][1]), matr.applyToPointArray(points.i[k + 1][0]+points.v[k + 1][0], points.i[k + 1][1]+points.v[k + 1][1]), matr.applyToPointArray(points.v[k + 1][0], points.v[k + 1][1]), bounds);
             }
-            getBoundingBox(matr.applyToPointArray(points.v[k][0], points.v[k][1]), matr.applyToPointArray(points.o[k][0], points.o[k][1]), matr.applyToPointArray(points.i[0][0], points.i[0][1]), matr.applyToPointArray(points.v[0][0], points.v[0][1]), bounds);
+            getBoundingBox(matr.applyToPointArray(points.v[k][0], points.v[k][1]), matr.applyToPointArray(points.o[k][0]+points.v[k][0], points.o[k][1]+points.v[k][1]), matr.applyToPointArray(points.i[0][0]+points.v[0][0], points.i[0][1]+points.v[0][1]), matr.applyToPointArray(points.v[0][0], points.v[0][1]), bounds);
         }
         len = strokes.length;
         arr = [];
diff --git a/extension/jsx/utils/textAnimatorHelper.jsx b/extension/jsx/utils/textAnimatorHelper.jsx
index a567cf2..6afb248 100644
--- a/extension/jsx/utils/textAnimatorHelper.jsx
+++ b/extension/jsx/utils/textAnimatorHelper.jsx
@@ -37,6 +37,7 @@
             ob.t = 0;
             ob.xe = bm_keyframeHelper.exportKeyframes(advancedProperty.property('ADBE Text Levels Max Ease'), frameRate);
             ob.ne = bm_keyframeHelper.exportKeyframes(advancedProperty.property('ADBE Text Levels Min Ease'), frameRate);
+            ob.a = bm_keyframeHelper.exportKeyframes(advancedProperty.property('ADBE Text Selector Max Amount'), frameRate);
             ob.b = advancedProperty.property("ADBE Text Range Type2").value;
             ob.rn = advancedProperty.property("ADBE Text Randomize Order").value;
             ob.sh = advancedProperty.property("ADBE Text Range Shape").value;
diff --git a/player/index.html b/player/index.html
index 6496b5f..a2ff73a 100644
--- a/player/index.html
+++ b/player/index.html
@@ -12,8 +12,8 @@
         }
         #bodymovin{
             background-color:#000;
-            width:533px;
-            height:300px;
+            width:500px;
+            height:500px;
             display:block;
             overflow: hidden;
             transform: translate3d(0,0,0);
@@ -21,6 +21,10 @@
             opacity: 1;
         }
 
+        rect{
+            opacity: .5!important;
+        }
+
     </style>
     <!-- build:js bodymovin.js -->
      <script src="js/main.js"></script>
@@ -66,24 +70,15 @@
     <script src="js/elements/htmlElements/HCompElement.js"></script>
     <script src="js/elements/htmlElements/HShapeElement.js"></script>
     <script src="js/elements/htmlElements/HTextElement.js"></script>
+    <script src="js/elements/htmlElements/HImageElement.js"></script>
     <script src="js/animation/AnimationManager.js"></script>
     <script src="js/animation/AnimationItem.js"></script>
      <script src="js/module.js"></script>
     <!-- endbuild -->
     <!-- <script src="bodymovin.js"></script> -->
-    <script src="exports/splitted/data.js"></script>
-    <script src="exports/splitted/data_0.js"></script>
-    <script src="exports/splitted/data_1.js"></script>
-    <script src="exports/splitted/data_2.js"></script>
-    <script src="exports/splitted/data_3.js"></script>
-    <script src="exports/splitted/data_4.js"></script>
-    <script src="exports/splitted/data_5.js"></script>
-    <script src="exports/splitted/data_6.js"></script>
-    <script src="exports/splitted/data_7.js"></script>
-    <script src="exports/splitted/data_8.js"></script>
 </head>
 <body>
-<canvas id="cvs" width="100" height="100"></canvas>
+<canvas id="cvs" width="100" height="100" style="position: absolute;top:0;left: 0"></canvas>
 <div id="bodymovin"></div>
 
 <script>
@@ -94,25 +89,28 @@
         loop: true,
         prerender: false,
         autoplay: true,
-        animationData: bmsmd
+        path: 'exports/splitted/data.json'
     };
     var anim = bodymovin.loadAnimation(animData);
-    setTimeout(function(){
-        anim.includeLayers(bmsmd0);
-        anim.includeLayers(bmsmd1);
-        anim.includeLayers(bmsmd2);
-        anim.includeLayers(bmsmd3);
-        anim.includeLayers(bmsmd4);
-        anim.includeLayers(bmsmd5);
-        anim.includeLayers(bmsmd6);
-        anim.includeLayers(bmsmd7);
-        anim.includeLayers(bmsmd8);
-    },100);
-    /*anim.addEventListener('bm:config_ready', configReady);
-    anim.addEventListener('bm:data_ready', dataReady);
-    anim.addEventListener('bm:enterFrame', enterFrame);*/
+
+    var secondPart = {"assets":[{"id":"comp_1","layers":[{"ddd":0,"ind":0,"ty":5,"nm":"90","ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[378,462,0]},"a":{"k":[0,0,0]},"s":{"k":[100,100,100]}},"t":{"d":{"s":71,"f":"MongolianBaiti","t":"90","j":0,"tr":0,"fc":[255,0,0]},"p":{},"m":{"g":1,"a":{"k":[0,0]}},"a":[]},"ip":0,"op":750,"st":0},{"ddd":0,"ind":1,"ty":5,"nm":"67","ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[224,394,0]},"a":{"k":[0,0,0]},"s":{"k":[100,100,100]}},"t":{"d":{"s":71,"f":"Impact","t":"67","j":0,"tr":0,"fc":[0,121,255]},"p":{},"m":{"g":1,"a":{"k":[0,0]}},"a":[]},"ip":0,"op":750,"st":0},{"ddd":0,"ind":2,"ty":5,"nm":"34","ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[70,346,0]},"a":{"k":[0,0,0]},"s":{"k":[100,100,100]}},"t":{"d":{"s":71,"f":"GrafolitaScript-Medium","t":"34","j":0,"tr":0,"fc":[255,0,0]},"p":{},"m":{"g":1,"a":{"k":[0,0]}},"a":[]},"ip":0,"op":750,"st":0},{"ddd":0,"ind":3,"ty":1,"nm":"Medium Red Solid 1","ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[300.019,461.73,0]},"a":{"k":[125,125,0]},"s":{"k":[64,100,100]}},"sw":250,"sh":250,"sc":"#c55252","ip":0,"op":750,"st":0},{"ddd":0,"ind":4,"ty":1,"nm":"Medium Magenta Solid 1","ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[198.5,435.5,0]},"a":{"k":[125,125,0]},"s":{"k":[100,100,100]}},"sw":250,"sh":250,"sc":"#0d1b70","ip":0,"op":750,"st":0},{"ddd":0,"ind":5,"ty":1,"nm":"Medium Magenta Solid 1","ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[444.341,537.73,0]},"a":{"k":[125,125,0]},"s":{"k":[100,100,100]}},"sw":250,"sh":250,"sc":"#0d1b70","ip":0,"op":750,"st":0}]}],"fonts":{"list":[{"fName":"GrafolitaScript-Medium","fFamily":"Grafolita Script","fStyle":"Medium","ascent":77.6046752929688},{"fName":"Impact","fFamily":"Impact","fStyle":"Regular","ascent":79.0985107421875},{"fName":"MongolianBaiti","fFamily":"Mongolian Baiti","fStyle":"Regular","ascent":69.3984985351563}]},"v":"3.1.6","layers":[{"ddd":0,"ind":0,"ty":0,"nm":"_texto_box 2","refId":"comp_1","ks":{"o":{"k":100},"r":{"k":0},"p":{"k":[250,-58,0]},"a":{"k":[250,250,0]},"s":{"k":[100,100,100]}},"w":500,"h":500,"ip":111,"op":861,"st":111}],"ip":0,"op":750,"fr":25,"w":500,"h":500,"chars":[{"ch":"3","size":71,"style":"Medium","w":49.5,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","closed":true,"ks":{"k":{"i":[[10.574,20.444],[46.426,11.481],[35.348,-15.409],[29.507,-16.818],[29.709,-17.524],[46.124,-25.983],[38.269,-48.843],[22.156,-47.535],[13.092,-39.377],[16.214,-28.904],[20.343,-29.306],[18.027,-33.334],[22.155,-44.714],[38.269,-39.78],[29.608,-20.443],[20.947,-14.904],[21.048,-11.279],[39.377,-7.251],[32.227,16.315],[8.057,9.769],[8.963,-2.719],[9.164,-6.143],[3.021,1.209]],"o":[[33.838,20.444],[46.426,-12.487],[29.91,-16.718],[29.507,-17.422],[37.464,-21.451],[46.124,-43.808],[26.083,-48.843],[15.61,-42.902],[13.092,-31.623],[19.437,-28.098],[18.732,-31.018],[18.027,-40.686],[33.938,-44.714],[38.269,-24.774],[21.249,-16.415],[20.947,-12.286],[27.997,-9.467],[39.377,10.574],[14.099,16.315],[8.057,-0.302],[10.474,-5.035],[5.136,-3.021],[3.021,13.999]],"v":[[21.249,20.444],[46.426,-0.906],[30.313,-16.617],[29.507,-17.12],[30.112,-17.725],[46.124,-35.147],[30.212,-48.843],[19.034,-45.319],[13.092,-35.651],[19.437,-28.098],[20.343,-29.306],[18.027,-35.449],[27.795,-44.714],[38.269,-33.536],[21.652,-17.825],[20.947,-13.293],[21.35,-10.373],[39.377,2.719],[23.465,16.315],[8.057,2.518],[10.474,-5.035],[9.164,-6.143],[3.021,5.64]]}},"nm":"3"}],"nm":"3"},{"ty":"gr","it":[{"ind":0,"ty":"sh","closed":true,"ks":{"k":{"i":[[-10.675,0],[0,12.387],[5.035,1.208],[0,0.302],[-0.403,0.201],[0,9.164],[8.057,0],[3.122,-2.216],[0,-3.726],[-3.223,-0.806],[0,0],[0,2.115],[-5.64,0],[0,-6.244],[7.956,-2.618],[0,-1.611],[-0.302,-0.906],[0,-9.97],[8.762,0],[0,7.251],[-1.511,2.316],[0,0],[0,-4.431]],"o":[[12.589,0],[0,-11.581],[-0.403,-0.101],[0,-0.302],[7.352,-3.726],[0,-8.661],[-4.129,0],[-3.424,2.417],[0,4.028],[0,0],[-1.611,-1.712],[0,-5.237],[6.143,0],[0,8.762],[-0.403,1.41],[0,1.007],[6.647,0.906],[0,7.855],[-9.366,0],[0,-2.82],[0,0],[-4.028,3.122],[0,8.359]],"v":[[70.749,20.444],[95.926,-0.906],[79.813,-16.617],[79.007,-17.12],[79.611,-17.725],[95.624,-35.147],[79.712,-48.843],[68.533,-45.319],[62.592,-35.651],[68.936,-28.098],[69.843,-29.306],[67.526,-35.449],[77.295,-44.714],[87.769,-33.536],[71.152,-17.825],[70.447,-13.293],[70.85,-10.373],[88.876,2.719],[72.964,16.315],[57.556,2.518],[59.973,-5.035],[58.664,-6.143],[52.521,5.64]]}},"nm":"3"}],"nm":"3"}],"bounds":{"l":3,"t":-49,"b":21,"r":96}},"fFamily":"Grafolita Script"},{"ch":"4","size":71,"style":"Medium","w":50.3,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","closed":true,"ks":{"k":{"i":[[54.987,-4.633],[44.312,-6.848],[42.801,-33.334],[40.687,-47.937],[11.884,-19.135],[7.15,-0.403],[22.961,-0.604],[28.198,15.107],[28.601,21.149],[35.248,19.537],[37.161,7.855],[49.145,-2.115]],"o":[[49.448,-5.942],[40.585,-20.645],[43.808,-46.728],[26.386,-38.974],[5.338,-3.928],[16.013,0],[28.702,8.56],[28.198,19.739],[31.924,21.149],[36.96,14.603],[43.909,-2.014],[54.684,-2.115]],"v":[[54.987,-4.633],[38.974,-7.352],[45.923,-45.016],[37.766,-48.138],[4.935,-6.546],[8.963,1.007],[29.91,-1.108],[28.198,17.725],[30.212,21.149],[36.96,18.329],[38.269,-1.712],[54.684,-2.115]]}},"nm":"4"},{"ind":1,"ty":"sh","closed":true,"ks":{"k":{"i":[[27.09,-7.956],[13.998,-7.754],[9.769,-7.755],[27.292,-32.932],[35.449,-40.585],[36.658,-40.284],[36.456,-38.571],[32.63,-20.041]],"o":[[19.739,-7.956],[9.869,-7.553],[15.509,-17.222],[34.946,-40.284],[36.356,-40.585],[36.658,-39.377],[34.442,-29.407],[29.004,-7.956]],"v":[[25.177,-7.956],[9.869,-7.553],[9.769,-7.755],[34.14,-39.478],[35.953,-40.585],[36.658,-39.78],[36.255,-37.665],[30.817,-7.855]]}},"nm":"4"}],"nm":"4"},{"ty":"gr","it":[{"ind":0,"ty":"sh","closed":true,"ks":{"k":{"i":[[0,0],[5.338,0.504],[-3.122,11.682],[2.921,0.201],[6.949,-12.589],[-1.813,-1.41],[-6.949,0.504],[0,-2.618],[-1.611,0],[-1.712,1.208],[-1.108,9.567],[-5.539,0]],"o":[[-5.539,-1.309],[1.611,-13.293],[-2.115,-1.712],[-11.38,9.164],[0.403,2.618],[7.05,-1.007],[-1.208,9.668],[0,2.014],[1.712,0],[0,-3.726],[5.64,-0.302],[0,0]],"v":[[105.286,-4.633],[89.273,-7.352],[96.222,-45.016],[88.065,-48.138],[55.234,-6.546],[59.262,1.007],[80.209,-1.108],[78.497,17.725],[80.511,21.149],[87.259,18.329],[88.568,-1.712],[104.984,-2.115]]}},"nm":"4"},{"ind":1,"ty":"sh","closed":true,"ks":{"k":{"i":[[1.913,0],[4.129,-0.201],[0,0],[-6.848,6.546],[-0.504,0],[0,-0.504],[0.201,-0.906],[1.813,-12.186]],"o":[[-5.438,0],[0,0],[5.74,-9.467],[0.806,-0.806],[0.403,0],[0,0.403],[-1.813,8.258],[-1.813,-0.101]],"v":[[75.476,-7.956],[60.168,-7.553],[60.068,-7.755],[84.439,-39.478],[86.252,-40.585],[86.957,-39.78],[86.554,-37.665],[81.116,-7.855]]}},"nm":"4"},{"ty":"mm","mm":1,"nm":"Merge Paths 1"}],"nm":"4"}],"bounds":{"l":4,"t":-49,"b":22,"r":106}},"fFamily":"Grafolita Script"},{"ch":"6","size":71,"style":"Regular","w":54.15,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","closed":true,"ks":{"k":{"i":[[50.114,-67.106],[44.515,-76.139],[32.878,-80.615],[18.888,-79.907],[9.309,-74.951],[4.207,-66.284],[3.516,-53.645],[3.516,-33.301],[3.669,-18.701],[5.363,-9.757],[11.653,-2.149],[22.77,1.514],[36.075,0.879],[45.012,-3.442],[49.821,-10.53],[50.879,-20.052],[50.879,-31.885],[50.504,-40.235],[47.248,-48.047],[38.525,-52.93],[29.639,-52.4],[24.251,-48.698],[23.242,-59.18],[23.291,-64.111],[23.86,-66.861],[25.993,-68.408],[29.158,-68.083],[30.948,-65.975],[31.152,-61.735],[50.879,-58.057]],"o":[[47.054,-73.616],[37.419,-79.72],[22.852,-80.615],[12.019,-77.075],[5.338,-69.287],[3.654,-59.936],[3.516,-44.238],[3.516,-24.577],[4.288,-12.647],[9.041,-4.256],[18.424,0.781],[32.34,1.514],[42.488,-1.661],[48.69,-8.032],[50.667,-15.934],[50.879,-25.586],[50.879,-36.54],[49.007,-45.703],[41.715,-51.953],[32.047,-52.93],[25.733,-50.285],[23.242,-46.582],[23.242,-62.142],[23.487,-66.065],[25.163,-68.098],[28.206,-68.408],[30.558,-66.78],[31.111,-64.054],[31.152,-58.057],[50.879,-63.005]],"v":[[48.584,-70.361],[40.967,-77.93],[27.344,-80.615],[15.454,-78.491],[7.324,-72.119],[3.931,-63.11],[3.516,-44.238],[3.516,-33.301],[3.979,-15.674],[7.202,-7.007],[15.039,-0.684],[28.076,1.514],[39.282,-0.391],[46.851,-5.737],[50.244,-13.232],[50.879,-25.586],[50.879,-31.885],[49.756,-42.969],[44.482,-50],[34.912,-52.93],[27.686,-51.343],[23.242,-46.582],[23.242,-59.18],[23.389,-65.088],[24.512,-67.48],[27.002,-68.408],[29.858,-67.432],[31.03,-65.015],[31.152,-58.057],[50.879,-58.057]]}},"nm":"6"},{"ind":1,"ty":"sh","closed":true,"ks":{"k":{"i":[[31.152,-18.604],[30.696,-12.72],[27.994,-10.645],[24.748,-11.182],[23.242,-15.608],[23.242,-33.398],[23.559,-38.24],[25.83,-40.723],[29.606,-40.201],[31.152,-36.197]],"o":[[31.152,-14.958],[28.873,-11.06],[25.748,-10.645],[23.543,-13.33],[23.242,-19.092],[23.242,-36.295],[24.829,-40.226],[28.596,-40.723],[30.843,-38.118],[31.152,-33.398]],"v":[[31.152,-18.604],[29.785,-11.89],[27.148,-10.645],[24.146,-12.256],[23.242,-19.092],[23.242,-33.398],[24.194,-39.233],[27.197,-40.723],[30.225,-39.16],[31.152,-33.398]]}},"nm":"6"}],"nm":"6"},{"ty":"gr","it":[{"ind":0,"ty":"sh","closed":true,"ks":{"k":{"i":[[1.53,3.255],[3.548,1.791],[5.534,0],[3.434,-1.416],[1.985,-2.832],[0.276,-3.174],[0,-9.407],[0,0],[-0.31,-3.027],[-1.839,-2.75],[-3.386,-1.465],[-5.306,0],[-3.207,1.27],[-1.839,2.295],[-0.423,2.702],[0,5.534],[0,0],[0.748,2.734],[2.766,1.953],[3.613,0],[1.953,-1.057],[1.009,-2.116],[0,0],[-0.098,0.977],[-0.652,0.619],[-1.009,0],[-0.7,-0.651],[-0.082,-0.96],[0,-3.678],[0,0]],"o":[[-1.53,-3.255],[-3.548,-1.79],[-4.492,0],[-3.435,1.416],[-1.986,2.832],[-0.277,3.174],[0,0],[0,8.724],[0.309,3.027],[1.839,2.751],[3.385,1.465],[4.264,0],[3.206,-1.27],[1.839,-2.295],[0.423,-2.702],[0,0],[0,-4.655],[-0.749,-2.734],[-2.767,-1.953],[-2.865,0],[-1.953,1.058],[0,0],[0,-2.962],[0.098,-0.977],[0.651,-0.618],[1.204,0],[0.7,0.652],[0.081,0.961],[0,0],[0,-4.948]],"v":[[102.734,-70.361],[95.117,-77.93],[81.494,-80.615],[69.604,-78.491],[61.475,-72.119],[58.081,-63.11],[57.666,-44.238],[57.666,-33.301],[58.13,-15.674],[61.353,-7.007],[69.189,-0.684],[82.227,1.514],[93.433,-0.391],[101.001,-5.737],[104.395,-13.232],[105.029,-25.586],[105.029,-31.885],[103.906,-42.969],[98.633,-50],[89.063,-52.93],[81.836,-51.343],[77.393,-46.582],[77.393,-59.18],[77.539,-65.088],[78.662,-67.48],[81.152,-68.408],[84.009,-67.432],[85.181,-65.015],[85.303,-58.057],[105.029,-58.057]]}},"nm":"6"},{"ind":1,"ty":"sh","closed":true,"ks":{"k":{"i":[[0,0],[0.911,-0.83],[0.846,0],[0.602,1.074],[0,3.484],[0,0],[-0.635,0.993],[-1.367,0],[-0.619,-1.041],[0,-2.799]],"o":[[0,3.646],[-0.912,0.83],[-1.4,0],[-0.603,-1.074],[0,0],[0,-2.897],[0.635,-0.993],[1.399,0],[0.618,1.042],[0,0]],"v":[[85.303,-18.604],[83.936,-11.89],[81.299,-10.645],[78.296,-12.256],[77.393,-19.092],[77.393,-33.398],[78.345,-39.233],[81.348,-40.723],[84.375,-39.16],[85.303,-33.398]]}},"nm":"6"},{"ty":"mm","mm":1,"nm":"Merge Paths 1"}],"nm":"6"}],"bounds":{"l":3,"t":-81,"b":2,"r":106}},"fFamily":"Impact"},{"ch":"7","size":71,"style":"Regular","w":40.97,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","closed":true,"ks":{"k":{"i":[[0.586,-79.053],[0.586,-64.844],[20.093,-64.844],[6.055,0],[25.684,0],[38.281,-61.829],[38.281,-79.053]],"o":[[0.586,-79.053],[0.586,-64.844],[20.093,-64.844],[6.055,0],[25.684,0],[38.281,-61.829],[38.281,-79.053]],"v":[[0.586,-79.053],[0.586,-64.844],[20.093,-64.844],[6.055,0],[25.684,0],[38.281,-61.829],[38.281,-79.053]]}},"nm":"7"}],"nm":"7"},{"ty":"gr","it":[{"ind":0,"ty":"sh","closed":true,"ks":{"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[41.553,-79.053],[41.553,-64.844],[61.06,-64.844],[47.021,0],[66.65,0],[79.248,-61.829],[79.248,-79.053]]}},"nm":"7"}],"nm":"7"}],"bounds":{"l":0,"t":-80,"b":0,"r":80}},"fFamily":"Impact"},{"ch":"9","size":71,"style":"Regular","w":50,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","closed":true,"ks":{"k":{"i":[[8.057,1.367],[12.541,1.123],[18.848,-0.553],[24.633,-3.451],[29.996,-7.308],[35.831,-13.11],[40.787,-20.426],[44.116,-28.54],[45.703,-37.239],[45.19,-47.2],[41.699,-56.69],[35.767,-63.794],[27.734,-67.578],[18.701,-66.894],[11.451,-62.369],[6.437,-55.411],[3.955,-46.81],[4.402,-38.192],[7.406,-31.266],[12.263,-26.481],[18.586,-24.121],[29.622,-25.765],[31.087,-18.164],[24.544,-9.367],[19.661,-4.89],[14.152,-1.969],[7.746,-0.537],[5.273,1.367]],"o":[[10.335,1.367],[16.805,0.147],[22.754,-2.376],[28.247,-5.925],[33.869,-10.889],[39.314,-17.896],[43.196,-25.765],[45.386,-34.302],[45.703,-43.782],[43.14,-53.776],[37.989,-61.768],[30.591,-66.822],[21.516,-67.578],[13.623,-64.16],[7.837,-57.942],[4.451,-49.714],[3.955,-40.886],[6.193,-33.342],[10.466,-27.815],[16.398,-24.592],[25,-24.121],[33.464,-23.389],[26.107,-11.231],[21.354,-6.209],[16.08,-2.775],[10.017,-0.862],[5.273,-0.439],[5.273,1.367]],"v":[[8.057,1.367],[14.673,0.635],[20.801,-1.465],[26.44,-4.688],[31.689,-8.838],[37.573,-15.503],[41.992,-23.096],[44.751,-31.421],[45.703,-40.234],[44.165,-50.488],[39.844,-59.229],[33.179,-65.308],[24.609,-67.578],[16.162,-65.527],[9.644,-60.156],[5.444,-52.563],[3.955,-43.848],[5.298,-35.767],[8.936,-29.541],[14.331,-25.537],[20.898,-24.121],[34.766,-29.053],[27.637,-13.379],[22.949,-7.788],[17.871,-3.833],[12.085,-1.416],[5.273,-0.439],[5.273,1.367]]}},"nm":"9"},{"ind":1,"ty":"sh","closed":true,"ks":{"k":{"i":[[33.952,-31.437],[31.104,-30.005],[28.199,-29.052],[25.521,-28.564],[21.224,-29.085],[16.951,-32.592],[14.03,-38.346],[12.646,-45.979],[12.947,-53.711],[14.958,-59.236],[18.132,-62.776],[22.102,-64.404],[26.285,-64.07],[29.768,-61.832],[32.487,-58.252],[34.513,-53.784],[35.816,-48.95],[36.426,-44.221],[36.133,-36.897]],"o":[[32.063,-30.428],[29.15,-29.321],[26.343,-28.662],[22.917,-28.564],[18.229,-31.168],[14.836,-36.206],[12.923,-43.293],[12.646,-51.448],[14.152,-57.617],[16.976,-61.808],[20.736,-64.079],[24.967,-64.404],[28.694,-62.735],[31.657,-59.553],[33.919,-55.322],[35.456,-50.562],[36.304,-45.728],[36.426,-40.283],[34.798,-32.014]],"v":[[33.008,-30.933],[30.127,-29.663],[27.271,-28.857],[24.805,-28.564],[19.727,-30.127],[15.894,-34.399],[13.477,-40.82],[12.646,-48.877],[13.55,-55.664],[15.967,-60.522],[19.434,-63.428],[23.535,-64.404],[27.49,-63.403],[30.713,-60.693],[33.203,-56.787],[34.985,-52.173],[36.06,-47.339],[36.426,-42.822],[35.547,-32.666]]}},"nm":"9"}],"nm":"9"},{"ty":"gr","it":[{"ind":0,"ty":"sh","closed":true,"ks":{"k":{"i":[[0,0],[-2.132,0.488],[-1.953,0.912],[-1.807,1.237],[-1.693,1.53],[-1.742,2.393],[-1.205,2.67],[-0.635,2.881],[0,2.995],[1.025,3.288],[1.855,2.539],[2.588,1.514],[3.125,0],[2.539,-1.367],[1.807,-2.213],[0.993,-2.848],[0,-2.962],[-0.896,-2.425],[-1.53,-1.725],[-2.068,-0.944],[-2.312,0],[-5.144,3.288],[3.45,-4.785],[1.595,-1.579],[1.79,-1.057],[2.067,-0.553],[2.473,-0.098],[0,0]],"o":[[2.278,0],[2.132,-0.488],[1.953,-0.911],[1.807,-1.237],[2.18,-2.051],[1.741,-2.393],[1.204,-2.669],[0.635,-2.881],[0,-3.548],[-1.025,-3.288],[-1.855,-2.539],[-2.588,-1.514],[-3.093,0],[-2.539,1.367],[-1.807,2.214],[-0.993,2.849],[0,2.962],[0.895,2.425],[1.53,1.726],[2.067,0.945],[4.102,0],[-1.302,5.664],[-1.53,2.148],[-1.595,1.579],[-1.791,1.058],[-2.068,0.554],[0,0],[0,0]],"v":[[58.057,1.367],[64.673,0.635],[70.801,-1.465],[76.44,-4.688],[81.689,-8.838],[87.573,-15.503],[91.992,-23.096],[94.751,-31.421],[95.703,-40.234],[94.165,-50.488],[89.844,-59.229],[83.179,-65.308],[74.609,-67.578],[66.162,-65.527],[59.644,-60.156],[55.444,-52.563],[53.955,-43.848],[55.298,-35.767],[58.936,-29.541],[64.331,-25.537],[70.898,-24.121],[84.766,-29.053],[77.637,-13.379],[72.949,-7.788],[67.871,-3.833],[62.085,-1.416],[55.273,-0.439],[55.273,1.367]]}},"nm":"9"},{"ind":1,"ty":"sh","closed":true,"ks":{"k":{"i":[[0.944,-0.504],[0.977,-0.342],[0.928,-0.195],[0.716,0],[1.497,1.042],[1.057,1.807],[0.553,2.474],[0,2.898],[-0.603,1.953],[-1.009,1.286],[-1.302,0.652],[-1.433,0],[-1.205,-0.667],[-0.945,-1.139],[-0.716,-1.465],[-0.472,-1.611],[-0.244,-1.611],[0,-1.399],[0.586,-4.231]],"o":[[-0.945,0.505],[-0.977,0.342],[-0.928,0.195],[-1.888,0],[-1.498,-1.041],[-1.058,-1.807],[-0.554,-2.473],[0,-2.571],[0.602,-1.953],[1.009,-1.286],[1.302,-0.651],[1.432,0],[1.204,0.668],[0.944,1.14],[0.716,1.465],[0.471,1.611],[0.244,1.611],[0,2.539],[-0.749,0.652]],"v":[[83.008,-30.933],[80.127,-29.663],[77.271,-28.857],[74.805,-28.564],[69.727,-30.127],[65.894,-34.399],[63.477,-40.82],[62.646,-48.877],[63.55,-55.664],[65.967,-60.522],[69.434,-63.428],[73.535,-64.404],[77.49,-63.403],[80.713,-60.693],[83.203,-56.787],[84.985,-52.173],[86.06,-47.339],[86.426,-42.822],[85.547,-32.666]]}},"nm":"9"},{"ty":"mm","mm":1,"nm":"Merge Paths 1"}],"nm":"9"}],"bounds":{"l":3,"t":-68,"b":2,"r":96}},"fFamily":"Mongolian Baiti"},{"ch":"0","size":71,"style":"Regular","w":50,"data":{"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","closed":true,"ks":{"k":{"i":[[4.199,-23.152],[8.137,-11.164],[14.282,-2.897],[21.907,1.172],[27.36,0.952],[31.511,-0.537],[35.343,-3.011],[38.655,-6.201],[41.943,-11.157],[44.409,-17.253],[45.866,-23.893],[46.436,-31.135],[43.912,-53.401],[30.24,-67.578],[21.053,-67.155],[15.699,-64.331],[11.311,-59.863],[7.877,-54.215],[3.613,-40.332]],"o":[[6.543,-14.787],[12.076,-5.175],[19.262,0.357],[26.009,1.172],[30.159,0.074],[34.115,-2.099],[37.654,-5.094],[40.836,-9.228],[43.701,-15.161],[45.483,-21.614],[46.321,-28.646],[46.436,-44.71],[34.797,-64.99],[23.047,-67.578],[17.375,-65.462],[12.671,-61.499],[8.902,-56.153],[4.752,-46.826],[3.613,-27.735]],"v":[[5.371,-18.97],[10.156,-8.105],[16.772,-1.27],[24.707,1.172],[28.76,0.513],[32.813,-1.318],[36.499,-4.053],[39.502,-7.373],[42.822,-13.159],[44.946,-19.434],[46.094,-26.27],[46.436,-33.74],[38.867,-59.814],[25.195,-67.578],[19.214,-66.309],[14.185,-62.915],[10.107,-58.008],[7.031,-52.197],[3.613,-32.715]]}},"nm":"0"},{"ind":1,"ty":"sh","closed":true,"ks":{"k":{"i":[[13.289,-37.158],[14.03,-45.703],[16.471,-57.478],[22.509,-64.355],[29.346,-63.566],[33.512,-58.008],[36.865,-43.441],[36.678,-26.22],[35.367,-15.039],[33.512,-8.773],[31.201,-5.102],[28.532,-2.84],[25.733,-1.904],[20.931,-2.742],[16.715,-8.381],[14.241,-17.008],[13.184,-27.588]],"o":[[13.712,-42.822],[15.169,-53.613],[20.247,-62.979],[27.457,-64.355],[32.276,-60.408],[36.084,-49.739],[36.865,-30.745],[35.929,-18.408],[34.131,-10.352],[32.015,-6.169],[29.443,-3.442],[26.643,-2.091],[22.738,-1.904],[17.936,-6.095],[14.892,-13.948],[13.395,-23.909],[13.184,-34.326]],"v":[[13.501,-39.99],[14.453,-48.633],[18.359,-60.229],[25.146,-64.355],[30.811,-61.987],[34.521,-54.785],[36.865,-35.889],[36.304,-22.314],[34.619,-12.207],[32.764,-7.471],[30.322,-4.272],[27.588,-2.466],[24.854,-1.904],[19.434,-4.419],[15.771,-11.279],[13.818,-20.459],[13.184,-31.494]]}},"nm":"0"}],"nm":"0"},{"ty":"gr","it":[{"ind":0,"ty":"sh","closed":true,"ks":{"k":{"i":[[-1.172,-4.182],[-2.019,-3.059],[-2.49,-1.627],[-2.8,0],[-1.4,0.439],[-1.302,0.781],[-1.156,1.042],[-0.847,1.172],[-0.879,2.002],[-0.537,2.181],[-0.228,2.377],[0,2.605],[5.045,6.413],[5.045,0],[1.839,-0.846],[1.514,-1.416],[1.204,-1.855],[0.846,-2.018],[0,-7.617]],"o":[[1.172,4.183],[1.92,2.93],[2.49,1.627],[1.302,0],[1.399,-0.439],[1.302,-0.781],[1.155,-1.041],[1.334,-1.855],[0.879,-2.002],[0.537,-2.18],[0.227,-2.376],[0,-10.97],[-4.07,-5.176],[-2.148,0],[-1.839,0.847],[-1.514,1.416],[-1.205,1.855],[-2.279,5.371],[0,4.98]],"v":[[55.371,-18.97],[60.156,-8.105],[66.772,-1.27],[74.707,1.172],[78.76,0.513],[82.813,-1.318],[86.499,-4.053],[89.502,-7.373],[92.822,-13.159],[94.946,-19.434],[96.094,-26.27],[96.436,-33.74],[88.867,-59.814],[75.195,-67.578],[69.214,-66.309],[64.185,-62.915],[60.107,-58.008],[57.031,-52.197],[53.613,-32.715]]}},"nm":"0"},{"ind":1,"ty":"sh","closed":true,"ks":{"k":{"i":[[-0.212,2.832],[-0.423,2.93],[-1.888,2.751],[-2.637,0],[-1.465,-1.579],[-1.009,-3.223],[0,-7.552],[0.374,-3.906],[0.748,-2.832],[0.748,-1.302],[0.879,-0.83],[0.944,-0.374],[0.879,0],[1.497,1.677],[0.944,2.898],[0.423,3.451],[0,3.906]],"o":[[0.211,-2.832],[0.716,-4.98],[1.888,-2.75],[2.311,0],[1.465,1.579],[1.563,5.046],[0,5.144],[-0.375,3.906],[-0.488,1.855],[-0.749,1.302],[-0.879,0.83],[-0.945,0.375],[-2.116,0],[-1.498,-1.676],[-0.879,-2.669],[-0.423,-3.45],[0,-2.832]],"v":[[63.501,-39.99],[64.453,-48.633],[68.359,-60.229],[75.146,-64.355],[80.811,-61.987],[84.521,-54.785],[86.865,-35.889],[86.304,-22.314],[84.619,-12.207],[82.764,-7.471],[80.322,-4.272],[77.588,-2.466],[74.854,-1.904],[69.434,-4.419],[65.771,-11.279],[63.818,-20.459],[63.184,-31.494]]}},"nm":"0"},{"ty":"mm","mm":1,"nm":"Merge Paths 1"}],"nm":"0"}],"bounds":{"l":3,"t":-68,"b":2,"r":97}},"fFamily":"Mongolian Baiti"}]};
+
     //anim.play();
     //anim.playSegments([0,40],true);
+
+    setTimeout(function(){
+        anim.includeLayers(secondPart);
+    },100);
+
+    /*var stats = new Stats();
+    stats.setMode( 0 ); // 0: fps, 1: ms, 2: mb
+
+    // align top-left
+    stats.domElement.style.position = 'absolute';
+    stats.domElement.style.left = '0px';
+    stats.domElement.style.top = '0px';
+
+    document.body.appendChild( stats.domElement );*/
 </script>
 </body>
 </html>
diff --git a/player/js/animation/AnimationItem.js b/player/js/animation/AnimationItem.js
index 1f0563a..a45cd98 100644
--- a/player/js/animation/AnimationItem.js
+++ b/player/js/animation/AnimationItem.js
@@ -154,12 +154,18 @@
             }
         }
     }
+    if(data.chars || data.fonts){
+        this.renderer.globalData.fontManager.addChars(data.chars);
+        this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);
+    }
+
     if(data.assets){
         len = data.assets.length;
         for(i = 0; i < len; i += 1){
             this.animationData.assets.push(data.assets[i]);
         }
     }
+
     dataManager.completeData(this.animationData,this.renderer.globalData.fontManager);
     this.renderer.includeLayers(data.layers);
     this.renderer.buildStage(this.container, this.layers);
@@ -226,10 +232,10 @@
     this.firstFrame = Math.round(this.animationData.ip);
     this.frameMult = this.animationData.fr / 1000;
     /*
-    this.firstFrame = 761;
+    this.firstFrame = 90;
     this.totalFrames = 1;
     this.animationData.tf = 1;
-    //this.frameMult = 10000/1000;
+    //this.frameMult = 1/100;
     //*/////
     this.trigger('config_ready');
     this.loadSegments();
diff --git a/player/js/animation/AnimationManager.js b/player/js/animation/AnimationManager.js
index d939814..1ffb792 100644
--- a/player/js/animation/AnimationManager.js
+++ b/player/js/animation/AnimationManager.js
@@ -65,6 +65,9 @@
     }
 
     function resume(nowTime) {
+
+        //nowTime = Date.now();
+
         var elapsedTime = nowTime - initTime;
         var i;
         for(i=0;i<len;i+=1){
@@ -86,6 +89,7 @@
         }
         ctx.fillRect(0,0,100,100);*/
         requestAnimationFrame(resume);
+
     }
 
     function first(nowTime){
diff --git a/player/js/elements/htmlElements/HImageElement.js b/player/js/elements/htmlElements/HImageElement.js
new file mode 100644
index 0000000..98a5f1b
--- /dev/null
+++ b/player/js/elements/htmlElements/HImageElement.js
@@ -0,0 +1,52 @@
+function HImageElement(data,parentContainer,globalData,comp, placeholder){
+    this.assetData = globalData.getAssetData(data.refId);
+    this.path = globalData.getPath();
+    this.parent.constructor.call(this,data,parentContainer,globalData,comp, placeholder);
+}
+createElement(HBaseElement, HImageElement);
+
+HImageElement.prototype.createElements = function(){
+
+    var imageLoaded = function(){
+        this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink','href',this.path+this.assetData.p);
+    };
+
+    var img = new Image();
+
+    var parent;
+    if(this.data.hasMask){
+        var parent = document.createElement('div');
+        styleDiv(parent);
+        var cont = document.createElementNS(svgNS,'svg');
+        cont.setAttribute('width',this.assetData.w);
+        cont.setAttribute('height',this.assetData.h);
+        parent.appendChild(cont);
+        this.imageElem = document.createElementNS(svgNS,'image');
+        this.imageElem.setAttribute('width',this.assetData.w+"px");
+        this.imageElem.setAttribute('height',this.assetData.h+"px");
+        cont.appendChild(this.imageElem);
+        this.layerElement = parent;
+        this.parentContainer.appendChild(parent);
+        this.innerElem = parent;
+        this.maskedElement = this.imageElem;
+        img.addEventListener('load', imageLoaded.bind(this), false);
+        img.addEventListener('error', imageLoaded.bind(this), false);
+    } else {
+        styleDiv(img);
+        this.layerElement = img;
+        this.parentContainer.appendChild(img);
+        this.innerElem = img;
+    }
+    img.src = this.path+this.assetData.p;
+    if(this.data.ln){
+        this.innerElem.setAttribute('id',this.data.ln);
+    }
+};
+
+
+
+HImageElement.prototype.hide = HSolidElement.prototype.hide;
+
+HImageElement.prototype.renderFrame = HSolidElement.prototype.renderFrame;
+
+HImageElement.prototype.destroy = HSolidElement.prototype.destroy;
\ No newline at end of file
diff --git a/player/js/elements/htmlElements/HTextElement.js b/player/js/elements/htmlElements/HTextElement.js
index 93f8d18..a11fa8f 100644
--- a/player/js/elements/htmlElements/HTextElement.js
+++ b/player/js/elements/htmlElements/HTextElement.js
@@ -125,6 +125,9 @@
                     tCont.setAttribute('height',bBound - tBound);
                     tCont.setAttribute('viewBox',lBound+' '+tBound+' '+(rBound - lBound)+' '+(bBound - tBound));
                     tCont.style.transform = 'translate('+lBound+'px,'+ tBound+'px)';
+                } else{
+                    tCont.setAttribute('width',1);
+                    tCont.setAttribute('height',1);
                 }
             }else{
                 this.innerElem.appendChild(tSpan);
diff --git a/player/js/elements/svgElements/SVGBaseElement.js b/player/js/elements/svgElements/SVGBaseElement.js
index 7dc1283..74f85c2 100644
--- a/player/js/elements/svgElements/SVGBaseElement.js
+++ b/player/js/elements/svgElements/SVGBaseElement.js
@@ -13,6 +13,8 @@
 
 SVGBaseElement.prototype.appendNodeToParent = function(node) {
     if(this.placeholder){
+        console.log(this.placeholder);
+        console.log(this.placeholder.phElement);
         var g = this.placeholder.phElement;
         g.parentNode.insertBefore(node, g);
         //g.parentNode.removeChild(g);
diff --git a/player/js/mask.js b/player/js/mask.js
index 8ed4adb..5b1c26e 100644
--- a/player/js/mask.js
+++ b/player/js/mask.js
@@ -19,7 +19,7 @@
     var currentMasks = [];
     var j, jLen;
     var layerId = randomString(10);
-    var rect, expansor, feMorph;
+    var rect, expansor, feMorph,x;
     var maskType = 'clipPath', maskRef = 'clip-path';
     for (i = 0; i < len; i++) {
 
@@ -38,7 +38,7 @@
             currentMasks.push(rect);
         }
 
-        if(properties[i].mode == 'n') {
+        if(properties[i].mode == 'n' || properties[i].cl === false) {
             this.viewData[i] = {
                 prop: PropertyFactory.getShapeProp(this.element,properties[i],3,this.dynamicProperties,null)
             };
@@ -67,7 +67,7 @@
         if(properties[i].x.k !== 0){
             maskType = 'mask';
             maskRef = 'mask';
-            var x = PropertyFactory.getProp(this.element,properties[i].x,0,null,this.dynamicProperties);
+            x = PropertyFactory.getProp(this.element,properties[i].x,0,null,this.dynamicProperties);
             var filterID = 'fi_'+randomString(10);
             expansor = document.createElementNS(svgNS,'filter');
             expansor.setAttribute('id',filterID);
@@ -84,6 +84,7 @@
             }
         }else{
             feMorph = null;
+            x = null;
         }
 
 
@@ -157,7 +158,7 @@
 MaskElement.prototype.renderFrame = function () {
     var i, len = this.masksProperties.length;
     for (i = 0; i < len; i++) {
-        if(this.masksProperties[i].mode !== 'n'){
+        if(this.masksProperties[i].mode !== 'n' && this.masksProperties[i].cl !== false){
             if(this.viewData[i].prop.mdf || this.firstFrame){
                 this.drawPath(this.masksProperties[i],this.viewData[i].prop.v,this.viewData[i]);
             }
@@ -174,7 +175,6 @@
                         this.storedData[i].lastOperator = 'dilate';
                         this.storedData[i].elem.setAttribute('filter',null);
                     }
-                    console.log(this.storedData[i].x.v*2);
                     this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v*2);
 
                 }
diff --git a/player/js/renderers/HybridRenderer.js b/player/js/renderers/HybridRenderer.js
index e9881eb..d08d5f9 100644
--- a/player/js/renderers/HybridRenderer.js
+++ b/player/js/renderers/HybridRenderer.js
@@ -108,7 +108,10 @@
 };
 
 HybridRenderer.prototype.createImage = function (data,parentContainer,comp, placeholder) {
-    return new IImageElement(data, parentContainer,this.globalData,comp, placeholder);
+    if(comp.isSvg){
+        return new IImageElement(data, parentContainer,this.globalData,comp, placeholder);
+    }
+    return new HImageElement(data, parentContainer,this.globalData,comp, placeholder);
 };
 
 HybridRenderer.prototype.createComp = function (data,parentContainer,comp, placeholder) {
diff --git a/player/js/utils/FontManager.js b/player/js/utils/FontManager.js
index 633cd42..d4e8270 100644
--- a/player/js/utils/FontManager.js
+++ b/player/js/utils/FontManager.js
@@ -108,6 +108,25 @@
     }
 
     function addChars(chars){
+        if(!this.chars){
+            this.chars = [];
+        }
+        var i, len = chars.length;
+        var j, jLen = this.chars.length, found;
+        for(i=0;i<len;i+=1){
+            j = 0;
+            found = false;
+            while(j<jLen){
+                if(this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch){
+                    found = true;
+                }
+                j += 1;
+            }
+            if(!found){
+                this.chars.push(chars[i]);
+                jLen += 1;
+            }
+        }
         this.chars = chars;
     }
 
diff --git a/player/js/utils/PropertyFactory.js b/player/js/utils/PropertyFactory.js
index 6fbc3fe..e3b8244 100644
--- a/player/js/utils/PropertyFactory.js
+++ b/player/js/utils/PropertyFactory.js
@@ -59,7 +59,7 @@
                         fnc = bez.getEasingCurve(keyData.o.x,keyData.o.y,keyData.i.x,keyData.i.y,keyData.n);
                         keyData.__fnct = fnc;
                     }
-                    perc = fnc('',(frameNum)-(keyData.t-this.offsetTime),0,1,(nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime));
+                    perc = fnc((frameNum-(keyData.t-this.offsetTime))/((nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime)));
                     var distanceInLine = bezierData.segmentLength*perc;
 
                     var segmentPerc;
@@ -146,7 +146,7 @@
                         }else if(frameNum < keyData.t-this.offsetTime){
                             perc = 0;
                         }else{
-                            perc = fnc('',(frameNum)-(keyData.t-this.offsetTime),0,1,(nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime));
+                            perc = fnc((frameNum-(keyData.t-this.offsetTime))/((nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime)));
                         }
                     }
 
@@ -222,7 +222,7 @@
                     }else if(frameNum < keyData.t-this.offsetTime){
                         perc = 0;
                     }else{
-                        perc = fnc('',(frameNum)-(keyData.t-this.offsetTime),0,1,(nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime));
+                        perc = fnc((frameNum-(keyData.t-this.offsetTime))/((nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime)));
                     }
                     keyPropE = keyData.e[0];
                 }
@@ -483,6 +483,8 @@
             this.pv.v[i] = new Array(jLen);
         }
         this.lastFrame = initFrame;
+        var shapeData = type === 3 ? data.pt : data.ks;
+        checkExpressions.bind(this)(elem,shapeData);
     }
 
     var EllShapeProperty = (function(){
@@ -1056,7 +1058,8 @@
             this.comp = elem.comp;
             this.mult = .01;
             this.type = 'textSelector';
-            this.textTotal = data.totalChars
+            this.textTotal = data.totalChars;
+            this.selectorValue = 100;
             checkExpressions.bind(this)(elem,data);
             this.getMult = getValueProxy;
         }
@@ -1099,7 +1102,7 @@
                 }else{
                     mult = max(0,min(0.5/(e-s) + (ind-s)/(e-s),1));
                 }
-                mult = easer('',mult,0,1,1);
+                mult = easer(mult);
             }else if(type == 3){
                 if(e === s){
                     mult = ind >= e ? 0 : 1;
@@ -1107,7 +1110,7 @@
                     mult = 1 - max(0,min(0.5/(e-s) + (ind-s)/(e-s),1));
                 }
 
-                mult = easer('',mult,0,1,1);
+                mult = easer(mult);
             }else if(type == 4){
                 if(e === s){
                     mult = ind >= e ? 0 : 1;
@@ -1142,7 +1145,7 @@
                     }
                 }
             }
-            return mult;
+            return mult*this.a.v;
         }
 
         return function TextSelectorProp(elem,data, arr){
@@ -1164,6 +1167,7 @@
             this.o = getProp(elem,data.o || {k:0},0,0,this.dynamicProperties);
             this.xe = getProp(elem,data.xe || {k:0},0,0,this.dynamicProperties);
             this.ne = getProp(elem,data.ne || {k:0},0,0,this.dynamicProperties);
+            this.a = getProp(elem,data.a,0,0.01,this.dynamicProperties);
             if(this.dynamicProperties.length){
                 arr.push(this);
             }else{
diff --git a/player/js/utils/bez.js b/player/js/utils/bez.js
index cc6fe4c..bb0e006 100644
--- a/player/js/utils/bez.js
+++ b/player/js/utils/bez.js
@@ -16,9 +16,8 @@
         }
         var A0, B0, C0;
         var A1, B1, C1;
-        easingFunctions[encodedFuncName] = function(x, t, b, c, d) {
-            var tt = t/d;
-            x = tt;
+        easingFunctions[encodedFuncName] = function(tt) {
+            var x = tt;
             var i = 0, z;
             while (++i < 20) {
                 C0 = 3 * aa;
diff --git a/player/js/utils/common.js b/player/js/utils/common.js
index ca93c69..c1ac63b 100644
--- a/player/js/utils/common.js
+++ b/player/js/utils/common.js
@@ -1,4 +1,4 @@
-var subframeEnabled = true;
+var subframeEnabled = false;
 var cachedColors = {};
 var bm_rounder = Math.round;
 var bm_rnd;
diff --git a/player/js/utils/expressions/ExpressionManager.js b/player/js/utils/expressions/ExpressionManager.js
index a6c4c25..608b6d3 100644
--- a/player/js/utils/expressions/ExpressionManager.js
+++ b/player/js/utils/expressions/ExpressionManager.js
@@ -163,11 +163,12 @@
             }
             return ob;
         }
-        var time, value,textIndex,textTotal;
+        var time, value,textIndex,textTotal,selectorValue;
         function execute(){
             if(this.type === 'textSelector'){
                 textIndex = this.textIndex;
                 textTotal = this.textTotal;
+                selectorValue = this.selectorValue;
             }
             if(!transform){
                 transform = elem.transform;
@@ -200,8 +201,12 @@
                     this.lastValue = this.v;
                     this.mdf = true;
                 }
+            }else if(this.v.i){
+                // Todo Improve validation for masks and shapes
+                this.mdf = true;
             }else{
                 len = this.v.length;
+                console.log(this.v);
                 for(i = 0; i < len; i += 1){
                     if(this.v[i] !== this.lastValue[i]){
                         this.lastValue[i] = this.v[i];
