 	private func prepareRightViewController() {
 		if let v: MaterialView = rightView {
 			prepareViewControllerWithinContainer(rightViewController, container: v)
-			prepareRightViewGestures()
 		}
 	}
 	
 	/// A method that prepares the leftView.
 	private func prepareLeftView() {
-		if nil == leftViewController {
-			enabledLeftView = false
-			enabledLeftPanGesture = false
-			enabledLeftTapGesture = false
-		} else if nil == leftView {
-			leftViewWidth = .iPhone == MaterialDevice.type ? 280 : 320
-			leftView = MaterialView()
-			leftView!.frame = CGRectMake(0, 0, leftViewWidth, view.frame.height)
-			leftView!.backgroundColor = MaterialColor.clear
-			view.addSubview(leftView!)
-			
-			leftView!.hidden = true
-			leftView!.position.x = -leftViewWidth / 2
-			leftView!.zPosition = 2000
-			prepareLeftViewController()
-		}
+		guard let _: UIViewController = leftViewController else {
+			return
+		}
+		
+		enabledLeftView = true
+		
+		leftViewWidth = .iPhone == MaterialDevice.type ? 280 : 320
+		leftView = MaterialView()
+		leftView!.frame = CGRectMake(0, 0, leftViewWidth, view.frame.height)
+		leftView!.backgroundColor = MaterialColor.clear
+		view.addSubview(leftView!)
+		
+		leftView!.hidden = true
+		leftView!.position.x = -leftViewWidth / 2
+		leftView!.zPosition = 2000
+		prepareLeftViewController()
 	}
 	
 	/// A method that prepares the leftView.
 	private func prepareRightView() {
-		if nil == rightViewController {
-			enabledRightView = false
-			enabledRightPanGesture = false
-			enabledRightTapGesture = false
-		} else if nil == rightView {
-			rightViewWidth = .iPhone == MaterialDevice.type ? 280 : 320
-			rightView = MaterialView()
-			rightView!.frame = CGRectMake(0, 0, rightViewWidth, view.frame.height)
-			rightView!.backgroundColor = MaterialColor.clear
-			view.addSubview(rightView!)
-			
-			rightView!.hidden = true
-			rightView!.position.x = view.bounds.width + rightViewWidth / 2
-			rightView!.zPosition = 2000
-			prepareRightViewController()
-		}
-	}
-	
-	/// A method that prepares the gestures used within the leftView.
-	private func prepareLeftViewGestures() {
-		prepareLeftPanGesture()
-		prepareLeftTapGesture()
-	}
-	
-	/// Prepare the left pan gesture. 
+		guard let _: UIViewController = rightViewController else {
+			return
+		}
+		
+		enabledRightView = true
+		
+		rightViewWidth = .iPhone == MaterialDevice.type ? 280 : 320
+		rightView = MaterialView()
+		rightView!.frame = CGRectMake(0, 0, rightViewWidth, view.frame.height)
+		rightView!.backgroundColor = MaterialColor.clear
+		view.addSubview(rightView!)
+		
+		rightView!.hidden = true
+		rightView!.position.x = view.bounds.width + rightViewWidth / 2
+		rightView!.zPosition = 2000
+		prepareRightViewController()
+	}
+	
+	/// Prepare the left pan gesture.
 	private func prepareLeftPanGesture() {
 		if nil == leftPanGesture {
 			leftPanGesture = UIPanGestureRecognizer(target: self, action: #selector(handleLeftViewPanGesture(_:)))

	A Boolean property that enables and disables the rightView from
	opening and closing. Defaults to true.
	*/
	@IBInspectable public var enabledRightView: Bool = true {
		didSet {
			if enabledRightView {
				prepareRightViewGestures()
			} else {
				removeRightViewGestures()
			}
		}
	}
	
	/// Enables the right pan gesture.
	@IBInspectable public var enabledRightPanGesture: Bool = true {
		didSet {
			if enabledRightPanGesture {
				prepareRightPanGesture()

	}
	
	/// Enables the left tap gesture.
	@IBInspectable public var enabledLeftTapGesture: Bool = false {
		didSet {
			if enabledLeftTapGesture {
				prepareLeftTapGesture()
