                 self.layer.mask?.removeAnimationForKey("setupFade")
             }
         } else {
-            let completion = anim.valueForKey(MarqueeKeys.CompletionClosure.rawValue) as? CompletionBlock<(Bool) -> ()>
-            completion?.f(flag)
+            let completion = anim.valueForKey(MarqueeKeys.CompletionClosure.rawValue) as? CompletionBlock<MLAnimationCompletion>
+            completion?.f(finished: flag)
+        }
+    }
+    
         }
     }
     

            self.layer.mask?.addAnimation(gradientAnimation, forKey: "gradient")
        }
        
        let completion = CompletionBlock<(Bool) -> ()>({ (finished: Bool) -> () in
            if !finished {
                // Do not continue into the next loop
                return

        sublabel.layer.removeAllAnimations()
    }
    
    // Define animation completion closure type
    private typealias MLAnimationCompletion = (finished: Bool) -> ()
    
    private func scroll(interval: CGFloat,
        delay: CGFloat = 0.0,
