         var length: MusicTimeStamp = 0
         var tmpLength: MusicTimeStamp = 0
 
-        for track in sequencer.tracks {
+        for track in tracks {
             tmpLength = track.lengthInBeats
             if tmpLength >= length { length = tmpLength }
         }
         return AKDuration(beats: length, tempo: tempo)
     }
 
-    /// Rate relative to the default tempo (BPM) of the track
-    public var rate: Double {
-        set {
-            sequencer.rate = Float(rate)
-        }
-        get {
-            return Double(sequencer.rate)
-        }
-    }
-
     /// Play the sequence
     public func play() {
         do {
-            try sequencer.start()
+            try start()
         } catch _ {
             AKLog("Could not start the sequencer")
         }
     }
 
-    /// Stop the sequence
-    public func stop() {
-        sequencer.stop()
-    }
 
-    /// Rewind the sequence
-    public func rewind() {
-        sequencer.currentPositionInBeats = 0
-    }
 
     /// Set the Audio Unit output for all tracks - on hold while technology is still unstable
     public func setGlobalAVAudioUnitOutput(_ audioUnit: AVAudioUnit) {
-        for track in sequencer.tracks {
+        for track in tracks {
             track.destinationAudioUnit = audioUnit
         }
     }
 
-    /// Wheter or not the sequencer is currently playing
-    public var isPlaying: Bool {
-        return sequencer.isPlaying
-    }
-
     /// Current Time
     public var currentPosition: AKDuration {
-        return AKDuration(beats: sequencer.currentPositionInBeats)
+        return AKDuration(beats: currentPositionInBeats)
     }
 
     /// Current Time relative to sequencer length
     public var currentRelativePosition: AKDuration {
         return currentPosition % length //can switch to modTime func when/if % is removed
-    }
-
-    /// Track count
-    public var trackCount: Int {
-        return sequencer.tracks.count
     }
 
     /// Load a MIDI file


    /// Enable looping for all tracks - loops entire sequence
    public func enableLooping() {
        for track in sequencer.tracks {
            track.isLoopingEnabled = true
            track.loopRange = AVMakeBeatRange(0, self.length.beats)
        }

    ///
    public func sequence(from data: Data) {
        do {
            try load(from: data, options: [])
        } catch {
            AKLog("cannot load from data \(error)")
            return
