         }
     }
     
-    func addTextLayer(text:String, info:[String:AnyObject], dimension:CGSize, view:UIView) {
+    func addTextLayer(text:String, info:[String:AnyObject], dimension:CGSize, layer:CALayer) {
         var fTextBottom = false
         var fTextTop = false
-        var rcText = view.bounds
-        let label = UILabel(frame: rcText)
-        label.numberOfLines = 999
-
-        label.textAlignment = NSTextAlignment.Center
+        var rcText = layer.bounds
+        let textLayer = CATextLayer()
+        textLayer.wrapped = true
+        textLayer.frame = rcText
+
+        textLayer.alignmentMode = kCAAlignmentCenter
         func processAlignment(alignment:String) {
             switch(alignment) {
             case "left":
-                label.textAlignment = NSTextAlignment.Left
+                textLayer.alignmentMode = kCAAlignmentLeft
             case "right":
-                label.textAlignment = NSTextAlignment.Right
+                textLayer.alignmentMode = kCAAlignmentRight
             case "top":
                 fTextTop = true
             case "bottom":

        var attr = [String:AnyObject]()
        attr[NSFontAttributeName] = UIFont(name: "Helvetica", size: fontSize)
        attr[NSForegroundColorAttributeName] = UIColor(CGColor: SwipeParser.parseColor(self.info["textColor"], defaultColor: blackColor))
        processShadow(info, layer: view.layer)

        label.attributedText = NSAttributedString(string: text, attributes: attr)
        
        let rc = label.textRectForBounds(CGRectMake(0, 0, rcText.size.width, 99999), limitedToNumberOfLines: 999)
        if fTextBottom {
            rcText.origin.y = rcText.size.height - rc.size.height

        }
        
        if let text = parseText(info, key:"text") {
            self.addTextLayer(text, info: info, dimension:screenDimention, layer: layer)
        }
        
        // http://stackoverflow.com/questions/9290972/is-it-possible-to-make-avurlasset-work-without-a-file-extension
