 		}
 	}
 	
-	private func flashModeFromUserDefaults() -> AVCaptureFlashMode {
+	public func flashModeFromUserDefaults() -> AVCaptureFlashMode {
 		let rawValue = NSUserDefaults.standardUserDefaults().integerForKey("DKCamera.flashMode")
 		return AVCaptureFlashMode(rawValue: rawValue)!
 	}
 	
-	private func updateFlashModeToUserDefautls(flashMode: AVCaptureFlashMode) {
+	public func updateFlashModeToUserDefautls(flashMode: AVCaptureFlashMode) {
 		NSUserDefaults.standardUserDefaults().setInteger(flashMode.rawValue, forKey: "DKCamera.flashMode")
 	}
 	
-	private func updateFlashButton() {
+	public func updateFlashButton() {
 		struct FlashImage {
 			
 			static let images = [

	
	// MARK: - Handles Orientation
	
	private func setupMotionManager() {
		self.motionManager.accelerometerUpdateInterval = 0.2
		self.motionManager.gyroUpdateInterval = 0.2
	}
	
	private func outputAccelertionData(acceleration: CMAcceleration) {
		var currentOrientation: UIInterfaceOrientation?
		
		if acceleration.x >= 0.75 {

		// Dispose of any resources that can be recreated.
	}
	
	public func setupDevices() {
		let devices = AVCaptureDevice.devicesWithMediaType(AVMediaTypeVideo) as! [AVCaptureDevice]
		
		for device in devices {
