         }
     }
     
-    var percent: CGFloat {
+    public var percent: CGFloat {
         switch self {
         case .Began:
             return 0

    private let animation: AnimationState -> Void
    private let id: String
    
    init(id: String, duration: NSTimeInterval, animation: AnimationState -> Void) {
        self.start = NSDate()
        self.duration = duration
        self.animation = animation

}

extension AnimationState {
    public var isCompleted: Bool {
        switch self {
        case .Completed:
            return true
