 import AVFoundation
 
 /** AudioKit version of Apple's HighShelfFilter Audio Unit */
-public class AKHighShelfFilter: AKNode {
+public struct AKHighShelfFilter: AKProtocolNode {
     
     private let cd = AudioComponentDescription(
         componentType: kAudioUnitType_Effect,

            
            self.cutOffFrequency = cutOffFrequency
            self.gain = gain
            super.init()
            
            internalEffect = AVAudioUnitEffect(audioComponentDescription: cd)
            output = internalEffect
            AKManager.sharedInstance.engine.attachNode(internalEffect)
            AKManager.sharedInstance.engine.connect(input.output!, to: internalEffect, format: AKManager.format)
            internalAU = internalEffect.audioUnit
            internalAudioUnit = internalEffect.audioUnit
            
            AudioUnitSetParameter(internalAU, kHighShelfParam_CutOffFrequency, kAudioUnitScope_Global, 0, cutOffFrequency, 0)
            AudioUnitSetParameter(internalAU, kHighShelfParam_Gain,            kAudioUnitScope_Global, 0, gain, 0)

    
    private var internalEffect = AVAudioUnitEffect()
    private var internalAU = AudioUnit()
    public var avAudioNode: AVAudioNode
    
    /** Cut Off Frequency (Hz) ranges from 10000 to 22050 (Default: 10000) */
    public var cutOffFrequency: Float = 10000 {
