merge with 39_repeaters
diff --git a/player/index.html b/player/index.html
index 7bb946a..6771caa 100644
--- a/player/index.html
+++ b/player/index.html
@@ -120,7 +120,7 @@
     var animData = {
         container: elem,
         renderer: 'svg',
-        loop: false,
+        loop: true,
         autoplay: true,
         rendererSettings: {
             progressiveLoad:false
diff --git a/player/js/utils/expressions/EffectInterface.js b/player/js/utils/expressions/EffectInterface.js
index 239f6d0..eae83be 100644
--- a/player/js/utils/expressions/EffectInterface.js
+++ b/player/js/utils/expressions/EffectInterface.js
@@ -49,6 +49,13 @@
             }
             return effectElements[0]();
         }
+        if(data.mn === 'ADBE Color Control'){
+            Object.defineProperty(groupInterface, 'color', {
+                get: function(){
+                    return effectElements[0]();
+                }
+            });
+        }
         groupInterface.active = data.en !== 0;
         return groupInterface
     }
diff --git a/player/js/utils/expressions/ExpressionManager.js b/player/js/utils/expressions/ExpressionManager.js
index d186b2c..77b66ff 100644
--- a/player/js/utils/expressions/ExpressionManager.js
+++ b/player/js/utils/expressions/ExpressionManager.js
@@ -682,7 +682,7 @@
                     }
                 }
             }
-            
+
             if(this.v.length === 1){
                 this.v = this.v[0];
             }
diff --git a/player/js/utils/expressions/ShapeInterface.js b/player/js/utils/expressions/ShapeInterface.js
index 65fb17a..9a8e298 100644
--- a/player/js/utils/expressions/ShapeInterface.js
+++ b/player/js/utils/expressions/ShapeInterface.js
@@ -129,6 +129,7 @@
            };
            interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);
            interfaceFunction.numProperties = interfaces.length;
+           interfaceFunction.propertyIndex = shape.cix;
 
            return interfaceFunction;
        }
@@ -187,7 +188,8 @@
                 }
             });
             //interfaceFunction.content = interfaceFunction;
-            interfaceFunction.numProperties = 1;
+            interfaceFunction.numProperties = shape.np;
+            interfaceFunction.propertyIndex = shape.ix;
             interfaceFunction.nm = shape.nm;
             interfaceFunction.mn = shape.mn;
             return interfaceFunction;
@@ -246,9 +248,6 @@
                     }
                 });
             }
-            view.c.setGroupProperty(_propertyGroup);
-            view.o.setGroupProperty(_propertyGroup);
-            view.w.setGroupProperty(_propertyGroup);
             var i, len = shape.d ? shape.d.length : 0;
             var dashOb = {}
             for (i = 0; i < len; i += 1) {
@@ -288,8 +287,9 @@
             Object.defineProperty(interfaceFunction, '_name', { value: shape.nm });
             Object.defineProperty(interfaceFunction, 'mn', { value: shape.mn });
 
-            view.c.setGroupProperty(propertyGroup);
-            view.o.setGroupProperty(propertyGroup);
+            view.c.setGroupProperty(_propertyGroup);
+            view.o.setGroupProperty(_propertyGroup);
+            view.w.setGroupProperty(_propertyGroup);
             return interfaceFunction;
         }
     }());
@@ -310,7 +310,7 @@
             view.o.setGroupProperty(_propertyGroup);
 
             function interfaceFunction(val){
-                if(val === shape.e.ix){
+                if(val === shape.e.ix || val === 'End' || val === 'end'){
                     return interfaceFunction.end;
                 }
                 if(val === shape.s.ix){
@@ -400,7 +400,7 @@
                 if(value === 'Scale') {
                     return interfaceFunction.scale;
                 }
-                if(value === 'Rotation') {
+                if(value === 'Rotation' || value === 'ADBE Vector Rotation') {
                     return interfaceFunction.rotation;
                 }
                 if(value === 'Skew') {