     var transformations = [Transformation]()
     
     
-    func update(_ frame: Frame) {
+    @discardableResult func update(_ frame: KinietaEngine.Frame) -> Bool {
         
+        return false
     }
     
     // MARK: API

import UIKit


struct Frame {
    var timestamp: Double
    var duration: Double
}

class KinietaEngine {
    
    static let shared = KinietaEngine()
    

        }
    }
    
    func remove(_ instance: Kinieta) {
        if let index = instances.index(where: { $0 === instance }) {
            instances.remove(at: index)
        }
        
        if instances.count == 0 {
            displayLink?.invalidate()
            displayLink = nil
        }
    }
    
    @objc func update(_ displayLink: CADisplayLink) {
        
        for instance in instances {
            let frame = KinietaEngine.Frame(displayLink.timestamp, displayLink.duration)
            let finished = instance.update(frame)
            if finished {
                self.remove(instance)
            }
        }
    }
    
