 //
 
 /// AudioKit version of Apple's Mixer Node
-open class AKMixer: AKNode, AKToggleable {
+open class AKMixer: AKNode, AKToggleable, AKInput {
     /// The internal mixer node
-    fileprivate var mixerAU: AVAudioMixerNode?
-
-    /// How many inputs have been connected to this mixer in its lifespan
-    private var connectionCounter: Int = 0
+    fileprivate var mixerAU = AVAudioMixerNode()
 
     /// Output Volume (Default 1)
     open dynamic var volume: Double = 1.0 {
         didSet {
             volume = max(volume, 0)
-            mixerAU?.outputVolume = Float(volume)
+            mixerAU.outputVolume = Float(volume)
         }
     }
 

        }
    }

}


    /// Initialize the mixer node with no inputs, to be connected later
    public override init() {
        super.init(avAudioNode: mixerAU, attach: true)
    }

    /// Initialize the mixer node with multiple inputs
    ///
    /// - parameter inputs: A variadic list of AKNodes
    ///
    //swiftlint:disable force_unwrapping
    public convenience init(_ inputs: AKNode?...) {
        self.init(inputs.filter { $0 != nil }.map { $0! })
    }
    //swiftlint:enable force_unwrapping

    /// Initialize the mixer node with multiple inputs
    ///
    /// - parameter inputs: An array of AKNodes
    ///
    public convenience init(_ inputs: [AKNode]) {
        self.init()
        for input in inputs {
            input.connect(to: self)
        }
    }

    public var nextInput: AKInputConnection {
        return AKInputConnection(node: self, bus: mixerAU.nextAvailableInputBus)
    }
    /// Function to start, play, or activate the node, all do the same thing
    open func start() {
        if isStopped {
