expansion fix
diff --git a/player/index.html b/player/index.html
index 4a97732..7a8076a 100644
--- a/player/index.html
+++ b/player/index.html
@@ -71,7 +71,7 @@
 
     var animData = {
         container: document.getElementById('bodymovin'),
-        renderer: 'canvas',
+        renderer: 'svg',
         loop: false,
         prerender: false,
         autoplay: true,
diff --git a/player/js/animation/AnimationItem.js b/player/js/animation/AnimationItem.js
index 8d302d2..0200859 100644
--- a/player/js/animation/AnimationItem.js
+++ b/player/js/animation/AnimationItem.js
@@ -212,9 +212,9 @@
     this.firstFrame = Math.round(this.animationData.ip);
     this.frameMult = this.animationData.fr / 1000;
     /*
-    this.firstFrame = 187;
-    this.totalFrames = 2;
-    this.animationData.tf = 2;
+    this.firstFrame = 205;
+    this.totalFrames = 1;
+    this.animationData.tf = 1;
     //this.frameMult = 10000/1000;
     //*/////
     this.trigger('config_ready');
diff --git a/player/js/elements/BaseElement.js b/player/js/elements/BaseElement.js
index a14d91b..26b3d20 100644
--- a/player/js/elements/BaseElement.js
+++ b/player/js/elements/BaseElement.js
@@ -91,3 +91,7 @@
         return {w:this.data.width,h:this.data.height};
     }
 };
+
+BaseElement.prototype.mask = function(nm){
+    return this.maskManager.getMask(nm);
+}
diff --git a/player/js/elements/canvasElements/CVMaskElement.js b/player/js/elements/canvasElements/CVMaskElement.js
index c440cf0..1b58f40 100644
--- a/player/js/elements/canvasElements/CVMaskElement.js
+++ b/player/js/elements/canvasElements/CVMaskElement.js
@@ -59,6 +59,18 @@
     }
 };
 
+CVMaskElement.prototype.getMask = function(nm){
+    var i = 0, len = this.masksProperties.length;
+    while(i<len){
+        if(this.masksProperties[i].nm === nm){
+            return {
+                maskPath: this.viewData[i].pv
+            }
+        }
+        i += 1;
+    }
+};
+
 CVMaskElement.prototype.destroy = function(){
     this.ctx = null;
 };
\ No newline at end of file
diff --git a/player/js/mask.js b/player/js/mask.js
index a623bbc..ed7b777 100644
--- a/player/js/mask.js
+++ b/player/js/mask.js
@@ -63,6 +63,9 @@
         path.setAttribute('clip-rule','nonzero');
 
         if(properties[i].x.k !== 0){
+            maskType = 'mask';
+            maskRef = 'mask';
+            var 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 +87,7 @@
 
         this.storedData[i] = {
              elem: path,
+             x: x,
              expan: feMorph,
             lastPath: '',
             lastOperator:'',
@@ -147,28 +151,25 @@
 MaskElement.prototype.renderFrame = function () {
     var i, len = this.masksProperties.length;
     for (i = 0; i < len; i++) {
-        if(this.masksProperties[i].mode !== 'n' && (this.viewData[i].prop.mdf || this.firstFrame)){
-            this.drawPath(this.masksProperties[i],this.viewData[i].prop.v,this.viewData[i]);
-            if(this.storedData[i].expan){
-                feMorph = this.storedData[i].expan;
-                if(this.masksProperties[i].expansion[num] < 0){
+        if(this.masksProperties[i].mode !== 'n'){
+            if(this.viewData[i].prop.mdf || this.firstFrame){
+                this.drawPath(this.masksProperties[i],this.viewData[i].prop.v,this.viewData[i]);
+            }
+            if(this.storedData[i].x && (this.storedData[i].x.mdf || this.firstFrame)){
+                var feMorph = this.storedData[i].expan;
+                if(this.storedData[i].x.v < 0){
                     if(this.storedData[i].lastOperator !== 'erode'){
                         this.storedData[i].lastOperator = 'erode';
                         this.storedData[i].elem.setAttribute('filter','url(#'+this.storedData[i].filterId+')');
                     }
-                    if(this.storedData[i].lastRadius !== this.masksProperties[i].expansion[num]){
-                        feMorph.setAttribute('radius',-this.masksProperties[i].expansion[num]);
-                        this.storedData[i].lastRadius = this.masksProperties[i].expansion[num];
-                    }
+                    feMorph.setAttribute('radius',-this.storedData[i].x.v);
                 }else{
                     if(this.storedData[i].lastOperator !== 'dilate'){
                         this.storedData[i].lastOperator = 'dilate';
-                        this.storedData[i].elem.setAttribute('filter',null);;
+                        this.storedData[i].elem.setAttribute('filter',null);
                     }
-                    if(this.storedData[i].lastRadius !== this.masksProperties[i].expansion[num]){
-                        this.storedData[i].elem.setAttribute('stroke-width', this.masksProperties[i].expansion[num]*2)
-                        this.storedData[i].lastRadius = this.masksProperties[i].expansion[num];
-                    }
+                    console.log(this.storedData[i].x.v*2);
+                    this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v*2);
 
                 }
             }
@@ -220,6 +221,18 @@
     }
 };
 
+MaskElement.prototype.getMask = function(nm){
+    var i = 0, len = this.masksProperties.length;
+    while(i<len){
+        if(this.masksProperties[i].nm === nm){
+            return {
+                maskPath: this.viewData[i].prop.pv
+            }
+        }
+        i += 1;
+    }
+};
+
 MaskElement.prototype.destroy = function(){
     this.element = null;
     this.globalData = null;
diff --git a/player/js/utils/PropertyFactory.js b/player/js/utils/PropertyFactory.js
index 508566c..49c965e 100644
--- a/player/js/utils/PropertyFactory.js
+++ b/player/js/utils/PropertyFactory.js
@@ -423,8 +423,9 @@
         this.closed = type === 3 ? data.cl : data.closed;
         this.numNodes = type === 3 ? data.pt.k.v : data.ks.k.v.length;
         this.v = type === 3 ? data.pt.k : data.ks.k;
+        var shapeData = type === 3 ? data.pt : data.ks;
         this.pv = this.v;
-        checkExpressions.bind(this)(elem,data);
+        checkExpressions.bind(this)(elem,shapeData);
     }
 
     function KeyframedShapeProperty(elem,data,type){