source text expression
diff --git a/player/index.html b/player/index.html
index 89769dc..8d2f0a4 100644
--- a/player/index.html
+++ b/player/index.html
@@ -90,6 +90,7 @@
     <script src="js/utils/expressions/ExpressionPropertyDecorator.js" data-light-skip="true"></script>
     <script src="js/utils/expressions/ExpressionManager.js" data-light-skip="true"></script>
     <script src="js/utils/expressions/ShapeInterface.js" data-light-skip="true"></script>
+    <script src="js/utils/expressions/TextInterface.js" data-light-skip="true"></script>
     <script src="js/utils/expressions/LayerInterface.js" data-light-skip="true"></script>
     <script src="js/utils/expressions/CompInterface.js" data-light-skip="true"></script>
     <script src="js/utils/expressions/TransformInterface.js" data-light-skip="true"></script>
diff --git a/player/js/elements/BaseElement.js b/player/js/elements/BaseElement.js
index 92b17b8..833c499 100644
--- a/player/js/elements/BaseElement.js
+++ b/player/js/elements/BaseElement.js
@@ -109,6 +109,8 @@
         this.compInterface = CompExpressionInterface(this);
     } else if(this.data.ty === 4){
         this.layerInterface.shapeInterface = ShapeExpressionInterface.createShapeInterface(this.shapesData,this.viewData,this.layerInterface);
+    } else if(this.data.ty === 5){
+        this.layerInterface.textInterface = TextExpressionInterface(this);
     }
 }
 
diff --git a/player/js/utils/expressions/LayerInterface.js b/player/js/utils/expressions/LayerInterface.js
index 6b9a54f..93482e5 100644
--- a/player/js/utils/expressions/LayerInterface.js
+++ b/player/js/utils/expressions/LayerInterface.js
@@ -113,12 +113,19 @@
                 return _thisLayerFunction.shapeInterface;
             }
         });
+
         Object.defineProperty(_thisLayerFunction, "active", {
             get: function(){
                 return elem.isVisible;
             }
         });
 
+        Object.defineProperty(_thisLayerFunction, "text", {
+            get: function(){
+                return _thisLayerFunction.textInterface;
+            }
+        });
+
         _thisLayerFunction.registerMaskInterface = _registerMaskInterface;
         _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;
         return _thisLayerFunction;
diff --git a/player/js/utils/expressions/TextInterface.js b/player/js/utils/expressions/TextInterface.js
new file mode 100644
index 0000000..f5fb996
--- /dev/null
+++ b/player/js/utils/expressions/TextInterface.js
@@ -0,0 +1,15 @@
+var TextExpressionInterface = (function(){
+	return function(elem){
+        function _thisLayerFunction(){
+        }
+        Object.defineProperty(_thisLayerFunction, "sourceText", {
+            get: function(){
+            	if(!elem.currentTextDocumentData.t) {
+            		return ''
+            	}
+                return elem.currentTextDocumentData.t;
+            }
+        });
+        return _thisLayerFunction;
+    }
+}())
\ No newline at end of file