 @objc protocol cameraDelegate{ func cameraFinished(_ controller: HappieCameraViewController) }
 
 @objc(HappieCameraViewController) class HappieCameraViewController : UIViewController, AVCaptureFileOutputRecordingDelegate  {
-    func fileOutput(_ output: AVCaptureFileOutput, didFinishRecordingTo outputFileURL: URL, from connections: [AVCaptureConnection], error: Error?) {
-
-    }
-
 
     //MARK: Class Variables
     let captureSession = AVCaptureSession() //provides a UI context for capturing media

                try device.lockForConfiguration();

                if(flashState == 0){
                    if(backCameraDevice!.isFlashModeSupported(AVCaptureDevice.FlashMode.off)){
                        device.flashMode = AVCaptureDevice.FlashMode.off;
                        let image = UIImage(named: "camera_flash_off.png") as UIImage!
                        flashUIButton.setImage(image, for: UIControlState())
                    }
                    if(backCameraDevice!.isTorchModeSupported(AVCaptureDevice.TorchMode.off)){
                        device.torchMode = AVCaptureDevice.TorchMode.off;
                    }
                    flashState = 1;
                }

                else if(flashState == 1){
                    if(backCameraDevice!.isFlashModeSupported(AVCaptureDevice.FlashMode.auto)){
                        device.flashMode = AVCaptureDevice.FlashMode.auto;
                        let image = UIImage(named: "camera_flash_auto.png") as UIImage!
                        flashUIButton.setImage(image, for: UIControlState())
                    }
                    if(backCameraDevice!.isTorchModeSupported(AVCaptureDevice.TorchMode.off)){
                        device.torchMode = AVCaptureDevice.TorchMode.off;
                    }
                    flashState = 2
                }
                else if(flashState == 2){
                    if(backCameraDevice!.isFlashModeSupported(AVCaptureDevice.FlashMode.off)){
                        device.flashMode = AVCaptureDevice.FlashMode.off;
                        let image = UIImage(named: "camera_flash_on.png") as UIImage!
                        flashUIButton.setImage(image, for: UIControlState())
                    }
                    if(backCameraDevice!.isTorchModeSupported(AVCaptureDevice.TorchMode.on)){
                        device.torchMode = AVCaptureDevice.TorchMode.on;
                    }

                    flashState = 0;

    }

    //MARK: Utility Functions
    func deviceWithMediaType(_ mediaType: NSString, preferringPosition: AVCaptureDevicePosition) -> AVCaptureDevice{
        let devices: NSArray = AVCaptureDevice.devices(withMediaType: mediaType as String) as NSArray
        var captureDevice: AVCaptureDevice = devices.firstObject as! AVCaptureDevice

        for device in devices{
            if((device as AnyObject).position == preferringPosition){
