         self.previewLayer.session = nil
             
         self._currentDevice = nil
-        self.cicontext = nil
+        self._ciContext = nil
         
         self._recordingSession = nil
         self._captureSession = nil

    internal var _recordingSession: NextLevelSession?
    internal var _lastVideoFrameTimeInterval: TimeInterval
    
    internal var videoCustomContextRenderingEnabled: Bool
    internal var sessionVideoCustomContextImageBuffer: CVPixelBuffer?
    internal var cicontext: CIContext?
    
    // MARK: - singleton
    

                        // only called from captureQueue
                        self.videoDelegate?.nextLevel(self, renderToCustomContextWithImageBuffer: bufferRef, onQueue: self._sessionQueue)
                    } else {
                        self._sessionVideoCustomContextImageBuffer = nil
                    }
                }
                
                // when clients modify a frame using their rendering context, the resulting CVPixelBuffer is then passed in here with the original sampleBuffer for recording
                let minFrameDuration = device.activeVideoMinFrameDuration
                session.appendVideo(withSampleBuffer: sampleBuffer, imageBuffer: self._sessionVideoCustomContextImageBuffer, minFrameDuration: minFrameDuration, completionHandler: { (success: Bool) -> Void in
                    // cleanup client rendering context
                    if self.isVideoCustomContextRenderingEnabled {
                        if let bufferRef = imageBuffer {
