expression fixes
diff --git a/gulpfile.js b/gulpfile.js
index 427578b..b1a6a55 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -17,7 +17,7 @@
 var eventstream = require("event-stream");
 var jslint = require('gulp-jslint');
 
-var bm_version = '5.0.0';
+var bm_version = '5.0.1';
 
 var files = [
     {
diff --git a/package.json b/package.json
index 8db2fc2..c0c32a1 100644
--- a/package.json
+++ b/package.json
@@ -1,11 +1,11 @@
 {
-  "name": "bodymovin",
-  "version": "4.13.0",
+  "name": "lottie-web",
+  "version": "5.0.1",
   "description": "After Effects plugin for exporting animations to SVG + JavaScript or canvas + JavaScript",
-  "main": "./build/player/bodymovin.js",
+  "main": "./build/player/lottie.js",
   "repository": {
     "type": "git",
-    "url": "https://github.com/bodymovin/bodymovin.git"
+    "url": "https://github.com/airbnb/lottie-web.git"
   },
   "scripts": {
     "start": "gulp buildAll"
diff --git a/player/index.html b/player/index.html
index af9e2e1..026c43d 100644
--- a/player/index.html
+++ b/player/index.html
@@ -134,7 +134,7 @@
         container: elem,
         renderer: 'svg',
         loop: false,
-        autoplay: true,
+        autoplay: false,
         rendererSettings: {
             progressiveLoad:false
         },
diff --git a/player/js/utils/expressions/ExpressionManager.js b/player/js/utils/expressions/ExpressionManager.js
index a0ff0b8..749b455 100644
--- a/player/js/utils/expressions/ExpressionManager.js
+++ b/player/js/utils/expressions/ExpressionManager.js
@@ -21,6 +21,10 @@
         }
     }
 
+    function isTypeOfArray(arr) {
+        return arr.constructor === Array || arr.constructor === Float32Array;
+    }
+
     function shapesEqual(shape1, shape2) {
         if(shape1._length !== shape2._length || shape1.c !== shape2.c){
             return false;
@@ -41,7 +45,7 @@
         if(tOfA === 'number' || tOfA === 'boolean'  || a instanceof Number ){
             return -a;
         }
-        if(a.constructor === Array){
+        if(isTypeOfArray(a)){
             var i, lenA = a.length;
             var retArr = [];
             for(i=0;i<lenA;i+=1){
@@ -60,15 +64,15 @@
         if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number) && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string'  || b instanceof Number)) {
             return a + b;
         }
-        if(a.constructor === Array && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number )){
+        if(isTypeOfArray(a) && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number )){
             a[0] = a[0] + b;
             return a;
         }
-        if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number ) && b.constructor === Array){
+        if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number ) && isTypeOfArray(b)){
             b[0] = a + b[0];
             return b;
         }
-        if(a.constructor === Array && b.constructor === Array){
+        if(isTypeOfArray(a) && isTypeOfArray(b)){
             
             var i = 0, lenA = a.length, lenB = b.length;
             var retArr = [];
@@ -98,15 +102,15 @@
             }
             return a - b;
         }
-        if( a.constructor === Array && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number )){
+        if( isTypeOfArray(a) && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number )){
             a[0] = a[0] - b;
             return a;
         }
-        if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number ) &&  b.constructor === Array){
+        if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number ) &&  isTypeOfArray(b)){
             b[0] = a - b[0];
             return b;
         }
-        if(a.constructor === Array && b.constructor === Array){
+        if(isTypeOfArray(a) && isTypeOfArray(b)){
             var i = 0, lenA = a.length, lenB = b.length;
             var retArr = [];
             while(i<lenA || i < lenB){
@@ -131,7 +135,7 @@
         }
 
         var i, len;
-        if(a.constructor === Array && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number )){
+        if(isTypeOfArray(a) && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number )){
             len = a.length;
             arr = createTypedArray('float32', len);
             for(i=0;i<len;i+=1){
@@ -139,7 +143,7 @@
             }
             return arr;
         }
-        if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number ) && b.constructor === Array){
+        if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number ) && isTypeOfArray(b)){
             len = b.length;
             arr = createTypedArray('float32', len);
             for(i=0;i<len;i+=1){
@@ -158,7 +162,7 @@
             return a / b;
         }
         var i, len;
-        if(a.constructor === Array && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number  )){
+        if(isTypeOfArray(a) && (tOfB === 'number' || tOfB === 'boolean' || tOfB === 'string' || b instanceof Number  )){
             len = a.length;
             arr = createTypedArray('float32', len);
             for(i=0;i<len;i+=1){
@@ -166,7 +170,7 @@
             }
             return arr;
         }
-        if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number ) && b.constructor === Array){
+        if((tOfA === 'number' || tOfA === 'boolean' || tOfA === 'string' || a instanceof Number ) && isTypeOfArray(b)){
             len = b.length;
             arr = createTypedArray('float32', len);
             for(i=0;i<len;i+=1){
diff --git a/player/js/utils/expressions/TransformInterface.js b/player/js/utils/expressions/TransformInterface.js
index 65ca0e3..5573025 100644
--- a/player/js/utils/expressions/TransformInterface.js
+++ b/player/js/utils/expressions/TransformInterface.js
@@ -17,7 +17,7 @@
                 case "Position":
                 case "ADBE Position":
                 case 2:
-                    return transform.position;
+                    return _thisFunction.position;
                 case "anchorPoint":
                 case "AnchorPoint":
                 case "Anchor Point":
diff --git a/player/js/utils/helpers/svg_elements.js b/player/js/utils/helpers/svg_elements.js
new file mode 100644
index 0000000..43a9ce4
--- /dev/null
+++ b/player/js/utils/helpers/svg_elements.js
@@ -0,0 +1,3 @@
+function createNS(type) {
+	return document.createElementNS(svgNS, type);
+}
\ No newline at end of file